@@ -6,12 +6,12 @@ use rubato::{
66} ;
77use std:: fs:: File ;
88use std:: io:: BufWriter ;
9- use std:: sync:: { Arc , Mutex , MutexGuard } ;
9+ use std:: sync:: { Arc , Mutex } ;
1010
1111pub type RecordingWriter = Option < Arc < Mutex < Option < WavWriter < BufWriter < File > > > > > > ;
1212
1313pub struct Processor {
14- amp : Arc < Mutex < Amp > > ,
14+ amp : Amp ,
1515 writer : RecordingWriter ,
1616 in_port : Port < AudioIn > ,
1717 out_l : Port < AudioOut > ,
@@ -21,7 +21,7 @@ pub struct Processor {
2121}
2222
2323impl Processor {
24- pub fn new ( client : & Client , amp : Arc < Mutex < Amp > > , recording : bool ) -> ( Self , RecordingWriter ) {
24+ pub fn new ( client : & Client , amp : Amp , recording : bool ) -> ( Self , RecordingWriter ) {
2525 let in_port = client. register_port ( "in" , AudioIn ) . unwrap ( ) ;
2626 let out_l = client. register_port ( "out_l" , AudioOut ) . unwrap ( ) ;
2727 let out_r = client. register_port ( "out_r" , AudioOut ) . unwrap ( ) ;
@@ -53,7 +53,7 @@ impl Processor {
5353 let channels = 1 ;
5454 let oversample_factor: f32 = 2.0 ;
5555
56- let max_chunk_size = 64 ;
56+ let max_chunk_size = 128 ;
5757
5858 let interp_params = SincInterpolationParameters {
5959 sinc_len : 256 ,
@@ -106,7 +106,7 @@ impl Processor {
106106 self ,
107107 ) -> impl FnMut ( & Client , & ProcessScope ) -> Control + Send + ' static {
108108 let Processor {
109- amp,
109+ mut amp,
110110 writer,
111111 in_port,
112112 mut out_l,
@@ -137,12 +137,9 @@ impl Processor {
137137 eprintln ! ( "Upsampler returned an empty buffer" ) ;
138138 }
139139
140- {
141- let mut amp_guard: MutexGuard < ' _ , Amp > = amp. lock ( ) . unwrap ( ) ;
142- let upsampled_channel = & mut upsampled[ 0 ] ;
143- for sample in upsampled_channel. iter_mut ( ) {
144- * sample = amp_guard. process_sample ( * sample) ;
145- }
140+ let upsampled_channel = & mut upsampled[ 0 ] ;
141+ for sample in upsampled_channel. iter_mut ( ) {
142+ * sample = amp. process_sample ( * sample) ;
146143 }
147144
148145 let downsampled = match downsampler. process ( & upsampled, None ) {
0 commit comments