audio_gain/
audio_gain.rs

1#[cfg(feature = "audio")]
2fn main() -> humster::Result<()> {
3    use humster::prelude::*;
4
5    let mut track = Track::from_audio(vec![0.1, -0.3, 0.5], 48_000);
6
7    struct Gain(f32);
8
9    impl Processor for Gain {
10        fn process_audio(&self, track: &mut AudioTrack) {
11            for sample in track.samples.iter_mut() {
12                *sample *= self.0;
13            }
14        }
15    }
16
17    let gain = Gain(1.5);
18    track.apply(&gain);
19
20    if let Some(audio) = track.as_audio() {
21        println!("Sample rate: {}", audio.sample_rate);
22        for (idx, sample) in audio.samples.iter().enumerate() {
23            println!("Sample #{idx}: {sample:.3}");
24        }
25    }
26
27    Ok(())
28}
29
30#[cfg(not(feature = "audio"))]
31fn main() {
32    eprintln!("Enable the `audio` feature to run this example.");
33}