diff --git a/crates/tek_sequencer/src/arranger_cli.rs b/crates/tek_sequencer/src/arranger_cli.rs index 1f0828cb..96884195 100644 --- a/crates/tek_sequencer/src/arranger_cli.rs +++ b/crates/tek_sequencer/src/arranger_cli.rs @@ -11,9 +11,9 @@ pub struct ArrangerCli { /// Whether to include a transport toolbar (default: true) #[arg(short, long)] transport: Option, /// Number of tracks - #[arg(short = 'x', long, default_value_t = 1)] tracks: usize, + #[arg(short = 'x', long, default_value_t = 8)] tracks: usize, /// Number of scenes - #[arg(short, long, default_value_t = 1)] scenes: usize, + #[arg(short, long, default_value_t = 8)] scenes: usize, } impl Arranger { diff --git a/crates/tek_sequencer/src/arranger_track.rs b/crates/tek_sequencer/src/arranger_track.rs index f9309da5..bbb3445a 100644 --- a/crates/tek_sequencer/src/arranger_track.rs +++ b/crates/tek_sequencer/src/arranger_track.rs @@ -41,7 +41,7 @@ pub fn track_name_max_len (tracks: &[Sequencer]) -> usize { pub fn track_clip_name_lengths (tracks: &[Sequencer]) -> Vec<(usize, usize)> { let mut total = 0; let mut lengths: Vec<(usize, usize)> = tracks.iter().map(|track|{ - let len = 2 + track.phrases + let len = 4 + track.phrases .iter() .fold(track.name.len(), |len, phrase|{ len.max(phrase.read().unwrap().name.len()) diff --git a/crates/tek_sequencer/src/arranger_view.rs b/crates/tek_sequencer/src/arranger_view.rs index 65a0febc..5e91e75a 100644 --- a/crates/tek_sequencer/src/arranger_view.rs +++ b/crates/tek_sequencer/src/arranger_view.rs @@ -44,6 +44,14 @@ render!(Arranger |self, buf, area| { } else { Rect::default() }; + match self.focus_sequencer { + true => { + "[Arrows] Move, [A]dd, [D]elete, [R]ecord, [P]lay".blit(buf, area.x + 1, area.height - 1, None)?; + }, + false => { + "[Arrows] Move, [P]lay, [R]ecord, [N]ame, [E]dit, [C-T]rack add, [C-A]dd scene".blit(buf, area.x + 1, area.y + arrangement.height, None)?; + }, + } Corners(Style::default().green().not_dim()).draw(buf, match self.focus_sequencer { true => sequencer, false => arrangement, diff --git a/crates/tek_sequencer/src/arranger_view_v.rs b/crates/tek_sequencer/src/arranger_view_v.rs index 9a0bcb46..16517ac1 100644 --- a/crates/tek_sequencer/src/arranger_view_v.rs +++ b/crates/tek_sequencer/src/arranger_view_v.rs @@ -212,7 +212,7 @@ fn scene_row ( ) { if let Some(phrase) = track.phrases.get(*clip) { let phrase = phrase.read().unwrap(); - phrase.name.blit(buf, x, y, style)?; + phrase.name.blit(buf, x + 1, y, style)?; if track.sequence == Some(*clip) { fill_bg(buf, Rect { x: x - 1, diff --git a/crates/tek_sequencer/src/sequencer.rs b/crates/tek_sequencer/src/sequencer.rs index baa7c636..4fe1e265 100644 --- a/crates/tek_sequencer/src/sequencer.rs +++ b/crates/tek_sequencer/src/sequencer.rs @@ -57,26 +57,19 @@ impl Sequencer { reset: true, notes_in: [false;128], notes_out: [false;128], - buffer: Default::default(), - keys: keys_vert(), - entered: false, - focused: false, - mode: false, - keys_in: [false;128], - keys_out: [false;128], - phrase: None, - now: 0, - ppq: 96, - transport: None, - note_axis: FixedAxis { - start: 12, - point: Some(36) - }, - time_axis: ScaledAxis { - start: 0, - scale: 24, - point: Some(0) - }, + buffer: Default::default(), + keys: keys_vert(), + entered: false, + focused: false, + mode: false, + keys_in: [false;128], + keys_out: [false;128], + phrase: None, + now: 0, + ppq: 96, + transport: None, + note_axis: FixedAxis { start: 12, point: Some(36) }, + time_axis: ScaledAxis { start: 0, scale: 24, point: Some(0) }, } } pub fn toggle_monitor (&mut self) { diff --git a/crates/tek_sequencer/src/sequencer_render.rs b/crates/tek_sequencer/src/sequencer_render.rs index 977ffdee..57052d97 100644 --- a/crates/tek_sequencer/src/sequencer_render.rs +++ b/crates/tek_sequencer/src/sequencer_render.rs @@ -57,7 +57,19 @@ impl Sequencer { const H_KEYS_OFFSET: usize = 5; - fn horizontal_draw (&self, buf: &mut Buffer, area: Rect) -> Usually<()> { + fn horizontal_draw (&self, buf: &mut Buffer, mut area: Rect) -> Usually<()> { + "Start 1.1.1".blit(buf, area.x + 1, area.y + 2, None)?; + "End 2.1.1".blit(buf, area.x + 1, area.y + 3, None)?; + "[ Loop off ] ".blit(buf, area.x + 1, area.y + 5, None)?; + "Loop 1.1.1".blit(buf, area.x + 1, area.y + 6, None)?; + "Length 1.0.0".blit(buf, area.x + 1, area.y + 7, None)?; + "Notes -------".blit(buf, area.x + 1, area.y + 9, None)?; + "[ /2 ] [ x2 ]".blit(buf, area.x + 1, area.y + 10, None)?; + "[ Reverse ]".blit(buf, area.x + 1, area.y + 11, None)?; + "[ Invert ]".blit(buf, area.x + 1, area.y + 12, None)?; + "[ Duplicate ]".blit(buf, area.x + 1, area.y + 13, None)?; + area.x = area.x + 16; + area.width = area.width.saturating_sub(12); self.horizontal_keys(buf, area)?; if let Some(ref phrase) = self.phrase { self.horizontal_timer(buf, area, phrase)?;