diff --git a/src/ops/audio_send.rs b/src/ops/audio_send.rs index 4be5f77..8185184 100644 --- a/src/ops/audio_send.rs +++ b/src/ops/audio_send.rs @@ -65,11 +65,12 @@ impl Op for AudioSend { self.cur_vol_r = self.volume_r.calc(regs); } - fn render(&mut self, num_samples: usize, offs: usize, input_idx: usize, bufs: &mut Vec>) - { + fn render(&mut self, num_samples: usize, offs: usize, input_idx: usize, bufs: &mut Vec>) { + let vl = (self.cur_vol_l as f64) * (self.cur_vol_l as f64); + let vr = (self.cur_vol_r as f64) * (self.cur_vol_r as f64); for i in 0..num_samples { - bufs[self.out][offs + (i * 2)] += self.cur_vol_l * bufs[input_idx][i * 2]; - bufs[self.out][offs + (i * 2) + 1] += self.cur_vol_r * bufs[input_idx][i * 2 + 1]; + bufs[self.out][offs + (i * 2)] += (vl * (bufs[input_idx][i * 2] as f64)) as f32; + bufs[self.out][offs + (i * 2) + 1] += (vr * (bufs[input_idx][i * 2 + 1] as f64)) as f32; } } }