diff --git a/crates/tek_sequencer/src/arranger.rs b/crates/tek_sequencer/src/arranger.rs index fd163bf5..5f4a4f27 100644 --- a/crates/tek_sequencer/src/arranger.rs +++ b/crates/tek_sequencer/src/arranger.rs @@ -274,7 +274,16 @@ impl Arrangement { }, _ => todo!("arrangement: move forward") } - + } + pub fn randomize_color (&mut self) { + match self.selected { + ArrangementFocus::Mix => {}, + ArrangementFocus::Track(t) => { todo!("randomize track color") }, + ArrangementFocus::Scene(s) => { todo!("randomize scene color") }, + ArrangementFocus::Clip(t, s) => if let Some(phrase) = &self.scenes[s].clips[t] { + phrase.write().unwrap().color = random_color(); + } + } } } /// Methods for tracks in arrangement diff --git a/crates/tek_sequencer/src/arranger_cmd.rs b/crates/tek_sequencer/src/arranger_cmd.rs index 2efaf5ba..9d54eee9 100644 --- a/crates/tek_sequencer/src/arranger_cmd.rs +++ b/crates/tek_sequencer/src/arranger_cmd.rs @@ -40,7 +40,6 @@ impl Arranger { }; match from.event() { key!(KeyCode::Char('a')) => handle_phrase(), - key!(KeyCode::Char('c')) => handle_phrase(), key!(KeyCode::Char('i')) => handle_phrase(), key!(KeyCode::Char('d')) => handle_phrase(), _ => self.arrangement.handle(from) @@ -58,6 +57,7 @@ impl Handle for Arrangement { key!(KeyCode::Char(',')) => { self.decrement(); }, key!(KeyCode::Char('<')) => { self.move_back(); }, key!(KeyCode::Char('>')) => { self.move_forward(); }, + key!(KeyCode::Char('c')) => { self.randomize_color(); }, key!(KeyCode::Char('s')) => { self.phrase_put(); }, key!(KeyCode::Char('g')) => { self.phrase_get(); }, key!(Ctrl-KeyCode::Char('a')) => { self.scene_add(None, None)?; }, diff --git a/crates/tek_sequencer/src/sequencer_tui.rs b/crates/tek_sequencer/src/sequencer_tui.rs index 7fd4e121..818eba00 100644 --- a/crates/tek_sequencer/src/sequencer_tui.rs +++ b/crates/tek_sequencer/src/sequencer_tui.rs @@ -99,8 +99,10 @@ impl Content for PhraseEditor { let src_x = ((x as usize + time_axis.start) * time_axis.scale) as usize; let src_y = (y as usize + note_axis.start) as usize; if src_x < buffer.width && src_y < buffer.height - 1 { - let src = buffer.get(src_x, buffer.height - src_y); - src.map(|src|{ cell.set_symbol(src.symbol()); cell.set_fg(src.fg); }); + buffer.get(src_x, buffer.height - src_y).map(|src|{ + cell.set_symbol(src.symbol()); + cell.set_fg(src.fg); + }); } }); }