use anyhow::Result;
#[allow(unused)]
use knyst::{
audio_backend::{CpalBackend, CpalBackendOptions, JackBackend},
controller::print_error_handler,
prelude::*,
};
fn main() -> Result<()> {
let _backend = setup();
let node0 = wavetable_oscillator_owned(Wavetable::sine()).freq(110.);
let node1 = wavetable_oscillator_owned(Wavetable::sine()).freq(220.);
graph_output(0, node0 * 0.3);
graph_output(1, node1 * 0.3);
println!("Playing sine waves at 110 and 220 Hz at an amplitude of 0.3");
println!("Press [ENTER] to exit");
let mut input = String::new();
std::io::stdin().read_line(&mut input)?;
Ok(())
}
fn setup() -> impl AudioBackend {
let mut backend =
CpalBackend::new(CpalBackendOptions::default()).expect("Unable to connect to CPAL backend");
let _sphere_id = KnystSphere::start(
&mut backend,
SphereSettings {
..Default::default()
},
print_error_handler,
)
.ok();
backend
}