Skip to content

Commit f7b914c

Browse files
committed
Add 2 CI benchmarks: buffer src delay, buffer src stereo automation
modeled after the ./examples/benchmarks.rs variants
1 parent fc018cf commit f7b914c

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

benches/my_benchmark.rs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,25 @@ pub fn bench_buffer_src() {
6969
assert_eq!(ctx.start_rendering_sync().length(), SAMPLES);
7070
}
7171

72+
pub fn bench_buffer_src_delay() {
73+
let ctx = OfflineAudioContext::new(2, black_box(SAMPLES), SAMPLE_RATE);
74+
75+
let file = std::fs::File::open("samples/think-stereo-48000.wav").unwrap();
76+
let buffer = ctx.decode_audio_data_sync(file).unwrap();
77+
78+
let delay = ctx.create_delay(0.3);
79+
delay.delay_time().set_value(0.2);
80+
81+
let src = ctx.create_buffer_source();
82+
src.set_buffer(buffer);
83+
src.start();
84+
85+
src.connect(&delay);
86+
delay.connect(&ctx.destination());
87+
88+
assert_eq!(ctx.start_rendering_sync().length(), SAMPLES);
89+
}
90+
7291
pub fn bench_buffer_src_iir() {
7392
let ctx = OfflineAudioContext::new(2, black_box(SAMPLES), SAMPLE_RATE);
7493
let file = std::fs::File::open("samples/think-stereo-48000.wav").unwrap();
@@ -139,13 +158,34 @@ pub fn bench_stereo_positional() {
139158
assert_eq!(ctx.start_rendering_sync().length(), SAMPLES);
140159
}
141160

161+
pub fn bench_stereo_panning_automation() {
162+
let ctx = OfflineAudioContext::new(2, black_box(SAMPLES), SAMPLE_RATE);
163+
let file = std::fs::File::open("samples/think-stereo-48000.wav").unwrap();
164+
let buffer = ctx.decode_audio_data_sync(file).unwrap();
165+
166+
let panner = ctx.create_stereo_panner();
167+
panner.connect(&ctx.destination());
168+
panner.pan().set_value_at_time(-1., 0.);
169+
panner.pan().set_value_at_time(0.2, 0.5);
170+
171+
let src = ctx.create_buffer_source();
172+
src.connect(&panner);
173+
src.set_buffer(buffer);
174+
src.set_loop(true);
175+
src.start();
176+
177+
assert_eq!(ctx.start_rendering_sync().length(), SAMPLES);
178+
}
179+
142180
iai::main!(
143181
bench_ctor,
144182
bench_sine,
145183
bench_sine_gain,
146184
bench_sine_gain_delay,
147185
bench_buffer_src,
186+
bench_buffer_src_delay,
148187
bench_buffer_src_iir,
149188
bench_buffer_src_biquad,
150189
bench_stereo_positional,
190+
bench_stereo_panning_automation,
151191
);

0 commit comments

Comments
 (0)