(view :logo (bsp/s (bg (rgb 100 70 40) (text ~~ ╓─╥─╖ ╓──╖ ╥ ╖ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ )) (bsp/s (bg (rgb 90 70 50) (text ~~~~ ║ ~ ╟─╌ ~╟─< ~~ heatwave is the new darkwave ~~ )) (bsp/s (bg (rgb 80 70 60) (text ~~~~ ╨ ~ ╙──╜ ╨ ╜ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ )) (align/x (text .)))))) (view :browse (bsp/s (padding 3 1 :browse-title) (enclose (fg (g 96)) browser))) (mode :transport (name Transport) (info JACK transport controller.) (keys :clock :global) :transport) (mode :menu (name Menu) (info Mode selector.) (keys :axis/y :confirm) (view (bsp/s (align/s (bsp/e :ports/out (bsp/e :transport :ports/in))) (align/c (bsp/s (align/x (bg (g 36) :logo)) (bg (g 24) :dialog/menu)))))) (keys :back (@escape (back))) (keys :confirm (@enter (dialog confirm))) (keys :axis/y (@up (axis (dec :y))) (@down (axis (inc :y)))) (mode :arranger (name Arranger) (info Launch grid.) (keys :clock :color :launch :scenes :tracks :global) (mode :editor (keys :editor)) (mode :dialog (keys :dialog)) (mode :message (keys :message)) (mode :add-device (keys :add-device)) (mode :browse (keys :browse)) (mode :rename (keys :input)) (mode :length (keys :rename)) (mode :clip (keys :clip)) (mode :track (keys :track)) (mode :scene (keys :scene)) (mode :mix (keys :mix)) (view (bsp/n (bg (g 10) (bsp/e :transport :status)) (bsp/w (bg (g 20) (exact/x 4 (align/ne :meters/output))) (bsp/e (bg (g 30) (exact/x 4 (align/nw :meters/input))) (full/xy (align/c (max/xy 80 80 (bsp/s (bg (g 40) (exact/y 4 :tracks/outputs)) (bsp/s (bg (g 50) (exact/y 2 :tracks/names)) (bsp/s (bg (g 60) (exact/y 4 :tracks/devices)) (bsp/s (bg (g 70) (exact/y 4 :tracks/inputs)) (either :mode/editor (bg (g 80) (bsp/s :scenes/names :editor)) (bg (g 90) :scenes)))))))))))))) (keys :clock (@space clock/toggle 0) (@shift/space clock/toggle 0)) (keys :color (@c color)) (keys :launch (@q launch)) (keys :scenes (@shift/S (scenes add)) (@s (select scene)) (@up (select scene-dec)) (@down (select scene-inc))) (keys :tracks (@shift/T (tracks add)) (@t (select track)) (@left (select track-dec)) (@right (select track-inc))) (keys :global (see :history :saveload) (@f8 dialog :options) (@f10 dialog :quit)) (view :ports/out (bsp/s (align/w (text L-AUDIO-OUT)) (bsp/e (text MIDI-OUT) (align/e (text AUDIO-OUT-R))))) (view :ports/in (bsp/s (align/w (text L-AUDIO-IN)) (bsp/e (text MIDI-IN) (align/e (text AUDIO-IN-R))))) (mode :sequencer (name Sequencer) (info MIDI sequencer.) (keys :editor :clock :global) (mode browse (keys :browse)) (mode rename (keys :pool/rename)) (mode length (keys :pool/length)) (bsp/s (exact/y 1 :transport) (bsp/n (exact/y 1 :status) (fill (bsp/a (fill/xy (align/e :pool)) :editor))))) (mode :sampler (name Sampler) (info Sample player.) (keys :sampler/directions :sampler/record :sampler/play) (bsp/s (exact/y 1 :transport) (bsp/n (exact/y 1 :status) (fill :samples/grid)))) (mode :groovebox (name Groovebox) (info Sequencer with sampler.) (keys :clock :editor :sampler :global) (mode browse (keys :browse)) (mode rename (keys :pool-rename)) (mode length (keys :pool-length)) (bsp/w :meters/output (bsp/e :meters/input (bsp/w :groove/meta :groove/editor)))) (view :groove/meta (fill/y (align/n (stack/s :midi-ins/status :midi-outs/status :audio-ins/status :audio-outs/status :pool)))) (view :groove/editor (bsp/n :groove/sample :groove/sequence)) (view :groove/sample (exact/y :h-sample-detail (bsp/e (fill/y (exact/x 20 (align/nw :sample-status))) :sample-viewer))) (view :groove/sequence (bsp/e (fill/y (align/n (bsp/s :status/v :editor-status))) (bsp/e :samples/keys :editor))) (keys :axis/x (@left dec :x) (@right inc :x)) (keys :axis/x2 (@shift/left dec :x2) (@shift/right inc :x2)) (keys :axis/y2 (@shift/up dec :y2) (@shift/down inc :y2)) (keys :axis/z (@minus dec :z) (@equal inc :z)) (keys :axis/z2 (@underscore dec :z2) (@plus inc :z2)) (keys :axis/i (@comma dec :i) (@period inc :z)) (keys :axis/i2 (@lt dec :i2) (@gt inc :z2)) (keys :axis/w (@openbracket dec :w) (@closebracket inc :w)) (keys :axis/w2 (@openbrace dec :w2) (@closebrace inc :w2)) (keys :focus) (keys :editor (see :axis/i :axis/i2 :axis/y :page :editor/view :editor/add :editor/del)) (keys :editor/view (see :axis/x :axis/x2 :axis/z :axis/z2) (@z toggle :lock)) (keys :editor/add (@a editor/append :true) (@enter editor/append :false)) (keys :editor/del (@del editor/delete/note) (@shift/del editor/delete/note)) (keys :sampler/record (@r sampler/record/toggle :sample/selected) (@shift/R sampler/record/back)) (keys :sampler/play (@p sampler/play/sample :sample/selected) (@P sampler/stop/sample :sample/selected)) (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)) (keys :track (see :color :launch :axis/z :axis/z2 :delete) (@r toggle :rec) (@m toggle :mon) (@p toggle :play) (@P toggle :solo)) (keys :scene (see :color :launch :axis/z :axis/z2 :delete)) (keys :help (@f1 dialog :help)) (keys :page (@pgup page/up) (@pgdn page/down)) (keys :delete (@delete delete) (@backspace delete/back)) (keys :input (see :axis/x :delete) (:char input)) (keys :list (see :axis/y :confirm)) (keys :length (see :axis/x :axis/y :confirm)) (keys :browse (see :list :input :focus)) (keys :history (@u undo 1) (@r redo 1)) (keys :saveload (@f6 dialog :save) (@f9 dialog :load)) (keys :clip (see :color :launch :axis/z :axis/z2 :delete) (@l toggle :loop)) (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))