proc/
proc.rs

1extern crate audact;
2extern crate rand;
3
4use audact::notes::std_note_freq;
5use audact::system::{Audact, ProcessingBuilder, Wave};
6use rand::Rng;
7use std::iter;
8use std::time::Duration;
9
10fn main() {
11    let seq_len = 16;
12
13    let mut audact = Audact::new(seq_len, 100, 4f32);
14
15    let mut rng = rand::thread_rng();
16
17    let seq: Vec<f32> = (0..(seq_len as f32 / 4f32) as usize)
18        .map(|_| iter::repeat(std_note_freq(rng.gen_range(-12, 12))).take(4))
19        .flat_map(|x| x)
20        .collect();
21
22    let processing = ProcessingBuilder::default()
23        .attack(Duration::from_millis(300u64))
24        .reverb((Duration::from_millis(200), 0.8f32))
25        .build()
26        .unwrap();
27
28    // single test tone
29    audact.channel(Wave::Sine, 0.3f32, processing, seq);
30
31    audact.start(4);
32}