groovebox: reenable sampling but only at pitch 0

This commit is contained in:
🪞👃🪞 2025-05-10 16:03:06 +03:00
parent 986e0a42a1
commit 7b09d97473
2 changed files with 34 additions and 19 deletions

View file

@ -1,5 +1,5 @@
(@up sample-select :sample-up)
(@down sample-select :sample-down)
(@left sample-select :sample-left)
(@right sample-select :sample-right)
(@r sample-record-toggle :sample)
(@up sampler select :sample-above)
(@down sampler select :sample-below)
(@left sampler select :sample-to-left)
(@right sampler select :sample-to-right)
(@r sampler record-toggle :sample-selected)

View file

@ -43,13 +43,39 @@ impl Sampler {
//fn selected_pitch () -> u7 {
//(self.note_pos() as u8).into() // TODO
//}
//fn selected_sample () -> u7 { // TODO
//(self.note_pos() as u8).into()
//}
fn sample_selected (&self) -> usize {
(self.get_note_pos() as u8).into()
}
fn sample_selected_pitch (&self) -> u7 {
(self.get_note_pos() as u8).into()
}
}
#[tengri_proc::command(Sampler)]
impl SamplerCommand {
fn record_toggle (sampler: &mut Sampler, sample: usize) -> Perhaps<Self> {
if sampler.recording.is_some() {
Self::record_cancel(sampler)
} else {
Self::record_begin(sampler, sample)
}
}
fn record_begin (sampler: &mut Sampler, sample: usize) -> Perhaps<Self> {
sampler.recording = Some((
sample,
Arc::new(RwLock::new(Sample::new(
"Sample",
0,
0,
vec![vec![];sampler.audio_ins.len()]
)))
));
Ok(None)
}
fn record_cancel (sampler: &mut Sampler) -> Perhaps<Self> {
sampler.recording = None;
Ok(None)
}
//fn select (&self, state: &mut Sampler, i: usize) -> Option<Self> {
//Self::Select(state.set_note_pos(i))
//}
@ -60,17 +86,6 @@ impl SamplerCommand {
//self.mapped[i] = sample;
//Some(Self::Set(old))
//}
//fn record_begin (&self, state: &mut Sampler, pitch: u7) -> Option<Self> {
//self.recording = Some((
//pitch.as_int() as usize,
//Arc::new(RwLock::new(Sample::new("Sample", 0, 0, vec![vec![];self.audio_ins.len()])))
//));
//None
//}
//fn record_cancel (&self, state: &mut Sampler) -> Option<Self> {
//self.recording = None;
//None
//}
//fn record_finish (&self, state: &mut Sampler) -> Option<Self> {
//let recording = self.recording.take();
//let _sample = if let Some((index, sample)) = recording {