| .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.
hmu on mastodon @unspeaker@mastodon.social
or matrix @unspeaker:matrix.org
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.
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)