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}