@@ -5,8 +5,6 @@ use std::sync::Arc;
55
66use crate :: context:: BaseAudioContext ;
77
8- use crate :: node:: TABLE_LENGTH_USIZE ;
9-
108/// Options for constructing a [`PeriodicWave`]
119#[ derive( Debug , Default , Clone ) ]
1210pub struct PeriodicWaveOptions {
@@ -75,6 +73,8 @@ pub struct PeriodicWave {
7573 wavetable : Arc < Vec < f32 > > ,
7674}
7775
76+ const PERIODIC_WAVE_TABLE_LENGTH : usize = 8192 ;
77+
7878impl PeriodicWave {
7979 /// Returns a `PeriodicWave`
8080 ///
@@ -148,7 +148,8 @@ impl PeriodicWave {
148148
149149 let normalize = !disable_normalization;
150150 // [spec] A conforming implementation MUST support PeriodicWave up to at least 8192 elements.
151- let wavetable = Self :: generate_wavetable ( & real, & imag, normalize, TABLE_LENGTH_USIZE ) ;
151+ let wavetable =
152+ Self :: generate_wavetable ( & real, & imag, normalize, PERIODIC_WAVE_TABLE_LENGTH ) ;
152153
153154 Self {
154155 wavetable : Arc :: new ( wavetable) ,
@@ -213,10 +214,8 @@ mod tests {
213214 use float_eq:: assert_float_eq;
214215 use std:: f32:: consts:: PI ;
215216
217+ use super :: { PeriodicWave , PeriodicWaveOptions , PERIODIC_WAVE_TABLE_LENGTH } ;
216218 use crate :: context:: AudioContext ;
217- use crate :: node:: { TABLE_LENGTH_F32 , TABLE_LENGTH_USIZE } ;
218-
219- use super :: { PeriodicWave , PeriodicWaveOptions } ;
220219
221220 #[ test]
222221 #[ should_panic]
@@ -279,11 +278,12 @@ mod tests {
279278 let reals = [ 0. , 0. ] ;
280279 let imags = [ 0. , 1. ] ;
281280
282- let result = PeriodicWave :: generate_wavetable ( & reals, & imags, true , TABLE_LENGTH_USIZE ) ;
281+ let result =
282+ PeriodicWave :: generate_wavetable ( & reals, & imags, true , PERIODIC_WAVE_TABLE_LENGTH ) ;
283283 let mut expected = Vec :: new ( ) ;
284284
285- for i in 0 ..TABLE_LENGTH_USIZE {
286- let sample = ( i as f32 / TABLE_LENGTH_F32 * 2. * PI ) . sin ( ) ;
285+ for i in 0 ..PERIODIC_WAVE_TABLE_LENGTH {
286+ let sample = ( i as f32 / PERIODIC_WAVE_TABLE_LENGTH as f32 * 2. * PI ) . sin ( ) ;
287287 expected. push ( sample) ;
288288 }
289289
@@ -295,15 +295,16 @@ mod tests {
295295 let reals = [ 0. , 0. , 0. ] ;
296296 let imags = [ 0. , 0.5 , 0.5 ] ;
297297
298- let result = PeriodicWave :: generate_wavetable ( & reals, & imags, false , TABLE_LENGTH_USIZE ) ;
298+ let result =
299+ PeriodicWave :: generate_wavetable ( & reals, & imags, false , PERIODIC_WAVE_TABLE_LENGTH ) ;
299300 let mut expected = Vec :: new ( ) ;
300301
301- for i in 0 ..TABLE_LENGTH_USIZE {
302+ for i in 0 ..PERIODIC_WAVE_TABLE_LENGTH {
302303 let mut sample = 0. ;
303304 // fundamental frequency
304- sample += 0.5 * ( 1. * i as f32 / TABLE_LENGTH_F32 * 2. * PI ) . sin ( ) ;
305+ sample += 0.5 * ( 1. * i as f32 / PERIODIC_WAVE_TABLE_LENGTH as f32 * 2. * PI ) . sin ( ) ;
305306 // 1rst partial
306- sample += 0.5 * ( 2. * i as f32 / TABLE_LENGTH_F32 * 2. * PI ) . sin ( ) ;
307+ sample += 0.5 * ( 2. * i as f32 / PERIODIC_WAVE_TABLE_LENGTH as f32 * 2. * PI ) . sin ( ) ;
307308
308309 expected. push ( sample) ;
309310 }
@@ -335,15 +336,16 @@ mod tests {
335336 let reals = [ 0. , 0. , 0. ] ;
336337 let imags = [ 0. , 0.5 , 0.5 ] ;
337338
338- let result = PeriodicWave :: generate_wavetable ( & reals, & imags, true , TABLE_LENGTH_USIZE ) ;
339+ let result =
340+ PeriodicWave :: generate_wavetable ( & reals, & imags, true , PERIODIC_WAVE_TABLE_LENGTH ) ;
339341 let mut expected = Vec :: new ( ) ;
340342
341- for i in 0 ..TABLE_LENGTH_USIZE {
343+ for i in 0 ..PERIODIC_WAVE_TABLE_LENGTH {
342344 let mut sample = 0. ;
343345 // fundamental frequency
344- sample += 0.5 * ( 1. * i as f32 / TABLE_LENGTH_F32 * 2. * PI ) . sin ( ) ;
346+ sample += 0.5 * ( 1. * i as f32 / PERIODIC_WAVE_TABLE_LENGTH as f32 * 2. * PI ) . sin ( ) ;
345347 // 1rst partial
346- sample += 0.5 * ( 2. * i as f32 / TABLE_LENGTH_F32 * 2. * PI ) . sin ( ) ;
348+ sample += 0.5 * ( 2. * i as f32 / PERIODIC_WAVE_TABLE_LENGTH as f32 * 2. * PI ) . sin ( ) ;
347349
348350 expected. push ( sample) ;
349351 }
0 commit comments