use mseq::{Conductor, DeteTrack, Instruction, Track};
struct MyConductor {
track: DeteTrack,
}
impl Conductor for MyConductor {
fn init(&mut self, context: &mut mseq::Context) -> Vec<Instruction> {
context.start();
vec![]
}
fn update(&mut self, context: &mut mseq::Context) -> Vec<Instruction> {
let step = context.get_step();
if step == 959 {
context.quit();
return vec![];
}
self.track.play_step(step)
}
}
fn main() {
env_logger::init();
let track =
mseq_tracks::midi::load_from_file("examples/res/track_0.mid", mseq::Note::A, 1, "my_track")
.unwrap();
if let Err(e) = mseq::run(
MyConductor { track },
None,
None,
) {
println!("An error occured: {:?}", e);
}
}