.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_sequencer
is a single-track, multi-pattern MIDI sequencer with properly tempo-synced pattern switchtek_groovebox
connects the sequencer to a sampler, so that you can sample while you sequencetek_arranger
is a multi-track sequencer based on a familiar clip launching UItek_transport
is a JACK transport controllertek_sampler
is a MIDI-controlled samplertek_plugin
is an audio plugin host.tek_channel
is a standalone channel striptek_mixer
is 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)