| .forgejo/workflows | ||
| .old | ||
| bin | ||
| engine | ||
| examples | ||
| layout | ||
| rust-jack@d09788959f | ||
| src | ||
| suil | ||
| .dockerignore | ||
| .gitignore | ||
| .gitmodules | ||
| .scratch.rs | ||
| architecture.svg | ||
| Cargo.lock | ||
| Cargo.toml | ||
| Justfile | ||
| LICENSE | ||
| README.md | ||
| shell.nix | ||
tek 
a music making program for 24-bit unicode terminals.
written in rust with ratatui on crossterm for jack and pipewire.
tek is available as source, statically linked binaries, and on the aur.
this codebase produces the following binaries:
tek_sequenceris a single-track, multi-pattern MIDI sequencer with properly tempo-synced pattern switchtek_grooveboxconnects the sequencer to a sampler, so that you can sample while you sequencetek_arrangeris a multi-track sequencer based on a familiar clip launching UItek_transportis a JACK transport controllertek_sampleris a MIDI-controlled samplertek_pluginis an audio plugin host.tek_channelis a standalone channel striptek_mixeris an audio mixer.
some of these are currently work in progress.
the project roadmap is at https://codeberg.org/unspeaker/tek/milestones
getting started
- requirements: linux; jack or pipewire; 24-bit terminal (i use
kitty) - recommended: midi controller; samples in wav format; lv2 plugins.
installation
arch linux
tek is available as a package in the AUR.
you can install it using an AUR helper (e.g. paru):
paru -S tek
downloads
see the releases page.
building from source
you'll need a Rust toolchain and various system libraries.
you can obtain the former using rustup and the latter using nix-shell.
there's a shell.nix provided with the project.
from there, use the commands in the Justfile, e.g.:
just arranger
design goals
lightweight
- pop-up scratchpad for musical ideas
- low resource consumption, can stay open in background
- advanced toolset allows quickly expanding on compositions
flexible
- inspired by trackers and hardware sequencers
- able to record while playing!
programmable
- human-readable project format
- command architecture allows for scripting and remapping
Note
Your moral support means a lot to me. Feel free to contact me on Mastodon![^0]
Love, 🤫 (a rogue knowledge worker in a cyberpunk dystopia)