wip: bringing it back to life
Some checks failed
/ build (push) Has been cancelled

This commit is contained in:
🪞👃🪞 2025-08-12 13:15:52 +03:00
parent 3dada45ea9
commit 4604ad66a2
9 changed files with 831 additions and 851 deletions

232
tek.edn
View file

@ -1,17 +1,19 @@
(keys :help (@f1 dialog :help))
(keys :help (@f1 dialog :help))
(keys :back (@escape back))
(keys :axis/x (@left x/prev) (@right x/next))
(keys :confirm (@enter confirm))
(keys :page (@pgup page/up) (@pgdn page/down))
(keys :axis/x (@left x/prev) (@right x/next))
(keys :axis/x2 (@shift/left x2/prev) (@shift/right x2/next))
(keys :axis/y (@up y/prev) (@down y/next))
(keys :axis/y2 (@shift/up y2/prev) (@shift/down y2/next))
(keys :axis/z (@comma z/prev) (@period z/next))
(keys :axis/z2 (@lt z2/prev) (@gt z2/next))
(keys :axis/y (@up y/prev) (@down y/next))
(keys :axis/y2 (@shift/up y2/prev) (@shift/down y2/next))
(keys :axis/z (@minus z/prev) (@equal z/next))
(keys :axis/z2 (@underscore z2/prev) (@plus z2/next))
(keys :axis/i (@comma i/prev) (@period z/next))
(keys :axis/i2 (@lt i2/prev) (@gt z2/next))
(keys :axis/w (@openbracket w/prev) (@closebracket w/next))
(keys :axis/w2 (@openbrace w2/prev) (@closebrace w2/next))
(keys :axis/page (@pgup page/up) (@pgdn page/down))
(keys :confirm (@enter confirm))
(keys :delete (@delete delete))
(keys :backspace (@backspace backspace))
(keys :axis/w2 (@openbrace w2/prev) (@closebrace w2/next))
(keys :delete (@delete delete))
(keys :backspace (@backspace delete/back))
(keys :input (see :delete :axis/x :backspace) (:char input))
(keys :length (see :confirm :axis/y :axis/x))
(keys :list (see :confirm :axis/y))
@ -24,115 +26,121 @@
(keys :saveload (@f6 dialog :save) (@f9 dialog :load))
(keys :global (see :history :saveload) (@f8 dialog :options) (@f10 dialog :quit))
(mode :transport (name Transport) (info A JACK transport controller.)
(keys :clock :global) :view/transport)
(mode :transport
(name Transport)
(info A JACK transport controller.)
(keys :clock :global)
:transport)
(mode :arranger
(name Arranger)
(info A grid of launchable clips arranged by track and scene.)
(when :mode/editor (keys :editor))
(when :mode/dialog (keys :dialog))
(when :mode/message (keys :message))
(when :mode/add-device (keys :add-device))
(when :mode/browse (keys :browse))
(when :mode/rename (keys :pool/rename))
(when :mode/length (keys :pool/length))
(when :mode/clip (keys :clip))
(when :mode/track (keys :track))
(when :mode/scene (keys :scene))
(when :mode/mix (keys :mix))
(keys :clock :arranger :global)
(bsp/w :meters/output (bsp/e :meters/input (stack/n
(fixed/y 2 :status/h2) :tracks/inputs (stack/s
:tracks/devices :tracks/outputs :tracks/names
(fill/xy (either :mode/editor (bsp/e :scenes/names :editor) :scenes)))))))
(mode :arranger (name Arranger) (info A grid of launchable clips arranged by track and scene.)
(when :mode/editor (keys :editor))
(when :mode/dialog (keys :dialog))
(when :mode/message (keys :message))
(when :mode/add-device (keys :add-device))
(when :mode/browse (keys :browse))
(when :mode/rename (keys :pool/rename))
(when :mode/length (keys :pool/length))
(when :mode/clip (keys :clip))
(when :mode/track (keys :track))
(when :mode/scene (keys :scene))
(when :mode/mix (keys :mix))
(keys :clock :arranger :global)
(bsp/w :view/meters/output
(bsp/e :view/meters/input
(stack/n
(fixed/y 2 :view/status/h2)
:view/tracks/inputs
(stack/s
:view/tracks/devices
:view/tracks/outputs
:view/tracks/names
(fill/xy (either :mode/editor
(bsp/e :view/scenes/names :view/editor)
:view/scenes)))))))
(keys :arranger (see :color :launch :scenes :tracks)
(@tab project/edit) (@enter project/edit)
(@shift/I project/input/add) (@shift/O project/output/add)
(@shift/S project/scene/add) (@shift/T project/track/add)
(@shift/D dialog/show :dialog/device))
(@tab project/edit) (@enter project/edit)
(@shift/I project/input/add) (@shift/O project/output/add)
(@shift/S project/scene/add) (@shift/T project/track/add)
(@shift/D dialog/show :dialog/device))
(keys :tracks
(@t select :select/track) (@left select :select/track/prev) (@right select :select/track/next))
(@t select :select/track)
(@left select :select/track/prev)
(@right select :select/track/next))
(keys :track (see :color :launch :axis/z :axis/z2 :delete)
(@r toggle :rec) (@m toggle :mon) (@p toggle :play) (@P toggle :solo))
(@r toggle :rec)
(@m toggle :mon)
(@p toggle :play)
(@P toggle :solo))
(keys :scenes
(@s select :select/scene) (@up select :select/scene/prev) (@down select :select/scene/next))
(keys :scene
(see :color :launch :axis/z :axis/z2 :delete))
(@s select :select/scene)
(@up select :select/scene/prev)
(@down select :select/scene/next))
(keys :scene (see :color :launch :axis/z :axis/z2 :delete))
(keys :clip (see :color :launch :axis/z :axis/z2 :delete)
(@l toggle :loop))
(@l toggle :loop))
(mode :groovebox (name Groovebox) (info A sequencer with built-in sampler.)
(when :mode/browse (keys :browse))
(when :mode/rename (keys :pool-rename))
(when :mode/length (keys :pool-length))
(keys :clock :editor :sampler :global)
(bsp/w :view/meters/output
(bsp/e :view/meters/input
(bsp/w
(fill/y (align/n (stack/s :view/midi-ins/status
:view/midi-outs/status
:view/audio-ins/status
:view/audio-outs/status
:view/pool)))
(bsp/n (fixed/y :h-sample-detail (bsp/e (fill/y (fixed/x 20 (align/nw :view/sample-status)))
:view/sample-viewer))
(bsp/e (fill/y (align/n (bsp/s :view/status/v :view/editor-status)))
(bsp/e :view/samples/keys
:view/editor)))))))
(mode :groovebox
(name Groovebox)
(info A sequencer with built-in sampler.)
(when :mode/browse (keys :browse))
(when :mode/rename (keys :pool-rename))
(when :mode/length (keys :pool-length))
(keys :clock :editor :sampler :global)
(bsp/w :meters/output (bsp/e :meters/input (bsp/w
(fill/y (align/n
(stack/s :midi-ins/status :midi-outs/status :audio-ins/status :audio-outs/status :pool)))
(bsp/n
(fixed/y :h-sample-detail (bsp/e
(fill/y (fixed/x 20 (align/nw :sample-status)))
:sample-viewer))
(bsp/e (fill/y (align/n (bsp/s :status/v :editor-status)))
(bsp/e :samples/keys :editor)))))))
(mode :sampler (name Sampler) (info A sampling soundboard.)
(keys :sampler :global)
(bsp/s (fixed/y 1 :view/transport)
(bsp/n (fixed/y 1 :view/status)
(fill/xy :view/samples/grid))))
(keys :sampler (see :sampler/directions :sampler/record :sampler/play))
(keys :sampler/play (@p sampler/play/sample :sample/selected) (@P sampler/stop/sample :sample/selected))
(keys :sampler/record (@r sampler/record/toggle :sample/selected) (@shift/R sampler/record/back))
(keys :sampler/import-export (@shift/f6 dialog :dialog/export/sample) (@shift/f9 dialog :dialog/import/sample))
(keys :sampler/directions (@up sampler/select :sample/above) (@down sampler/select :sample/below) (@left sampler/select :sample/to/left) (@right sampler/select :sample/to/right))
(mode :sampler
(name Sampler)
(info A sampling soundboard.)
(keys :sampler :global)
(bsp/s (fixed/y 1 :transport) (bsp/n (fixed/y 1 :status) (fill/xy :samples/grid))))
(mode :sequencer (name Sequencer) (info A MIDI sequencer.)
(when :mode/browse (keys :browse))
(when :mode/rename (keys :pool-rename))
(when :mode/length (keys :pool-length))
(keys :editor :clock :global)
(bsp/s (fixed/y 1 :view/transport)
(bsp/n (fixed/y 1 :view/status)
(fill/xy (bsp/a (fill/xy (align/e :view/pool))
:view/editor)))))
(keys :sequencer (see :color :launch) (@shift/I input/add) (@shift/O output/add))
(keys :sampler
(see :sampler/directions :sampler/record :sampler/play))
(keys :sampler/play
(@p sampler/play/sample :sample/selected)
(@P sampler/stop/sample :sample/selected))
(keys :sampler/record
(@r sampler/record/toggle :sample/selected)
(@shift/R sampler/record/back))
(keys :sampler/import-export
(@shift/f6 dialog :dialog/export/sample)
(@shift/f9 dialog :dialog/import/sample))
(keys :sampler/directions
(@up sampler/select :sample/above)
(@down sampler/select :sample/below)
(@left sampler/select :sample/to/left)
(@right sampler/select :sample/to/right))
(mode :sequencer
(name Sequencer)
(info A MIDI sequencer.)
(when :mode/browse (keys :browse))
(when :mode/rename (keys :pool/rename))
(when :mode/length (keys :pool/length))
(keys :editor :clock :global)
(bsp/s (fixed/y 1 :transport)
(bsp/n (fixed/y 1 :status)
(fill/xy (bsp/a (fill/xy (align/e :pool))
:editor)))))
(keys :sequencer (see :color :launch)
(@shift/I input/add)
(@shift/O output/add))
(keys :pool (see :axis-y :axis-w :axis/z2 :color :delete)
(@n rename/begin) (@t length/begin) (@m import/begin) (@x export/begin)
(@shift/A clip/add :after :new/clip)
(@shift/D clip/add :after :cloned/clip))
(@n rename/begin) (@t length/begin) (@m import/begin) (@x export/begin)
(@shift/A clip/add :after :new/clip)
(@shift/D clip/add :after :cloned/clip))
(keys :editor (see :editor/view :editor/note))
(keys :editor/view
(@left editor/time/set :time/pos/prev)
(@shift/left editor/time/set :time/pos/prev/fine)
(@right editor/time/set :time/pos/next)
(@shift/right editor/time/set :time/pos/next/fine)
(@equal editor/zoom/set :time/zoom/prev)
(@minus editor/zoom/set :time/zoom/next)
(@plus editor/zoom/set :time/zoom/next/fine)
(@underscore editor/zoom/set :time/zoom/prev/fine)
(@z editor/lock/set))
(keys :editor/note
(@comma editor/length/set :note/len/prev)
(@period editor/length/set :note/len/next)
(@lt editor/length/set :note/len/prev)
(@gt editor/length/set :note/len/next)
(@up editor/pitch/set :note/pos/next)
(@down editor/pitch/set :note/pos/prev)
(@pgup editor/pitch/set :note/pos/next/octave)
(@pgdn editor/pitch/set :note/pos/prev/octave)
(@a editor/append :true)
(@enter editor/append :false)
(@del editor/delete/note)
(@shift/del editor/delete/note))
(keys :editor/view (see :axis/x :axis/x2 :axis/z :axis/z2)
(@z toggle :lock))
(keys :editor/note (see :axis/i :axis/i2 :axis/y :axis/page)
(@a editor/append :true) (@enter editor/append :false)
(@del editor/delete/note) (@shift/del editor/delete/note))