mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 12:16:42 +01:00
wip: connect devices
This commit is contained in:
parent
7f3425fe04
commit
394355331d
10 changed files with 235 additions and 145 deletions
40
src/main.rs
40
src/main.rs
|
|
@ -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)?;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue