As any Linux chat room or forum will tell you, the most powerful tool to any Linux user is a terminal emulator. Just about every program under the sun has a command line alternative, be it CAD, note taking, or web browsing. Likewise, the digital audio workstation (DAW) is the single most important tool to anyone making music. Therefore, [unspeaker] decided the two should, at last, be combined with a terminal based DAW called Tek.
Tek functions similarly to other DAWs, albeit with keyboard only input. For anyone used to working in Vim or Emacs (we ask you keep the inevitable text editor comment war civil), Tek will be very intuitive. Currently, the feature set is fairly spartan, but plans exist to add keybinds for save/load, help, and more. The program features several modes including a multi-track sequencer/sampler called the “arranger.” Each track in the arranger is color coded with a gradient of colors generated randomly at start for a fresh look every time.
Modern audio workflows often span across numerous programs, and Tek was built with this in mind. It can take MIDI input and output from the JACK Audio Connection Kit, and plans also exist to create a plugin server so Tek could be used with other DAWs like Ardor or Zrythm. Moreover, being a terminal program opens possibilities for complicated shell scripting and other such Linux-fu.
Maybe a terminal DAW is not your thing, so make sure to check out this physical one instead!
I’ve also found two similar projects:
https://github.com/danfrz/PLEBTracker
https://zuggamasta.de/projects/miditracker/
“For anyone used to working in Vim or Emacs (we ask you keep the inevitable text editor comment war civil)”
Ok, fine. I’ll accept a temporary ceasefire with the Vim people. But you didn’t say anything about us gaining up on the Edlin fans!
Sed is the only choice.
YOUR EDITOR SMELLS OF ELDERBERRIES!
** feverish flapping of gauntlets on ramparts ***
This is an exceptional text UI. Seems like the Rust ecosystem has that nailed down. Looks too cool to not play with!
a pretty weird idea. i’m not convinced this is a good way to go, though i’m curious how the keyboard commands work.
i’ve played a little with multi-track recorders (a subset of DAW functionality). my first one was command-line driven (unlike Tek). the commandline was text but then the display for the tracks was in a graphical window. so you would have to have two windows open, one with the terminal and one with the display. maybe i could have invented a better commandline syntax, but i found it way too cumbersome to work with. but it was the program i had so i used it for years whenever i would need to cut up a sample.
i met a version of Traverso…when i discovered it, it was buggy as heck and it was in the process of being rewritten into a more normal DAW interface (yet another unneeded audacity clone). but the one i used, like to adjust the master volume on the track, instead of mousing onto a tiny skeuomorphic knob, you would simply mouse over any part of the track and then hold down a key (maybe ‘v’olume) and move the mouse up and down while holding the key. i thought that was brilliant.
i resigned myself to using audacity, but the closest USB jack to my microphone is a raspberry pi, and the raspberry pi kernel drivers are just thin wrappers around buggy closed source garbage. so – surprise! – audacity hard-locked my pi when it tried to enable DMA mode on a USB sound device. rather than figure out how to get audacity to give up on DMA before the pi firmware eats itself, i wrote a new multi-track recorder.
the new one has basically the old traverso interface. hold down a key and drag the mouse to change a setting. it’s modal depending on where the mouse cursor is, whether it’s in a track or not. there’s a uniform way to enter the value with the keyboard (numeric). and its best feature, a modal help screen that shows the keys for the current mouse position. it’s a rare one for me, in that it is both very easy to use once you know it, and very easy to learn (or to pick up again after forgetting how it works). and it’s intentionally very simplistic (trying to give you basically just cut-and-paste with tape).
the point i’m trying to circle is that what is needed is an input interface that takes advantage of the keyboard and doesn’t have the user practicing their fine clicking skills on skeuomorphic garbage. having a terminal display is actually not any benefit at all. and anyways, Tek doesn’t seem to have a commandline so it doesn’t seem amenable to scripting. i’d love to see an article summarizing the Tek keyboard commands but the screenshots make it look like a 1990-era mod tracker, rather than a multi-track recorder?
Is it still CLI if you’re emulating a graphical user interface with ASCII graphics?
The answer is no. This is a class of interface that is called TUI or Text-based User Interface. The definition of a pure CLI program is a bit muddled but this is 100% a TUI program and not a CLI program.