@@ -74,7 +74,7 @@ function setupTypedArray(name, fallback) {
74
74
}
75
75
}
76
76
77
- setupTypedArray ( "Float32Array " , "WebGLFloatArray" ) ;
77
+ setupTypedArray ( "Float64Array " , "WebGLFloatArray" ) ;
78
78
setupTypedArray ( "Int32Array" , "WebGLIntArray" ) ;
79
79
setupTypedArray ( "Uint16Array" , "WebGLUnsignedShortArray" ) ;
80
80
setupTypedArray ( "Uint8Array" , "WebGLUnsignedByteArray" ) ;
@@ -112,7 +112,7 @@ DSP.interleave = function(left, right) {
112
112
throw "Can not interleave. Channel lengths differ." ;
113
113
}
114
114
115
- var stereoInterleaved = new Float32Array ( left . length * 2 ) ;
115
+ var stereoInterleaved = new Float64Array ( left . length * 2 ) ;
116
116
117
117
for ( var i = 0 , len = left . length ; i < len ; i ++ ) {
118
118
stereoInterleaved [ 2 * i ] = left [ i ] ;
@@ -154,14 +154,14 @@ DSP.deinterleave = (function() {
154
154
} ;
155
155
156
156
return function ( channel , buffer ) {
157
- left = left || new Float32Array ( buffer . length / 2 ) ;
158
- right = right || new Float32Array ( buffer . length / 2 ) ;
159
- mix = mix || new Float32Array ( buffer . length / 2 ) ;
157
+ left = left || new Float64Array ( buffer . length / 2 ) ;
158
+ right = right || new Float64Array ( buffer . length / 2 ) ;
159
+ mix = mix || new Float64Array ( buffer . length / 2 ) ;
160
160
161
161
if ( buffer . length / 2 !== left . length ) {
162
- left = new Float32Array ( buffer . length / 2 ) ;
163
- right = new Float32Array ( buffer . length / 2 ) ;
164
- mix = new Float32Array ( buffer . length / 2 ) ;
162
+ left = new Float64Array ( buffer . length / 2 ) ;
163
+ right = new Float64Array ( buffer . length / 2 ) ;
164
+ mix = new Float64Array ( buffer . length / 2 ) ;
165
165
}
166
166
167
167
return deinterleaveChannel [ channel ] ( buffer ) ;
@@ -183,15 +183,15 @@ DSP.getChannel = DSP.deinterleave;
183
183
* to negate the second buffer while mixing and to perform a volume correction
184
184
* on the final signal.
185
185
*
186
- * @param {Array } sampleBuffer1 Array containing Float values or a Float32Array
187
- * @param {Array } sampleBuffer2 Array containing Float values or a Float32Array
186
+ * @param {Array } sampleBuffer1 Array containing Float values or a Float64Array
187
+ * @param {Array } sampleBuffer2 Array containing Float values or a Float64Array
188
188
* @param {Boolean } negate When true inverts/flips the audio signal
189
189
* @param {Number } volumeCorrection When you add multiple sample buffers, use this to tame your signal ;)
190
190
*
191
- * @returns A new Float32Array interleaved buffer.
191
+ * @returns A new Float64Array interleaved buffer.
192
192
*/
193
193
DSP . mixSampleBuffers = function ( sampleBuffer1 , sampleBuffer2 , negate , volumeCorrection ) {
194
- var outputSamples = new Float32Array ( sampleBuffer1 ) ;
194
+ var outputSamples = new Float64Array ( sampleBuffer1 ) ;
195
195
196
196
for ( var i = 0 ; i < sampleBuffer1 . length ; i ++ ) {
197
197
outputSamples [ i ] += ( negate ? - sampleBuffer2 [ i ] : sampleBuffer2 [ i ] ) / volumeCorrection ;
@@ -244,9 +244,9 @@ function FourierTransform(bufferSize, sampleRate) {
244
244
this . sampleRate = sampleRate ;
245
245
this . bandwidth = 2 / bufferSize * sampleRate / 2 ;
246
246
247
- this . spectrum = new Float32Array ( bufferSize / 2 ) ;
248
- this . real = new Float32Array ( bufferSize ) ;
249
- this . imag = new Float32Array ( bufferSize ) ;
247
+ this . spectrum = new Float64Array ( bufferSize / 2 ) ;
248
+ this . real = new Float64Array ( bufferSize ) ;
249
+ this . imag = new Float64Array ( bufferSize ) ;
250
250
251
251
this . peakBand = 0 ;
252
252
this . peak = 0 ;
@@ -301,8 +301,8 @@ function DFT(bufferSize, sampleRate) {
301
301
var N = bufferSize / 2 * bufferSize ;
302
302
var TWO_PI = 2 * Math . PI ;
303
303
304
- this . sinTable = new Float32Array ( N ) ;
305
- this . cosTable = new Float32Array ( N ) ;
304
+ this . sinTable = new Float64Array ( N ) ;
305
+ this . cosTable = new Float64Array ( N ) ;
306
306
307
307
for ( var i = 0 ; i < N ; i ++ ) {
308
308
this . sinTable [ i ] = Math . sin ( i * TWO_PI / bufferSize ) ;
@@ -369,8 +369,8 @@ function FFT(bufferSize, sampleRate) {
369
369
bit = bit >> 1 ;
370
370
}
371
371
372
- this . sinTable = new Float32Array ( bufferSize ) ;
373
- this . cosTable = new Float32Array ( bufferSize ) ;
372
+ this . sinTable = new Float64Array ( bufferSize ) ;
373
+ this . cosTable = new Float64Array ( bufferSize ) ;
374
374
375
375
for ( i = 0 ; i < bufferSize ; i ++ ) {
376
376
this . sinTable [ i ] = Math . sin ( - Math . PI / i ) ;
@@ -479,8 +479,8 @@ FFT.prototype.inverse = function(real, imag) {
479
479
imag [ i ] *= - 1 ;
480
480
}
481
481
482
- var revReal = new Float32Array ( bufferSize ) ;
483
- var revImag = new Float32Array ( bufferSize ) ;
482
+ var revReal = new Float64Array ( bufferSize ) ;
483
+ var revImag = new Float64Array ( bufferSize ) ;
484
484
485
485
for ( i = 0 ; i < real . length ; i ++ ) {
486
486
revReal [ i ] = real [ reverseTable [ i ] ] ;
@@ -520,7 +520,7 @@ FFT.prototype.inverse = function(real, imag) {
520
520
halfSize = halfSize << 1 ;
521
521
}
522
522
523
- var buffer = new Float32Array ( bufferSize ) ; // this should be reused instead
523
+ var buffer = new Float64Array ( bufferSize ) ; // this should be reused instead
524
524
for ( i = 0 ; i < bufferSize ; i ++ ) {
525
525
buffer [ i ] = real [ i ] / bufferSize ;
526
526
}
@@ -554,7 +554,7 @@ FFT.prototype.inverse = function(real, imag) {
554
554
function RFFT ( bufferSize , sampleRate ) {
555
555
FourierTransform . call ( this , bufferSize , sampleRate ) ;
556
556
557
- this . trans = new Float32Array ( bufferSize ) ;
557
+ this . trans = new Float64Array ( bufferSize ) ;
558
558
559
559
this . reverseTable = new Uint32Array ( bufferSize ) ;
560
560
@@ -838,7 +838,7 @@ function Sampler(file, bufferSize, sampleRate, playStart, playEnd, loopStart, lo
838
838
this . loopMode = loopMode || DSP . OFF ;
839
839
this . loaded = false ;
840
840
this . samples = [ ] ;
841
- this . signal = new Float32Array ( bufferSize ) ;
841
+ this . signal = new Float64Array ( bufferSize ) ;
842
842
this . frameCount = 0 ;
843
843
this . envelope = null ;
844
844
this . amplitude = 1 ;
@@ -861,7 +861,7 @@ function Sampler(file, bufferSize, sampleRate, playStart, playEnd, loopStart, lo
861
861
862
862
this . loadComplete = function ( ) {
863
863
// convert flexible js array into a fast typed array
864
- self . samples = new Float32Array ( self . samples ) ;
864
+ self . samples = new Float64Array ( self . samples ) ;
865
865
self . loaded = true ;
866
866
} ;
867
867
@@ -969,7 +969,7 @@ function Oscillator(type, frequency, amplitude, bufferSize, sampleRate) {
969
969
970
970
this . cyclesPerSample = frequency / sampleRate ;
971
971
972
- this . signal = new Float32Array ( bufferSize ) ;
972
+ this . signal = new Float64Array ( bufferSize ) ;
973
973
this . envelope = null ;
974
974
975
975
switch ( parseInt ( type , 10 ) ) {
@@ -992,7 +992,7 @@ function Oscillator(type, frequency, amplitude, bufferSize, sampleRate) {
992
992
}
993
993
994
994
this . generateWaveTable = function ( ) {
995
- Oscillator . waveTable [ this . func ] = new Float32Array ( 2048 ) ;
995
+ Oscillator . waveTable [ this . func ] = new Float64Array ( 2048 ) ;
996
996
var waveTableTime = this . waveTableLength / this . sampleRate ;
997
997
var waveTableHz = 1 / waveTableTime ;
998
998
@@ -1310,7 +1310,7 @@ function IIRFilter2(type, cutoff, resonance, sampleRate) {
1310
1310
this . resonance = resonance ;
1311
1311
this . sampleRate = sampleRate ;
1312
1312
1313
- this . f = Float32Array ( 4 ) ;
1313
+ this . f = Float64Array ( 4 ) ;
1314
1314
this . f [ 0 ] = 0.0 ; // lp
1315
1315
this . f [ 1 ] = 0.0 ; // hp
1316
1316
this . f [ 2 ] = 0.0 ; // bp
@@ -1720,7 +1720,7 @@ function Biquad(type, sampleRate) {
1720
1720
// - (a1/a0)*y[n-1] - (a2/a0)*y[n-2]
1721
1721
1722
1722
var len = buffer . length ;
1723
- var output = new Float32Array ( len ) ;
1723
+ var output = new Float64Array ( len ) ;
1724
1724
1725
1725
for ( var i = 0 ; i < buffer . length ; i ++ ) {
1726
1726
output [ i ] = this . b0a0 * buffer [ i ] + this . b1a0 * this . x_1_l + this . b2a0 * this . x_2_l - this . a1a0 * this . y_1_l - this . a2a0 * this . y_2_l ;
@@ -1738,7 +1738,7 @@ function Biquad(type, sampleRate) {
1738
1738
// - (a1/a0)*y[n-1] - (a2/a0)*y[n-2]
1739
1739
1740
1740
var len = buffer . length ;
1741
- var output = new Float32Array ( len ) ;
1741
+ var output = new Float64Array ( len ) ;
1742
1742
1743
1743
for ( var i = 0 ; i < len / 2 ; i ++ ) {
1744
1744
output [ 2 * i ] = this . b0a0 * buffer [ 2 * i ] + this . b1a0 * this . x_1_l + this . b2a0 * this . x_2_l - this . a1a0 * this . y_1_l - this . a2a0 * this . y_2_l ;
@@ -1776,7 +1776,7 @@ DSP.mag2db = function(buffer) {
1776
1776
var log = Math . log ;
1777
1777
var max = Math . max ;
1778
1778
1779
- var result = Float32Array ( buffer . length ) ;
1779
+ var result = Float64Array ( buffer . length ) ;
1780
1780
for ( var i = 0 ; i < buffer . length ; i ++ ) {
1781
1781
result [ i ] = 20.0 * log ( max ( buffer
1241
[ i ] , minMag ) ) ;
1782
1782
}
@@ -1803,13 +1803,13 @@ DSP.freqz = function(b, a, w) {
1803
1803
var i , j ;
1804
1804
1805
1805
if ( ! w ) {
1806
- w = Float32Array ( 200 ) ;
1806
+ w = Float64Array ( 200 ) ;
1807
1807
for ( i = 0 ; i < w . length ; i ++ ) {
1808
1808
w [ i ] = DSP . TWO_PI / w . length * i - Math . PI ;
1809
1809
}
1810
1810
}
1811
1811
1812
- var result = Float32Array ( w . length ) ;
1812
+ var result = Float64Array ( w . length ) ;
1813
1813
1814
1814
var sqrt = Math . sqrt ;
1815
1815
var cos = Math . cos ;
@@ -1909,7 +1909,7 @@ function GraphicalEq(sampleRate) {
1909
1909
}
1910
1910
1911
1911
if ( ! this . w ) {
1912
- this . w = Float32Array ( 400 ) ;
1912
+ this . w = Float64Array ( 400 ) ;
1913
1913
for ( var i = 0 ; i < this . w . length ; i ++ ) {
1914
1914
this . w [ i ] = Math . PI / this . w . length * i ;
1915
1915
}
@@ -1961,7 +1961,7 @@ function GraphicalEq(sampleRate) {
1961
1961
* @constructor
1962
1962
*/
1963
1963
function MultiDelay ( maxDelayInSamplesSize , delayInSamples , masterVolume , delayVolume ) {
1964
- this . delayBufferSamples = new Float32Array ( maxDelayInSamplesSize ) ; // The maximum size of delay
1964
+ this . delayBufferSamples = new Float64Array ( maxDelayInSamplesSize ) ; // The maximum size of delay
1965
1965
this . delayInputPointer = delayInSamples ;
1966
1966
this . delayOutputPointer = 0 ;
1967
1967
@@ -2006,13 +2006,13 @@ MultiDelay.prototype.setDelayVolume = function(delayVolume) {
2006
2006
/**
2007
2007
* Process a given interleaved or mono non-interleaved float value Array and adds the delayed audio.
2008
2008
*
2009
- * @param {Array } samples Array containing Float values or a Float32Array
2009
+ * @param {Array } samples Array containing Float values or a Float64Array
2010
2010
*
2011
- * @returns A new Float32Array interleaved or mono non-interleaved as was fed to this function.
2011
+ * @returns A new Float64Array interleaved or mono non-interleaved as was fed to this function.
2012
2012
*/
2013
2013
MultiDelay . prototype . process = function ( samples ) {
2014
2014
// NB. Make a copy to put in the output samples to return.
2015
- var outputSamples = new Float32Array ( samples . length ) ;
2015
+ var outputSamples = new Float64Array ( samples . length ) ;
2016
2016
2017
2017
for ( var i = 0 ; i < samples . length ; i ++ ) {
2018
2018
// delayBufferSamples could contain initial NULL's, return silence in that case
@@ -2062,7 +2062,7 @@ MultiDelay.prototype.process = function(samples) {
2062
2062
*/
2063
2063
2064
2064
function SingleDelay ( maxDelayInSamplesSize , delayInSamples , delayVolume ) {
2065
- this . delayBufferSamples = new Float32Array ( maxDelayInSamplesSize ) ; // The maximum size of delay
2065
+ this . delayBufferSamples = new Float64Array ( maxDelayInSamplesSize ) ; // The maximum size of delay
2066
2066
this . delayInputPointer = delayInSamples ;
2067
2067
this . delayOutputPointer = 0 ;
2068
2068
@@ -2097,13 +2097,13 @@ SingleDelay.prototype.setDelayVolume = function(delayVolume) {
2097
2097
* Process a given interleaved or mono non-interleaved float value Array and
2098
2098
* returns the delayed audio.
2099
2099
*
2100
- * @param {Array } samples Array containing Float values or a Float32Array
2100
+ * @param {Array } samples Array containing Float values or a Float64Array
2101
2101
*
2102
- * @returns A new Float32Array interleaved or mono non-interleaved as was fed to this function.
2102
+ * @returns A new Float64Array interleaved or mono non-interleaved as was fed to this function.
2103
2103
*/
2104
2104
SingleDelay . prototype . process = function ( samples ) {
2105
2105
// NB. Make a copy to put in the output samples to return.
2106
- var outputSamples = new Float32Array ( samples . length ) ;
2106
+ var outputSamples = new Float64Array ( samples . length ) ;
2107
2107
2108
2108
for ( var i = 0 ; i < samples . length ; i ++ ) {
2109
2109
@@ -2255,13 +2255,13 @@ Reverb.prototype.setDampFrequency = function (dampFrequency){
2255
2255
/**
2256
2256
* Process a given interleaved float value Array and copies and adds the reverb signal.
2257
2257
*
2258
- * @param {Array } samples Array containing Float values or a Float32Array
2258
+ * @param {Array } samples Array containing Float values or a Float64Array
2259
2259
*
2260
- * @returns A new Float32Array interleaved buffer.
2260
+ * @returns A new Float64Array interleaved buffer.
2261
2261
*/
2262
2262
Reverb . prototype . process = function ( interleavedSamples ) {
2263
2263
// NB. Make a copy to put in the output samples to return.
2264
- var outputSamples = new Float32Array ( interleavedSamples . length ) ;
2264
+ var outputSamples = new Float64Array ( interleavedSamples . length ) ;
2265
2265
2266
2266
// Perform low pass on the input samples to mimick damp
2267
2267
var leftRightMix = DSP . deinterleave ( interleavedSamples ) ;
@@ -2278,7 +2278,7 @@ Reverb.prototype.process = function (interleavedSamples){
2278
2278
}
2279
2279
2280
2280
// Process SingleDelays in series
2281
- var singleDelaySamples = new Float32Array ( outputSamples . length ) ;
2281
+ var singleDelaySamples = new Float64Array ( outputSamples . length ) ;
2282
2282
for ( i = 0 ; i < this . NR_OF_SINGLEDELAYS ; i ++ ) {
2283
2283
// Invert the signal of every even singleDelay
2284
2284
singleDelaySamples = DSP . mixSampleBuffers ( singleDelaySamples , this . singleDelays [ i ] . process ( outputSamples ) , 2 % i === 0 , 1 ) ;
0 commit comments