mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 11:46:41 +01:00
wip: unify apps
This commit is contained in:
parent
a9cad18891
commit
cff87657b9
12 changed files with 291 additions and 247 deletions
110
cli/tek.rs
110
cli/tek.rs
|
|
@ -76,6 +76,8 @@ pub fn main () -> Usually<()> {
|
|||
let left_tos = PortConnection::collect(&cli.left_to, empty, empty);
|
||||
let right_froms = PortConnection::collect(&cli.right_from, empty, empty);
|
||||
let right_tos = PortConnection::collect(&cli.right_to, empty, empty);
|
||||
let audio_froms = &[&left_froms, &right_froms];
|
||||
let audio_tos = &[&left_tos, &right_tos ];
|
||||
let perf = PerfModel::default();
|
||||
let size = Measure::new();
|
||||
let default_clip = ||Arc::new(RwLock::new(MidiClip::new(
|
||||
|
|
@ -116,25 +118,6 @@ pub fn main () -> Usually<()> {
|
|||
TekMode::Clock => engine.run(&jack.activate_with(|jack|Ok(TransportTui {
|
||||
jack: jack.clone(), clock: default_clock(jack),
|
||||
}))?)?,
|
||||
TekMode::Sequencer => engine.run(&jack.activate_with(|jack|Ok({
|
||||
let clip = default_clip();
|
||||
let mut player = default_player(jack, Some(&clip))?;
|
||||
player.clock = default_bpm(player.clock);
|
||||
Sequencer {
|
||||
_jack: jack.clone(),
|
||||
player,
|
||||
pool: (&clip).into(),
|
||||
editor: (&clip).into(),
|
||||
midi_buf: vec![vec![];65536],
|
||||
note_buf: vec![],
|
||||
status: true,
|
||||
perf,
|
||||
size,
|
||||
compact: true,
|
||||
transport: true,
|
||||
selectors: true,
|
||||
}
|
||||
}))?)?,
|
||||
TekMode::Sampler => engine.run(&jack.activate_with(|jack|Ok(
|
||||
SamplerTui {
|
||||
cursor: (0, 0),
|
||||
|
|
@ -147,53 +130,62 @@ pub fn main () -> Usually<()> {
|
|||
size,
|
||||
}
|
||||
))?)?,
|
||||
TekMode::Sequencer => engine.run(&jack.activate_with(|jack|Ok({
|
||||
let clip = default_clip();
|
||||
let mut player = default_player(jack, Some(&clip))?;
|
||||
player.clock = default_bpm(player.clock);
|
||||
App::sequencer(
|
||||
jack, (&clip).into(), (&clip).into(),
|
||||
Some(player), &midi_froms, &midi_tos,
|
||||
)
|
||||
}))?)?,
|
||||
TekMode::Groovebox => engine.run(&jack.activate_with(|jack|Ok({
|
||||
let clip = default_clip();
|
||||
let mut player = default_player(jack, Some(&clip))?;
|
||||
player.clock = default_bpm(player.clock);
|
||||
let sampler = default_sampler(jack)?;
|
||||
jack.connect_ports(&player.midi_outs[0].port, &sampler.midi_in.port)?;
|
||||
let app = Groovebox {
|
||||
_jack: jack.clone(),
|
||||
player,
|
||||
sampler,
|
||||
pool: (&clip).into(),
|
||||
editor: (&clip).into(),
|
||||
midi_buf: vec![vec![];65536],
|
||||
note_buf: vec![],
|
||||
perf,
|
||||
size,
|
||||
compact: true,
|
||||
status: true,
|
||||
};
|
||||
app
|
||||
App::groovebox(
|
||||
jack, (&clip).into(), (&clip).into(),
|
||||
Some(player), &midi_froms, &midi_tos,
|
||||
sampler, &audio_froms, &audio_tos,
|
||||
)
|
||||
}))?)?,
|
||||
TekMode::Arranger { scenes, tracks, track_width, .. } =>
|
||||
engine.run(&jack.activate_with(|jack|Ok({
|
||||
let clock = default_clock(jack);
|
||||
let mut app = Arranger {
|
||||
jack: jack.clone(),
|
||||
midi_ins: vec![JackPort::<MidiIn>::new(jack, format!("M/{name}"), &midi_froms)?,],
|
||||
midi_outs: vec![JackPort::<MidiOut>::new(jack, format!("{name}/M"), &midi_tos)?, ],
|
||||
clock,
|
||||
pool: PoolModel::default(),//(&clip).into(),
|
||||
editor: MidiEditor::default(),//(&clip).into(),
|
||||
selected: ArrangerSelection::Clip(0, 0),
|
||||
scenes: vec![],
|
||||
tracks: vec![],
|
||||
splits: [12, 20],
|
||||
midi_buf: vec![vec![];65536],
|
||||
note_buf: vec![],
|
||||
compact: false,
|
||||
editing: true.into(),
|
||||
color,
|
||||
perf,
|
||||
size,
|
||||
};
|
||||
app.tracks_add(tracks, track_width, &midi_froms, &midi_tos)?;
|
||||
app.scenes_add(scenes)?;
|
||||
app
|
||||
}))?)?,
|
||||
TekMode::Arranger { scenes, tracks, track_width, .. } => engine.run(&jack.activate_with(|jack|Ok({
|
||||
App::arranger(
|
||||
jack,
|
||||
PoolModel::default(),
|
||||
MidiEditor::default(), &midi_froms, &midi_tos,
|
||||
default_sampler(jack)?, &audio_froms, &audio_tos,
|
||||
scenes, tracks, track_width
|
||||
)
|
||||
}))?)?,
|
||||
|
||||
|
||||
//let clock = default_clock(jack);
|
||||
//let mut app = Arranger {
|
||||
//jack: jack.clone(),
|
||||
//midi_ins: vec![JackPort::<MidiIn>::new(jack, format!("M/{name}"), &midi_froms)?,],
|
||||
//midi_outs: vec![JackPort::<MidiOut>::new(jack, format!("{name}/M"), &midi_tos)?, ],
|
||||
//clock,
|
||||
//pool: PoolModel::default(),//(&clip).into(),
|
||||
//editor: MidiEditor::default(),//(&clip).into(),
|
||||
//selected: ArrangerSelection::Clip(0, 0),
|
||||
//scenes: vec![],
|
||||
//tracks: vec![],
|
||||
//splits: [12, 20],
|
||||
//midi_buf: vec![vec![];65536],
|
||||
//note_buf: vec![],
|
||||
//compact: false,
|
||||
//editing: true.into(),
|
||||
//color,
|
||||
//perf,
|
||||
//size,
|
||||
//};
|
||||
//app.tracks_add(tracks, track_width, &midi_froms, &midi_tos)?;
|
||||
//app.scenes_add(scenes)?;
|
||||
//app
|
||||
//}))?)?,
|
||||
|
||||
_ => todo!()
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue