wip: connect devices

This commit is contained in:
🪞👃🪞 2024-07-04 00:02:22 +03:00
parent 7f3425fe04
commit 394355331d
10 changed files with 235 additions and 145 deletions

View file

@ -24,36 +24,39 @@ pub fn main () -> Usually<()> {
state.modal = Some(Box::new(crate::config::SetupModal(Some(xdg.clone()))));
}
state.scenes = vec![
Scene::new("Intro", vec![None, Some(0), None, None]),
Scene::new("Hook", vec![Some(0), Some(0), None, None]),
Scene::new("Intro", vec![None, Some(0), None, None]),
Scene::new("Hook", vec![Some(0), Some(0), None, None]),
Scene::new("Verse", vec![None, Some(0), None, None]),
Scene::new("Chorus", vec![None, Some(0), None, None]),
Scene::new("Bridge", vec![None, Some(0), None, None]),
Scene::new("Outro", vec![None, Some(0), None, None]),
];
let jack = jack_run("tek", &app)?;
let jack = jack_run("tek", &app)?;
let client = jack.as_client();
let timebase = &state.timebase;
let ppq = timebase.ppq() as usize;
let ppq = timebase.ppq() as usize;
state.tracks = vec![
Track::new("Drums", &jack.as_client(), Some(vec![
Sampler::new("Sampler", Some(BTreeMap::from([
sample!(36, "Kick", "/home/user/Lab/Music/pak/kik.wav"),
sample!(40, "Snare", "/home/user/Lab/Music/pak/sna.wav"),
sample!(44, "Hihat", "/home/user/Lab/Music/pak/chh.wav"),
])))?.boxed(),
Plugin::lv2(
"Panagement",
"file:///home/user/.lv2/Auburn Sounds Panagement 2.lv2"
)?.boxed(),
]), Some(vec![
Phrase::new("4 kicks", ppq * 4, Some(phrase! {
00 * ppq/4 => MidiMessage::NoteOn { key: 36.into(), vel: 100.into() },
04 * ppq/4 => MidiMessage::NoteOn { key: 36.into(), vel: 100.into() },
08 * ppq/4 => MidiMessage::NoteOn { key: 36.into(), vel: 100.into() },
12 * ppq/4 => MidiMessage::NoteOn { key: 36.into(), vel: 100.into() },
})),
]))?,
]), Some(vec![
Sampler::new("Sampler", Some(BTreeMap::from([
sample!(36, "Kick", "/home/user/Lab/Music/pak/kik.wav"),
sample!(40, "Snare", "/home/user/Lab/Music/pak/sna.wav"),
sample!(44, "Hihat", "/home/user/Lab/Music/pak/chh.wav"),
])))?,
Plugin::lv2(
"Panagement",
"file:///home/user/.lv2/Auburn Sounds Panagement 2.lv2"
)?,
]),)?,
Track::new("Bass", &jack.as_client(), Some(vec![
Plugin::lv2("Odin2", "file:///home/user/.lv2/Odin2.lv2")?.boxed(),
]), Some(vec![
Phrase::new("Offbeat", ppq * 4, Some(phrase! {
00 * ppq/4 => MidiMessage::NoteOff { key: 40.into(), vel: 100.into() },
02 * ppq/4 => MidiMessage::NoteOn { key: 40.into(), vel: 100.into() },
@ -64,6 +67,8 @@ pub fn main () -> Usually<()> {
12 * ppq/4 => MidiMessage::NoteOff { key: 40.into(), vel: 100.into() },
14 * ppq/4 => MidiMessage::NoteOn { key: 40.into(), vel: 100.into() },
})),
]), Some(vec![
Plugin::lv2("Odin2", "file:///home/user/.lv2/Odin2.lv2")?,
]))?,
];
@ -72,7 +77,6 @@ pub fn main () -> Usually<()> {
state.track_cursor = 1;
state.scene_cursor = 1;
state.note_start = 12;
let client = jack.as_client();
//for track in state.tracks.iter() {
//if let Some(port) = track.midi_ins()?.get(0) {
//client.connect_ports(&track.midi_out, port)?;