4.5 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
- requirements: linux; jack or pipewire; 24-bit terminal (i use
kitty
) - recommended: midi controller; samples in wav format; lv2 plugins.
Usage: tek [OPTIONS] <COMMAND>
Commands:
clock A standalone transport clock
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:
-n, --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
-t, --show-clock Whether to include a transport toolbar (default: true)
-I, --midi-from <MIDI_FROM> MIDI outs to connect to (multiple instances accepted)
-i, --midi-from-re <MIDI_FROM_RE> MIDI outs to connect to (multiple instances accepted)
-O, --midi-to <MIDI_TO> MIDI ins to connect to (multiple instances accepted)
-o, --midi-to-re <MIDI_TO_RE> MIDI ins to connect to (multiple instances accepted)
-l, --left-from <LEFT_FROM> Audio outs to connect to left input
-r, --right-from <RIGHT_FROM> Audio outs to connect to right input
-L, --left-to <LEFT_TO> Audio ins to connect from left output
-R, --right-to <RIGHT_TO> Audio ins to connect from right output
-h, --help Print help
-V, --version Print version
keymaps
arrows/wasd
: navigatetab
: toggle editorenter
: write notez
: unlock zoom-
/=
: zoom midi editor- space: play/pause
- esc: options
- f1: help/command list
- f2: rename
- f6: save
- f9: load
installation
binary download
see the releases page.
from source with cargo
requires rust nightly.
cargo install --git https://codeberg.org/unspeaker/tek
from distro repositories
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
development
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.