This commit is contained in:
🪞👃🪞 2024-07-03 15:33:48 +03:00
parent 8c3cf53c67
commit ea529b7734
5 changed files with 91 additions and 91 deletions

View file

@ -28,9 +28,6 @@ pub fn main () -> Usually<()> {
state.scenes = vec![
Scene::new("Intro", vec![None, None, None, None]),
];
state.phrases = vec![
Phrase::new("4 kicks", state.timebase.ppq() as usize * 4, None),
];
state.tracks = vec![
Track::new("Drums", &state.timebase, Some(vec![
Sampler::new("Sampler", Some(BTreeMap::from([
@ -38,7 +35,9 @@ pub fn main () -> Usually<()> {
sample!(40, "Snare", "/home/user/Lab/Music/pak/sna.wav"),
sample!(44, "Hihat", "/home/user/Lab/Music/pak/chh.wav"),
])))?.boxed(),
]), None)?,
]), Some(vec![
Phrase::new("4 kicks", state.timebase.ppq() as usize * 4, None),
]))?,
];
state.jack = Some(jack_run("tek", &app)?);
Ok(())
@ -84,14 +83,14 @@ render!(App |self, buf, area| {
y = y + ChainView {
focused: true,
chain: None
chain: Some(&self.tracks[0].chain),
}.render(buf, Rect { x, y, width, height: height / 3 })?.height;
y = y + SequencerView {
focused: true,
ppq: self.timebase.ppq() as usize,
track: None,
phrase: None,
track: Some(&self.tracks[0]),
phrase: Some(&self.tracks[0].sequencer.phrases[0]),
}.render(buf, Rect { x, y, width, height })?.height;
if let Some(ref modal) = self.modal {
@ -114,7 +113,8 @@ handle!(App |self, e| {
}
handle_keymap(self, e, keymap!(App {
[F(1), NONE, "toggle_help", "toggle help", toggle_help],
[Tab, NONE, "focus_next", "focus next area", focus_next],
[Tab, SHIFT, "focus_prev", "focus previous area", focus_prev],
[Up, NONE, "cursor_up", "move cursor up", cursor_up],
[Down, NONE, "cursor_down", "move cursor down", cursor_down],
[Left, NONE, "cursor_left", "move cursor left", cursor_left],
@ -124,9 +124,6 @@ handle!(App |self, e| {
[Delete, CONTROL, "delete", "delete track", delete],
[Char('d'), CONTROL, "duplicate", "duplicate scene or track", duplicate],
[Enter, NONE, "activate", "activate item at cursor", activate],
[Tab, NONE, "focus_next", "focus next area", focus_next],
[Tab, SHIFT, "focus_prev", "focus previous area", focus_prev],
[Char(' '), NONE, "play_toggle", "play or pause", play_toggle],
[Char('r'), NONE, "record_toggle", "toggle recording", record_toggle],
[Char('d'), NONE, "overdub_toggle", "toggle overdub", overdub_toggle],
@ -143,8 +140,14 @@ fn delete (_: &mut App) -> Usually<bool> { Ok(true) }
fn duplicate (_: &mut App) -> Usually<bool> { Ok(true) }
fn activate (_: &mut App) -> Usually<bool> { Ok(true) }
fn rename (_: &mut App) -> Usually<bool> { Ok(true) }
fn add_track (_: &mut App) -> Usually<bool> { Ok(true) }
fn delete_track (_: &mut App) -> Usually<bool> { Ok(true) }
fn add_track (app: &mut App) -> Usually<bool> {
let name = format!("Track {}", app.tracks.len() + 1);
app.tracks.push(Track::new(&name, &app.timebase, None, None)?);
Ok(true)
}
fn delete_track (_: &mut App) -> Usually<bool> {
Ok(true)
}
fn cursor_up (_: &mut App) -> Usually<bool> { Ok(true) }
fn cursor_down (_: &mut App) -> Usually<bool> { Ok(true) }
fn cursor_left (_: &mut App) -> Usually<bool> { Ok(true) }