mirror of
https://codeberg.org/uzu/strudel
synced 2026-07-22 05:05:26 -04:00
tests: reverb
This commit is contained in:
@@ -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();
|
||||
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user