diff --git a/crates/app/edn/sampler_keys.edn b/crates/app/edn/sampler_keys.edn index dc8b9554..ef07497e 100644 --- a/crates/app/edn/sampler_keys.edn +++ b/crates/app/edn/sampler_keys.edn @@ -9,3 +9,5 @@ (@right select :sample-right) (@d select :sample-right) + +(@r record/begin :sample) diff --git a/crates/sampler/src/lib.rs b/crates/sampler/src/lib.rs index 8229812b..23e49095 100644 --- a/crates/sampler/src/lib.rs +++ b/crates/sampler/src/lib.rs @@ -1,3 +1,5 @@ +#![feature(let_chains)] + pub(crate) use ::tek_jack::{*, jack::*}; pub(crate) use ::tek_midi::{*, midly::{*, live::*, num::*}}; pub(crate) use ::tengri::{dsl::*, input::*, output::*, tui::{*, ratatui::prelude::*}}; diff --git a/crates/sampler/src/sampler_api.rs b/crates/sampler/src/sampler_api.rs index 295f0cce..5720c17e 100644 --- a/crates/sampler/src/sampler_api.rs +++ b/crates/sampler/src/sampler_api.rs @@ -6,7 +6,9 @@ expose! { [Option>>] => {} [PathBuf] => {} [f32] => {} - [u7] => {} + [u7] => { + ":sample" => (self.note_pos() as u8).into(), + } [usize] => { ":sample-up" => self.note_pos().min(119) + 8, ":sample-down" => self.note_pos().max(8) - 8, diff --git a/crates/sampler/src/sampler_view.rs b/crates/sampler/src/sampler_view.rs index 1faec29a..edc0d524 100644 --- a/crates/sampler/src/sampler_view.rs +++ b/crates/sampler/src/sampler_view.rs @@ -25,7 +25,14 @@ impl Sampler { let cursor = self.cursor(); let hi_fg = Color::Rgb(64, 64, 64); let hi_bg = if y == 0 { Color::Reset } else { Color::Rgb(64, 64, 64) /*prev*/ }; - let tx_fg = Color::Rgb(255, 255, 255); + let tx_fg = if let Some((index, _)) = self.recording + && index % 8 == x as usize + && index / 8 == y as usize + { + Color::Rgb(255, 64, 0) + } else { + Color::Rgb(255, 255, 255) + }; let tx_bg = if x as usize == cursor.0 && y as usize == cursor.1 { Color::Rgb(96, 96, 96) } else { diff --git a/deps/tengri b/deps/tengri index e32bb541..844681d6 160000 --- a/deps/tengri +++ b/deps/tengri @@ -1 +1 @@ -Subproject commit e32bb541e02abcaa3e463c4bf7ebf642593b1853 +Subproject commit 844681d6add6838a173ddc2a5c3bb9d51451d2e1