use embedded_audio::prelude::*;
fn main() {
println!("Embedded Audio DMA Streaming Example");
let mut engine = AudioEngine::from_sample_rate(16_000, 4095, DutyMode::Linear);
engine
.play_wavetable(&SAW_TABLE, 440, AdsrSpec::click())
.expect("Failed to start wavetable voice 0");
engine
.play_wavetable(&TRIANGLE_TABLE, 554, AdsrSpec::click())
.expect("Failed to start wavetable voice 1");
let mut dma_pump = DmaDoubleBuffer::<u16, 256>::new();
println!("Simulating 5 DMA transfer buffers (12-bit DAC values)...");
for i in 0..5 {
let buf = dma_pump.swap_and_get_next();
let samples_filled = engine.fill_dac_u12_buffer(buf);
println!(
"Buffer #{}: filled {} samples. First 4 DAC values: {:?}",
i,
samples_filled,
&buf[0..4]
);
}
}