3.2 KiB
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
Usage: tek [OPTIONS] <COMMAND>
Commands:
clock A standalone transport view
sequencer A MIDI sequencer
sampler A MIDI-controlled audio sampler
groovebox Sequencer and sampler together
arranger Multi-track MIDI sequencer
mixer TODO: A MIDI-controlled audio mixer
track TODO: A customizable channel strip
plugin TODO: An audio plugin host
help Print this message or the help of the given subcommand(s)
Options:
-t, --name <NAME> Name of JACK client
-S, --sync-lead Whether to attempt to become transport master
-s, --sync-follow Whether to sync to external transport master
-b, --bpm <BPM> Initial tempo in beats per minute
-h, --help Print help
-V, --version Print version
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
note that tek > 0.2.0-rc.7 will require rust nightly
for the unstable features type_alias_impl_trait and
impl_trait_in_assoc_type. make some noise for lucky
rust rfc2515
if you want to see this buildable with stable/beta.
design goals
-
inspired by trackers and hardware sequencers, but with the critical feature that 90s samplers lack: able to resample, i.e. record while playing!
-
pop-up scratchpad for musical ideas. low resource consumption, can stay open in background. but flexible enough to allow expanding on compositions
-
human- and machine- readable project format simple representation for project data enable scripting and remapping.
