@@ -13,7 +13,7 @@ var // inefficient; copied from grapher.js
1313 } ;
1414
1515
16- var frameCount = 2048 ;
16+ var frameCount = 4096 ;
1717
1818var AudioContext = window . AudioContext || window . webkitAudioContext ;
1919var audioCtx = new AudioContext ( ) ;
@@ -30,7 +30,7 @@ var spectrumAnalyser = audioCtx.createAnalyser();
3030 spectrumAnalyser . minDecibels = - 120 ;
3131 spectrumAnalyser . maxDecibels = - 20 ;
3232
33- var bufferChunks , bufferStartFrameIndex , bufferFieldIndex , bufferCurve ;
33+ var bufferChunks , bufferStartFrameIndex , bufferFieldIndex , bufferCurve , bufferWindowEndTime ;
3434var initialised = false ;
3535var analyserFieldName ; // Name of the field being analysed
3636
@@ -39,7 +39,7 @@ source.connect(spectrumAnalyser);
3939
4040var audioIterations = 0 ; // variable to monitor spectrum processing
4141
42- function dataLoad ( chunks , startFrameIndex , fieldIndex , curve , buffer ) {
42+ function dataLoad ( chunks , startFrameIndex , fieldIndex , curve , buffer , windowEndTime ) {
4343
4444 var chunkIndex , frameIndex ;
4545 var i = 0 ;
@@ -54,10 +54,13 @@ function dataLoad(chunks, startFrameIndex, fieldIndex, curve, buffer) {
5454 var chunk = chunks [ chunkIndex ] ;
5555 for ( ; frameIndex < chunk . frames . length ; frameIndex ++ ) {
5656 var fieldValue = chunk . frames [ frameIndex ] [ fieldIndex ] ;
57+ var frameTime = chunk . frames [ frameIndex ] [ FlightLogParser . prototype . FLIGHT_LOG_FIELD_INDEX_TIME ]
5758 bufferData [ i ++ ] = ( curve . lookupRaw ( fieldValue ) ) ;
58-
59- if ( i >= buffer . length )
59+
60+ if ( i >= buffer . length || frameTime >= windowEndTime ) {
61+ // console.log("Samples : " + i);
6062 break dataCollectionLoop;
63+ }
6164 }
6265 frameIndex = 0 ;
6366 }
@@ -147,16 +150,18 @@ function drawAxisLabel(axisLabel, X, Y, align) {
147150 It is only used to record the current curve positions, collect the data and draw the
148151 analyser on screen*/
149152
150- this . plotSpectrum = function ( chunks , startFrameIndex , fieldIndex , curve , fieldName ) {
153+ this . plotSpectrum = function ( chunks , startFrameIndex , fieldIndex , curve , fieldName , windowEndTime ) {
151154 // Store the data pointers
152155 bufferChunks = chunks ;
153156 bufferStartFrameIndex = startFrameIndex ;
154157 bufferFieldIndex = fieldIndex ;
155158 bufferCurve = curve ;
159+ bufferWindowEndTime = windowEndTime ;
160+
156161 analyserFieldName = fieldName ;
157162
158163 if ( audioBuffer ) {
159- dataLoad ( bufferChunks , bufferStartFrameIndex , bufferFieldIndex , bufferCurve , audioBuffer ) ;
164+ dataLoad ( bufferChunks , bufferStartFrameIndex , bufferFieldIndex , bufferCurve , audioBuffer , bufferWindowEndTime ) ;
160165 }
161166 draw ( ) ; // draw the analyser on the canvas....
162167 }
0 commit comments