From 198a730e330943d8e9802834de57f5ae4b27158c Mon Sep 17 00:00:00 2001 From: unspeaker Date: Sat, 28 Dec 2024 20:34:08 +0100 Subject: [PATCH] fix canvas density; play sampler from sequencer; jump to pressed key --- crates/tek/src/groovebox.rs | 10 +++++++++- crates/tek/src/sampler/sample_viewer.rs | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/crates/tek/src/groovebox.rs b/crates/tek/src/groovebox.rs index 71eea6ef..ac138f5c 100644 --- a/crates/tek/src/groovebox.rs +++ b/crates/tek/src/groovebox.rs @@ -49,12 +49,20 @@ audio!(|self: GrooveboxTui, client, scope|{ if Control::Quit == ClockAudio(&mut self.player).process(client, scope) { return Control::Quit } + if Control::Quit == PlayerAudio( + &mut self.player, &mut self.note_buf, &mut self.midi_buf + ).process(client, scope) { + return Control::Quit + } if Control::Quit == SamplerAudio(&mut self.sampler).process(client, scope) { return Control::Quit } - for RawMidi { time, bytes } in self.sampler.midi_in.iter(scope) { + for RawMidi { time, bytes } in self.player.midi_ins[0].iter(scope) { if let LiveEvent::Midi { message, .. } = LiveEvent::parse(bytes).unwrap() { match message { + MidiMessage::NoteOn { ref key, .. } => { + self.editor.set_note_point(key.as_int() as usize); + }, MidiMessage::Controller { controller, value } => { if controller == u7::from(20) { if let Some(sample) = &self.sampler.mapped[self.editor.note_point()] { diff --git a/crates/tek/src/sampler/sample_viewer.rs b/crates/tek/src/sampler/sample_viewer.rs index 0abd7ea9..b7c337da 100644 --- a/crates/tek/src/sampler/sample_viewer.rs +++ b/crates/tek/src/sampler/sample_viewer.rs @@ -26,7 +26,7 @@ render!(|self: SampleViewer|render(|to|{ let x = t as f64; let y = meter as f64; lines.push(Line::new(x, min_db, x, y, Color::Green)); - t += step; + t += step / 2.; } ( [sample.start as f64, sample.end as f64],