connect track 1 to output; reenable switching scenes/phrases

This commit is contained in:
🪞👃🪞 2024-07-04 20:30:56 +03:00
parent 8e6d9fcdd4
commit f2774e67a6
3 changed files with 79 additions and 21 deletions

View file

@ -55,7 +55,29 @@ pub fn main () -> Usually<()> {
"Panagement",
"file:///home/user/.lv2/Auburn Sounds Panagement 2.lv2"
)?);
client.connect_ports(&track.midi_out, &track.devices[0].midi_ins()?[0])?;
client.connect_ports(
&track.midi_out, &track.devices[0].midi_ins()?[0]
)?;
client.connect_ports(
&track.devices[0].audio_outs()?[0], &track.devices[1].audio_ins()?[0]
)?;
let output_left = client.ports(Some("Komplete.+:playback_FL"), None, PortFlags::empty());
if let Some(
output_left
) = output_left.get(0).map(|name|client.port_by_name(&name)).flatten() {
client.connect_ports(
&track.devices[1].audio_outs()?[0], &output_left
)?;
}
let output_right = client.ports(Some("Komplete.+:playback_FR"), None, PortFlags::empty());
if let Some(
output_right
) = output_right.get(0).map(|name|client.port_by_name(&name)).flatten() {
client.connect_ports(
&track.devices[1].audio_outs()?[0], &output_right
)?;
}
track.sequence = Some(1); // FIXME
track.add_phrase("4 kicks", ppq * 4, Some(phrase! {
00 * ppq/4 => MidiMessage::NoteOn { key: 36.into(), vel: 100.into() },
@ -81,8 +103,24 @@ pub fn main () -> Usually<()> {
state.add_track(Some("Bass"), Some(Box::new(move|client, track|{
track.add_device(Plugin::lv2("Odin2", "file:///home/user/.lv2/Odin2.lv2")?);
//client.connect_ports(&track.midi_out, &track.devices[0].midi_ins()?[0])?;
track.sequence = Some(0); // FIXME
//client.connect_ports(&track.midi_out, &track.devices[0].midi_ins()?[0])?;
//let output_left = client.ports(Some(".+:playback_FL"), None, PortFlags::empty());
//if let Some(
//output_left
//) = output_left.get(0).map(|name|client.port_by_name(&name)).flatten() {
//client.connect_ports(
//&track.devices[0].audio_outs()?[0], &output_left
//)?;
//}
//let output_right = client.ports(Some(".+:playback_FR"), None, PortFlags::empty());
//if let Some(
//output_right
//) = output_right.get(0).map(|name|client.port_by_name(&name)).flatten() {
//client.connect_ports(
//&track.devices[0].audio_outs()?[1], &output_right
//)?;
//}
track.add_phrase("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() },
@ -159,8 +197,8 @@ process!(App |self, _client, scope| {
}
self.playing = Some(transport.state);
self.playhead = transport.pos.frame() as usize;
let frame = scope.last_frame_time() as usize;
let frames = scope.n_frames() as usize;
let frame = scope.last_frame_time() as usize;
let frames = scope.n_frames() as usize;
for track in self.tracks.iter_mut() {
track.process(
self.midi_in.as_ref().unwrap().iter(scope),