1 // Generate endless screeching noise to stdout
2 
3 // Usage: cargo run --example wavstdout | mpv -
4 
5 extern crate hound;
6 use std::io::Write;
7 
main()8 fn main() {
9     let spec = hound::WavSpec {
10         bits_per_sample: 16,
11         channels: 1,
12         sample_format: hound::SampleFormat::Int,
13         sample_rate: 16000,
14     };
15 
16     let v = spec.into_header_for_infinite_file();
17 
18     let so = std::io::stdout();
19     let mut so = so.lock();
20     so.write_all(&v[..]).unwrap();
21 
22     loop {
23         for i in 0..126 {
24             use hound::Sample;
25             let x : i16 = (i * 256) as i16;
26             if x.write(&mut so, 16).is_err() {
27                 return;
28             }
29         }
30     }
31 }
32