@@ -164,14 +164,6 @@ DSP.deinterleave = (function() {
164
164
mix = new Float32Array ( buffer . length / 2 ) ;
165
165
}
166
166
167
- /*
168
- for (var i = 0, len = buffer.length/2; i < len; i++) {
169
- left[i] = buffer[2*i];
170
- right[i] = buffer[2*i+1];
171
- mix[i] = (left[i] + right[i]) / 2;
172
- }
173
- */
174
-
175
167
return deinterleaveChannel [ channel ] ( buffer ) ;
176
168
} ;
177
169
} ( ) ) ;
@@ -361,7 +353,7 @@ DFT.prototype.forward = function(buffer) {
361
353
function FFT ( bufferSize , sampleRate ) {
362
354
FourierTransform . call ( this , bufferSize , sampleRate ) ;
363
355
364
- this . reverseTable = new Uint32Array ( bufferSize ) ;
356
+ this . reverseTable = new Uint32Array ( bufferSize ) ;
365
357
366
358
var limit = 1 ;
367
359
var bit = bufferSize >> 1 ;
@@ -377,15 +369,13 @@ function FFT(bufferSize, sampleRate) {
377
369
bit = bit >> 1 ;
378
370
}
379
371
380
- /*
381
372
this . sinTable = new Float32Array ( bufferSize ) ;
382
373
this . cosTable = new Float32Array ( bufferSize ) ;
383
374
384
375
for ( i = 0 ; i < bufferSize ; i ++ ) {
385
376
this . sinTable [ i ] = Math . sin ( - Math . PI / i ) ;
386
377
this . cosTable [ i ] = Math . cos ( - Math . PI / i ) ;
387
378
}
388
- */
389
379
}
390
380
391
381
/**
@@ -399,16 +389,17 @@ function FFT(bufferSize, sampleRate) {
399
389
FFT . prototype . forward = function ( buffer ) {
400
390
// Locally scope variables for speed up
401
391
var bufferSize = this . bufferSize ,
402
- // cosTable = this.cosTable,
403
- // sinTable = this.sinTable,
392
+ cosTable = this . cosTable ,
393
+ sinTable = this . sinTable ,
404
394
reverseTable = this . reverseTable ,
405
395
real = this . real ,
406
396
imag = this . imag ,
407
397
spectrum = this . spectrum ;
408
398
409
399
var k = Math . floor ( Math . log ( bufferSize ) / Math . LN2 ) ;
400
+
410
401
if ( Math . pow ( 2 , k ) !== bufferSize ) { throw "Invalid buffer size, must be a power of 2." ; }
411
- if ( bufferSize !== buffer . length ) { throw "Supplied buffer is not the same size as defined FFT. FFT Size: " + bufferSize + " Buffer Size: " + buffer . length ; }
402
+ if ( bufferSize !== buffer . length ) { throw "Supplied buffer is not the same size as defined FFT. FFT Size: " + bufferSize + " Buffer Size: " + buffer . length ; }
412
403
413
404
var halfSize = 1 ,
414
405
phaseShiftStepReal ,
@@ -427,11 +418,10 @@ FFT.prototype.forward = function(buffer) {
427
418
}
428
419
429
420
while ( halfSize < bufferSize ) {
430
- //phaseShiftStepReal = cosTable[halfSize];
431
- //phaseShiftStepImag = sinTable[halfSize];
432
-
433
- phaseShiftStepReal = Math . cos ( - Math . PI / halfSize ) ;
434
- phaseShiftStepImag = Math . sin ( - Math . PI / halfSize ) ;
421
+ //phaseShiftStepReal = Math.cos(-Math.PI/halfSize);
422
+ //phaseShiftStepImag = Math.sin(-Math.PI/halfSize);
423
+ phaseShiftStepReal = cosTable [ halfSize ] ;
424
+ phaseShiftStepImag = sinTable [ halfSize ] ;
435
425
436
426
currentPhaseShiftReal = 1 ;
437
427
currentPhaseShiftImag = 0 ;
@@ -665,6 +655,7 @@ RFFT.prototype.forward = function(buffer) {
665
655
rval , ival , mag ;
666
656
667
657
this . reverseBinPermute ( x , buffer ) ;
658
+
668
659
/*
669
660
var reverseTable = this.reverseTable;
670
661
@@ -811,7 +802,7 @@ RFFT.prototype.forward = function(buffer) {
811
802
x [ i5 ] -= t4 ;
812
803
}
813
804
814
- ix = id << 1 - n2 ;
805
+ ix = ( id << 1 ) - n2 ;
815
806
id = id << 2 ;
816
807
817
808
} while ( ix < n ) ;
0 commit comments