mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 12:16:42 +01:00
break down sampler into modules and align with sequencer
This commit is contained in:
parent
774af02e5e
commit
a4835e2c81
13 changed files with 644 additions and 602 deletions
|
|
@ -12,7 +12,9 @@ pub struct GrooveboxTui {
|
|||
|
||||
from_jack!(|jack|GrooveboxTui {
|
||||
let mut sequencer = SequencerTui::try_from(jack)?;
|
||||
sequencer.status = false;
|
||||
sequencer.status = false;
|
||||
sequencer.transport = false;
|
||||
sequencer.selectors = false;
|
||||
let midi_in_1 = jack.read().unwrap().register_port("in1", MidiIn::default())?;
|
||||
let midi_out = jack.read().unwrap().register_port("out", MidiOut::default())?;
|
||||
let midi_in_2 = jack.read().unwrap().register_port("in2", MidiIn::default())?;
|
||||
|
|
@ -35,17 +37,31 @@ pub enum GrooveboxFocus {
|
|||
}
|
||||
|
||||
audio!(|self:GrooveboxTui,_client,_process|Control::Continue);
|
||||
|
||||
render!(<Tui>|self:GrooveboxTui|Fill::wh(Bsp::n(
|
||||
Fixed::h(2, GrooveboxStatus::from(self)),
|
||||
Fill::h(lay!([
|
||||
Fill::h(&self.size),
|
||||
Fill::h(Bsp::s(
|
||||
Tui::min_y(20, &self.sequencer),
|
||||
Tui::min_y(20, &self.sampler),
|
||||
))
|
||||
])),
|
||||
)));
|
||||
has_clock!(|self:GrooveboxTui|&self.sequencer.clock);
|
||||
render!(<Tui>|self:GrooveboxTui|Fill::wh(lay!([
|
||||
&self.size,
|
||||
Fill::wh(Align::s(Fixed::h(2, GrooveboxStatus::from(self)))),
|
||||
Tui::shrink_y(2, col!([
|
||||
Fixed::h(2, row!([
|
||||
Fixed::wh(5, 2, PlayPause(self.clock().is_rolling())),
|
||||
Fixed::h(2, TransportView::from((self, self.sequencer.player.play_phrase().as_ref().map(|(_,p)|
|
||||
p.as_ref().map(|p|p.read().unwrap().color)
|
||||
).flatten().clone(), true))),
|
||||
])),
|
||||
Tui::push_x(20, Fixed::h(1, row!([
|
||||
PhraseSelector::play_phrase(&self.sequencer.player),
|
||||
PhraseSelector::next_phrase(&self.sequencer.player),
|
||||
]))),
|
||||
row!([
|
||||
Tui::pull_y(1, Tui::shrink_y(0, Fill::h(Fixed::w(20, &self.sampler)))),
|
||||
Fill::wh(&self.sequencer),
|
||||
]),
|
||||
]))
|
||||
])));
|
||||
//Bsp::n(
|
||||
//Fill::wh(lay!([
|
||||
//])),
|
||||
//)));
|
||||
|
||||
pub enum GrooveboxCommand {
|
||||
Sequencer(SequencerCommand),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue