mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 12:16:42 +01:00
format
This commit is contained in:
parent
26562437bd
commit
525923d057
1 changed files with 11 additions and 27 deletions
|
|
@ -67,9 +67,9 @@ pub struct TekCli {
|
||||||
/// Multi-track MIDI sequencer.
|
/// Multi-track MIDI sequencer.
|
||||||
Arranger {
|
Arranger {
|
||||||
/// Number of scenes
|
/// Number of scenes
|
||||||
#[arg(short = 'y', long, default_value_t = 1)] scenes: usize,
|
#[arg(short = 'y', long, default_value_t = 1)] scenes: usize,
|
||||||
/// Number of tracks
|
/// Number of tracks
|
||||||
#[arg(short = 'x', long, default_value_t = 1)] tracks: usize,
|
#[arg(short = 'x', long, default_value_t = 1)] tracks: usize,
|
||||||
/// Width of tracks
|
/// Width of tracks
|
||||||
#[arg(short = 'w', long, default_value_t = 9)] track_width: usize,
|
#[arg(short = 'w', long, default_value_t = 9)] track_width: usize,
|
||||||
},
|
},
|
||||||
|
|
@ -145,8 +145,7 @@ has_clips!(|self: Tek|self.pool.as_ref().expect("no clip pool").clips);
|
||||||
has_jack!(|self: Tek|&self.jack);
|
has_jack!(|self: Tek|&self.jack);
|
||||||
has_sampler!(|self: Tek|{
|
has_sampler!(|self: Tek|{
|
||||||
sampler = self.sampler;
|
sampler = self.sampler;
|
||||||
index = self.editor.as_ref().map(|e|e.note_point()).unwrap_or(0);
|
index = self.editor.as_ref().map(|e|e.note_point()).unwrap_or(0); });
|
||||||
});
|
|
||||||
has_editor!(|self: Tek|{
|
has_editor!(|self: Tek|{
|
||||||
editor = self.editor;
|
editor = self.editor;
|
||||||
editor_w = {
|
editor_w = {
|
||||||
|
|
@ -157,16 +156,14 @@ has_editor!(|self: Tek|{
|
||||||
(5 + (time_len / time_zoom)).min(size.saturating_sub(20)).max(16)
|
(5 + (time_len / time_zoom)).min(size.saturating_sub(20)).max(16)
|
||||||
};
|
};
|
||||||
editor_h = 15;
|
editor_h = 15;
|
||||||
is_editing = self.editing.load(Relaxed);
|
is_editing = self.editing.load(Relaxed); });
|
||||||
});
|
|
||||||
edn_provide!(# usize: |self: Tek| {
|
edn_provide!(# usize: |self: Tek| {
|
||||||
":scene" => self.selected.scene().unwrap_or(0),
|
":scene" => self.selected.scene().unwrap_or(0),
|
||||||
":scene-next" => self.selected.scene().unwrap_or(0) + 1,
|
":scene-next" => self.selected.scene().unwrap_or(0) + 1,
|
||||||
":scene-prev" => self.selected.scene().unwrap_or(0).saturating_sub(1),
|
":scene-prev" => self.selected.scene().unwrap_or(0).saturating_sub(1),
|
||||||
":track" => self.selected.track().unwrap_or(0),
|
":track" => self.selected.track().unwrap_or(0),
|
||||||
":track-next" => self.selected.track().unwrap_or(0) + 1,
|
":track-next" => self.selected.track().unwrap_or(0) + 1,
|
||||||
":track-prev" => self.selected.track().unwrap_or(0).saturating_sub(1),
|
":track-prev" => self.selected.track().unwrap_or(0).saturating_sub(1) });
|
||||||
});
|
|
||||||
edn_view!(TuiOut: |self: Tek| self.size.of(EdnView::from_source(self, self.edn.as_ref())); {
|
edn_view!(TuiOut: |self: Tek| self.size.of(EdnView::from_source(self, self.edn.as_ref())); {
|
||||||
bool {};
|
bool {};
|
||||||
isize {};
|
isize {};
|
||||||
|
|
@ -227,14 +224,8 @@ impl Tek {
|
||||||
audio_tos: &[&[PortConnection];2],
|
audio_tos: &[&[PortConnection];2],
|
||||||
) -> Usually<Self> {
|
) -> Usually<Self> {
|
||||||
let app = Self {
|
let app = Self {
|
||||||
edn: include_str!("./view_groovebox.edn").to_string(),
|
edn: include_str!("./view_groovebox.edn").to_string(),
|
||||||
sampler: Some(Sampler::new(
|
sampler: Some(Sampler::new(jack, &"sampler", midi_froms, audio_froms, audio_tos)?),
|
||||||
jack,
|
|
||||||
&"sampler",
|
|
||||||
midi_froms,
|
|
||||||
audio_froms,
|
|
||||||
audio_tos
|
|
||||||
)?),
|
|
||||||
..Self::new_sequencer(jack, bpm, midi_froms, midi_tos)?
|
..Self::new_sequencer(jack, bpm, midi_froms, midi_tos)?
|
||||||
};
|
};
|
||||||
if let Some(sampler) = app.sampler.as_ref().unwrap().midi_in.as_ref() {
|
if let Some(sampler) = app.sampler.as_ref().unwrap().midi_in.as_ref() {
|
||||||
|
|
@ -256,13 +247,7 @@ impl Tek {
|
||||||
editor: Some((&clip).into()),
|
editor: Some((&clip).into()),
|
||||||
editing: false.into(),
|
editing: false.into(),
|
||||||
midi_buf: vec![vec![];65536],
|
midi_buf: vec![vec![];65536],
|
||||||
player: Some(MidiPlayer::new(
|
player: Some(MidiPlayer::new(&jack, "sequencer", Some(&clip), &midi_froms, &midi_tos)?),
|
||||||
&jack,
|
|
||||||
"sequencer",
|
|
||||||
Some(&clip),
|
|
||||||
&midi_froms,
|
|
||||||
&midi_tos
|
|
||||||
)?),
|
|
||||||
..Self::new_clock(jack, bpm)?
|
..Self::new_clock(jack, bpm)?
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -499,11 +484,12 @@ impl Tek {
|
||||||
let scenes = move||self.scenes_sizes(editing, 2, 15);
|
let scenes = move||self.scenes_sizes(editing, 2, 15);
|
||||||
let selected_track = self.selected().track();
|
let selected_track = self.selected().track();
|
||||||
let selected_scene = self.selected().scene();
|
let selected_scene = self.selected().scene();
|
||||||
|
let border = |x|Outer(Style::default().fg(TuiTheme::g(0))).enclose(x);
|
||||||
(move||Align::c(Map::new(tracks, move|(_, track, x1, x2), t| {
|
(move||Align::c(Map::new(tracks, move|(_, track, x1, x2), t| {
|
||||||
let w = (x2 - x1) as u16;
|
let w = (x2 - x1) as u16;
|
||||||
let color: ItemPalette = track.color.dark.into();
|
let color: ItemPalette = track.color.dark.into();
|
||||||
let last_color = Arc::new(RwLock::new(ItemPalette::from(Color::Rgb(0, 0, 0))));
|
let last_color = Arc::new(RwLock::new(ItemPalette::from(Color::Rgb(0, 0, 0))));
|
||||||
let cells = Map::new(scenes, move|(_, scene, y1, y2), s| {
|
map_east(x1 as u16, w, border(Map::new(scenes, move|(_, scene, y1, y2), s| {
|
||||||
let h = (1 + y2 - y1) as u16;
|
let h = (1 + y2 - y1) as u16;
|
||||||
let color = scene.color;
|
let color = scene.color;
|
||||||
let (name, fg, bg) = if let Some(c) = &scene.clips[t] {
|
let (name, fg, bg) = if let Some(c) = &scene.clips[t] {
|
||||||
|
|
@ -530,9 +516,7 @@ impl Tek {
|
||||||
let cell = Either::new(active, editor, cell);
|
let cell = Either::new(active, editor, cell);
|
||||||
*last_color.write().unwrap() = bg.into();
|
*last_color.write().unwrap() = bg.into();
|
||||||
map_south(y1 as u16, h, Push::y(1, Fixed::y(h, cell)))
|
map_south(y1 as u16, h, Push::y(1, Fixed::y(h, cell)))
|
||||||
});
|
}))).boxed()
|
||||||
map_east(x1 as u16, w,
|
|
||||||
Outer(Style::default().fg(TuiTheme::g(0))).enclose(cells)).boxed()
|
|
||||||
})).boxed()).into()
|
})).boxed()).into()
|
||||||
}
|
}
|
||||||
fn activate (&mut self) -> Usually<()> {
|
fn activate (&mut self) -> Usually<()> {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue