tests: reverb

This commit is contained in:
Vasilii Milovidov
2023-10-16 11:59:23 +04:00
parent 9d22a9f9ba
commit 6e18bd8d57
2 changed files with 1 additions and 24 deletions
+1 -19
View File
@@ -65,7 +65,7 @@ pub fn create_impulse_response(
fade: f32,
) -> Vec<f32> {
let mut rng = rand::thread_rng();
let mut normal = Normal::new(0.0, 1.0).unwrap();
let normal = Normal::new(0.0, 1.0).unwrap();
let fade_in_samples = (fade * sample_rate) as usize; // Compute the number of samples for the fade-in duration
let mut impulse_response: Vec<f32> = (0..len)
@@ -84,24 +84,6 @@ pub fn create_impulse_response(
impulse_response
}
pub fn write_to_wav(filename: &str, data: &[f32]) {
let spec = hound::WavSpec {
channels: 1,
sample_rate: 44100,
bits_per_sample: 16,
sample_format: hound::SampleFormat::Int,
};
let mut writer = hound::WavWriter::create(filename, spec).unwrap();
for &sample_float in data {
// Assuming 16-bit audio
let amplitude_scale = i16::MAX as f32;
let sample = (sample_float * amplitude_scale).round() as i16;
writer.write_sample(sample).unwrap();
}
writer.finalize().unwrap();
}
pub fn write_to_buffer(buffer: &mut AudioBuffer, data: &[f32]) {
let num_chans = buffer.number_of_channels();
-5
View File
@@ -253,14 +253,9 @@ fn apply_delay(audio_context: &mut AudioContext, delays: &mut HashMap<usize, Del
}
fn apply_reverb(mut audio_context: &AudioContext, compressor: &DynamicsCompressorNode, cache: &Cache<String, AudioBuffer>, message: &WebAudioMessage, mut sampler: &mut Sampler, reverbs: &mut HashMap<usize, Reverb>) {
if message.reverb.ir.is_none() {
let key = format!("reverb: {}{}{}{}{}", message.reverb.room.unwrap_or(0.0), message.reverb.size.unwrap_or(1.0), message.reverb.roomlp.unwrap_or(0.0), message.reverb.roomfade.unwrap_or(0.0), message.reverb.roomdim.unwrap_or(0.0));
if let Some(ir) = cache.get(&key) {
let reverb = reverbs.entry(message.orbit).or_insert({
let mut reverb = Reverb::new(&audio_context, message.reverb.room, message.reverb.size, message.reverb.roomlp, message.reverb.roomfade, message.reverb.roomdim, &compressor);
reverb.convolver.set_buffer(ir.clone());