From eef51f922823a03260f90e1eca50d0363428b279 Mon Sep 17 00:00:00 2001 From: Vasilii Milovidov Date: Tue, 3 Oct 2023 04:52:31 +0400 Subject: [PATCH] tests: reverb --- src-tauri/src/webaudiobridge.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src-tauri/src/webaudiobridge.rs b/src-tauri/src/webaudiobridge.rs index 8b2e3e979..fd3ce6721 100644 --- a/src-tauri/src/webaudiobridge.rs +++ b/src-tauri/src/webaudiobridge.rs @@ -21,7 +21,7 @@ use web_audio_api::{ node::AudioNode, }; use web_audio_api::context::OfflineAudioContext; -use web_audio_api::node::{ConvolverNode, DelayNode}; +use web_audio_api::node::{ConvolverNode, ConvolverOptions, DelayNode}; use crate::superdough::{ADSRMessage, apply_filter_adsr, BPFMessage, DelayMessage, Delay, FilterADSRMessage, HPFMessage, LoopMessage, LPFMessage, Sampler, Synth, WebAudioInstrument, ReverbMessage, Reverb}; @@ -126,6 +126,11 @@ pub fn init( let compressor = audio_context.create_dynamics_compressor(); compressor.threshold().set_value(-50.0); compressor.connect(&audio_context.destination()); + let mut reverb = ConvolverNode::new(&audio_context, ConvolverOptions::default()); + let impulse_file1 = File::open("/Users/vasiliymilovidov/samples/ir1.wav").unwrap(); + let impulse_buffer1 = audio_context.decode_audio_data_sync(impulse_file1).unwrap(); + reverb.set_buffer(impulse_buffer1); + reverb.connect(&audio_context.destination()); let cache: Cache = Cache::builder() @@ -221,14 +226,15 @@ pub fn init( delay.pre_gain.gain().set_value_at_time(message.delay.wet.unwrap_or(0.25), t + message.delay.delay_time.unwrap_or(0.5) as f64); }; + + // sampler.envelope.connect(&reverb); // CONNECT SAMPLER TO OUTPUT AND PLAY sampler.envelope.connect(&compressor); sampler.play(t, &message, audio_buffer_duration); - + sampler.envelope.connect(&reverb); // IF FILE EXIST - DECODE IT } else if let Ok(file) = File::open(&file_path_clone) { let cache_clone = cache.clone(); - println!("{:?}", file); tokio::spawn(async move { let context = OfflineAudioContext::new(2, 88200, 44100.0); let audio_buffer = context.decode_audio_data_sync(file).expect("OOOPS!");