mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-08 04:36:45 +01:00
merge tek_jack into tek_core
This commit is contained in:
parent
a659062dbc
commit
278b3caad3
23 changed files with 285 additions and 456 deletions
|
|
@ -8,7 +8,6 @@ clojure-reader = "0.1.0"
|
|||
microxdg = "0.1.2"
|
||||
|
||||
tek_core = { path = "../tek_core" }
|
||||
tek_jack = { path = "../tek_jack" }
|
||||
tek_sequencer = { path = "../tek_sequencer" }
|
||||
tek_mixer = { path = "../tek_mixer" }
|
||||
#jack = "0.10"
|
||||
|
|
|
|||
139
crates/tek/example.edn
Normal file
139
crates/tek/example.edn
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
;(bpm 150)
|
||||
|
||||
;(midi-in "nanoKEY Studio.*capture.*")
|
||||
;(midi-in "nanoKEY Studio.*capture.*")
|
||||
;(audio-out "Built-.+:playback_FL", "Built-.+:playback_FR")
|
||||
|
||||
;(scene { :name "Intro" } 0 0 _ _)
|
||||
;(scene { :name "Hook" } 1 1 0 _)
|
||||
;(scene { :name "Verse" } 2 2 1 _)
|
||||
;(scene { :name "Chorus" } 3 3 2 _)
|
||||
;(scene { :name "Bridge" } _ 4 3 _)
|
||||
;(scene { :name "Outro" } 4 1 4 _)
|
||||
|
||||
;(track { :name "Drums" :gain +0.0 }
|
||||
;(phrase { :name "4 kicks" :beats 4 :steps 16 }
|
||||
;(:00 (36 128))
|
||||
;(:04 (36 100))
|
||||
;(:08 (36 100))
|
||||
;(:12 (36 100)))
|
||||
;(phrase { :name "5 kicks" :beats 4 :steps 16 }
|
||||
;(:00 (36 128))
|
||||
;(:04 (36 100))
|
||||
;(:08 (36 128))
|
||||
;(:12 (36 100))
|
||||
;(:14 (36 110)))
|
||||
;(phrase { :name "D Beat" :beats 8 :steps 32 }
|
||||
;(:00 (44 70) (36 128) (49 110))
|
||||
;(:02 (44 30))
|
||||
;(:04 (44 80) (40 100))
|
||||
;(:06 (44 50))
|
||||
;(:08 (44 30) (36 100))
|
||||
;(:10 (44 50) (36 100))
|
||||
;(:12 (44 80) (40 100))
|
||||
;(:14 (44 50))
|
||||
;(:15 (36 50))
|
||||
;(:16 (44 60) (36 80))
|
||||
;(:18 (44 60) (36 80))
|
||||
;(:20 (44 60) (40 80))
|
||||
;(:22 (44 60))
|
||||
;(:24 (44 60))
|
||||
;(:26 (44 30) (36 80))
|
||||
;(:27 (44 60))
|
||||
;(:28 (44 60) (40 80))
|
||||
;(:30 (44 60)))
|
||||
;(phrase { :name "Garage" :beats 4 :steps 16 }
|
||||
;(:00 (44 100) (36 100) (35 100))
|
||||
;(:01 (44 100))
|
||||
;(:02 (44 100) (35 100))
|
||||
;(:03 (44 100))
|
||||
;(:04 (44 100) (40 100))
|
||||
;(:06 (44 100))
|
||||
;(:07 (44 100) (34 100))
|
||||
;(:09 (44 100))
|
||||
;(:10 (44 100))
|
||||
;(:11 (35 100) (36 100))
|
||||
;(:12 (44 100) (40 100))
|
||||
;(:14 (44 100)))
|
||||
|
||||
;(phrase { :name "Trap Pinging" :beats 8 :steps 96 }
|
||||
;(:00 (42 100) (36 100) (34 120) (49 100))
|
||||
;(:01 (42 100))
|
||||
;(:02 (42 100))
|
||||
;(:06 (42 100) (35 80) (36 80) (49 100))
|
||||
;(:07 (42 100))
|
||||
;(:08 (42 100))
|
||||
;(:12 (42 100))
|
||||
;(:15 (39 100) (34 100))
|
||||
;(:18 (42 100))
|
||||
;(:24 (42 100) (38 50) (40 50))
|
||||
;(:27 (42 100) (36 50))
|
||||
;(:30 (42 100))
|
||||
;(:33 (42 100) (36 50) (34 100))
|
||||
;(:36 (42 90))
|
||||
;(:39 (42 80))
|
||||
;(:42 (42 70))
|
||||
;(:45 (42 60))
|
||||
|
||||
;(:48 (42 100) (36 100) (34 100))
|
||||
;(:50 (42 100))
|
||||
;(:52 (42 110))
|
||||
;(:54 (46 50) (42 120))
|
||||
;(:56 (42 90))
|
||||
;(:58 (42 100))
|
||||
;(:60 (42 100) (35 100))
|
||||
;(:64 (39 100))
|
||||
;(:66 (42 100) (34 100))
|
||||
|
||||
;(:70 (42 100))
|
||||
;(:71 (42 100))
|
||||
;(:72 (42 100) (38 50) (40 50))
|
||||
;(:75 (42 100) (36 50) (34 80))
|
||||
;(:78 (42 100))
|
||||
;(:81 (42 100) (36 50))
|
||||
;(:84 (38 40) (40 50) (34 90))
|
||||
;(:87 (42 90) (35 40))
|
||||
;(:90 (42 70)))
|
||||
|
||||
;(sampler { :name "DrumKit1" :dir "/home/user/Lab/Music/pak" }
|
||||
;(sample { :midi 34 :name "808 D" :file "808.wav" })
|
||||
;(sample { :midi 35 :name "Kick 1" :file "kik.wav" })
|
||||
;(sample { :midi 36 :name "Kick 2" :file "kik2.wav" })
|
||||
;(sample { :midi 37 :name "Rim" :file "rim.wav" })
|
||||
;(sample { :midi 38 :name "Snare 1" :file "sna.wav" })
|
||||
;(sample { :midi 39 :name "Shaker" :file "shk.wav" })
|
||||
;(sample { :midi 40 :name "Snare 2" :file "sna2.wav" })
|
||||
;(sample { :midi 42 :name "Closed HH 1" :file "chh.wav" })
|
||||
;(sample { :midi 44 :name "Closed HH 2" :file "chh2.wav" })
|
||||
;(sample { :midi 45 :name "Open HH 0" :file "ohh.wav" })
|
||||
;(sample { :midi 46 :name "Open HH 1" :file "ohh1.wav" })
|
||||
;(sample { :midi 47 :name "Open HH 2" :file "ohh2.wav" })
|
||||
;(sample { :midi 49 :name "Crash" :file "crs.wav" })))
|
||||
|
||||
;(track { :name "Bass" :gain +0.0 }
|
||||
;(phrase { :name "Bass 1" :beats 4 })
|
||||
;(phrase { :name "Bass 2" :beats 4 })
|
||||
;(phrase { :name "Bass 3" :beats 4 })
|
||||
;(phrase { :name "Bass 4" :beats 4 })
|
||||
;(phrase { :name "Bass 5" :beats 4 })
|
||||
;(phrase { :name "Bass 6" :beats 4 })
|
||||
;(phrase { :name "Bass 7" :beats 4 })
|
||||
;(phrase { :name "Bass 8" :beats 4 })
|
||||
;(lv2 {
|
||||
;:name "Odin2"
|
||||
;:path "file:///home/user/.lv2/Odin2.lv2"
|
||||
;}))
|
||||
|
||||
;(track { :name "Lead" :gain +0.0 }
|
||||
;(phrase { :name "Lead 1" :beats 4 })
|
||||
;(phrase { :name "Lead 2" :beats 4 })
|
||||
;(phrase { :name "Lead 3" :beats 4 })
|
||||
;(phrase { :name "Lead 4" :beats 4 })
|
||||
;(phrase { :name "Lead 5" :beats 4 })
|
||||
;(phrase { :name "Lead 6" :beats 4 })
|
||||
;(phrase { :name "Lead 7" :beats 4 })
|
||||
;(phrase { :name "Lead 8" :beats 4 })
|
||||
;(lv2 {
|
||||
;:name "Odin2"
|
||||
;:path "file:///home/user/.lv2/Odin2.lv2"
|
||||
;}))
|
||||
|
|
@ -37,17 +37,18 @@ fn handle_modal (e: &AppEvent) -> Usually<bool> {
|
|||
}
|
||||
|
||||
fn handle_focused (state: &mut App, e: &AppEvent) -> Usually<bool> {
|
||||
match state.section {
|
||||
AppFocus::Transport => state.transport.handle(e),
|
||||
AppFocus::Arranger => state.arranger.sequencer_mut().map(|s|s.handle(e)),
|
||||
AppFocus::Sequencer => state.arranger.sequencer_mut().map(|s|s.handle(e)),
|
||||
AppFocus::Chain => Ok(false)/*if state.entered {
|
||||
handle_device(state, e)? ||
|
||||
handle_keymap(state, e, crate::control::KEYMAP_CHAIN)?
|
||||
} else {
|
||||
handle_keymap(state, e, crate::control::KEYMAP_CHAIN)? || handle_device(state, e)?
|
||||
})*/
|
||||
}
|
||||
unimplemented!()
|
||||
//match state.section {
|
||||
//AppFocus::Transport => state.transport.handle(e),
|
||||
//AppFocus::Arranger => state.arranger.sequencer_mut().map(|s|s.handle(e)),
|
||||
//AppFocus::Sequencer => state.arranger.sequencer_mut().map(|s|s.handle(e)),
|
||||
//AppFocus::Chain => Ok(false)[>if state.entered {
|
||||
//handle_device(state, e)? ||
|
||||
//handle_keymap(state, e, crate::control::KEYMAP_CHAIN)?
|
||||
//} else {
|
||||
//handle_keymap(state, e, crate::control::KEYMAP_CHAIN)? || handle_device(state, e)?
|
||||
//})*/
|
||||
//}
|
||||
}
|
||||
|
||||
fn handle_device (state: &mut App, e: &AppEvent) -> Usually<bool> {
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@
|
|||
#![allow(macro_expanded_macro_exports_accessed_by_absolute_paths)]
|
||||
#![allow(ambiguous_glob_reexports)]
|
||||
|
||||
pub(crate) use tek_core::*;
|
||||
pub(crate) use tek_jack::{*, jack::*};
|
||||
pub(crate) use tek_core::{*, jack::*};
|
||||
pub(crate) use tek_sequencer::*;
|
||||
pub(crate) use tek_mixer::*;
|
||||
pub(crate) use microxdg::XdgApp;
|
||||
|
||||
submod! {
|
||||
|
|
@ -29,7 +29,7 @@ pub static MODAL: Lazy<Arc<Mutex<Option<Box<dyn ExitableComponent>>>>> =
|
|||
|
||||
/// Application entrypoint.
|
||||
pub fn main () -> Usually<()> {
|
||||
run(App::from_edn(include_str!("../../../demos/project.edn"))?
|
||||
run(App::from_edn(include_str!("../example.edn"))?
|
||||
.activate(Some(|app: &Arc<RwLock<App>>|Ok({
|
||||
let (midi_in, mut midi_outs) = {
|
||||
let app = app.read().unwrap();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue