more appmode logic

This commit is contained in:
🪞👃🪞 2025-04-26 01:00:40 +03:00
parent 3b5c23f68c
commit 39dc6b803e
8 changed files with 138 additions and 104 deletions

View file

@ -100,7 +100,9 @@ impl Cli {
midi_outs.push(port);
}
let mut app = Tek {
jack: jack.clone(),
jack: jack.clone(),
color: ItemPalette::random(),
clock: Clock::new(jack, self.bpm)?,
view: SourceIter(match mode {
Mode::Clock => include_str!("./edn/transport.edn"),
Mode::Sequencer => include_str!("./edn/sequencer.edn"),
@ -126,60 +128,22 @@ impl Cli {
Mode::Sequencer | Mode::Groovebox | Mode::Arranger {..} => vec![vec![];65536],
_ => todo!("{mode:?}"),
},
color: ItemPalette::random(),
clock: Clock::new(jack, self.bpm)?,
handler: Some(match mode {
Mode::Sampler => handle_sampler,
_ => handle_arranger,
Mode::Sequencer => handle_sequencer,
Mode::Groovebox => handle_groovebox,
Mode::Sampler => handle_sampler,
_ => handle_arranger,
}),
tracks: match mode {
Mode::Sequencer => vec![
Track {
devices: vec![
Device::Sequencer(
MidiPlayer::default()
),
],
..Track::default()
},
Track::new_sequencer()
],
Mode::Groovebox => vec![
Track {
devices: vec![
Device::Sequencer(
MidiPlayer::default()
),
Device::Sampler(Sampler::new(
jack,
&"sampler",
midi_froms.as_slice(),
audio_froms,
audio_tos
)?)
],
..Track::default()
}
Track::new_groovebox(jack, midi_froms.as_slice(), audio_froms, audio_tos)?
],
Mode::Sampler => vec![
Track {
devices: vec![
Device::Sampler(Sampler::new(
jack,
&"sampler",
midi_froms.as_slice(),
audio_froms,
audio_tos
)?)
],
..Track::default()
}
Track::new_sampler(jack, midi_froms.as_slice(), audio_froms, audio_tos)?
],
_ => vec![]
},
scenes,