🦀 a colorful music making program for your linux terminal 🦀
  • Rust 91.8%
  • C 6.8%
  • Just 0.7%
  • Shell 0.5%
  • Nix 0.2%
Find a file
okay stopped screaming 4f5c332f48
Some checks are pending
/ build (push) Waiting to run
use impl_default, remove some feature annotations
2026-02-23 23:10:57 +02:00
.cargo test+refactor: identifying missing pieces 2026-02-20 23:03:02 +02:00
.forgejo/workflows ci: disable cache 2025-04-19 23:07:37 +03:00
.old unify default configs 2025-07-31 21:00:32 +03:00
app use impl_default, remove some feature annotations 2026-02-23 23:10:57 +02:00
build document build directory 2025-04-20 00:46:25 +03:00
suil refactor: decided i don't like the deps/ subdir any longer 2026-02-20 14:50:19 +02:00
tengri@f1dda6af07 use impl_default, remove some feature annotations 2026-02-23 23:10:57 +02:00
vst refactor: decided i don't like the deps/ subdir any longer 2026-02-20 14:50:19 +02:00
.dockerignore add containerized release build 2025-04-19 01:20:41 +03:00
.editorconfig break up into crates again 2025-09-10 01:58:32 +03:00
.envrc add direnv 2025-10-23 05:43:24 +03:00
.gitignore add direnv 2025-10-23 05:43:24 +03:00
.gitmodules move the jack stuff into tengri 2026-02-23 21:21:17 +02:00
architecture.svg move some docs to root 2024-12-30 21:56:52 +01:00
bacon.toml closer and closer to testing it away 2026-02-21 18:13:36 +02:00
Cargo.lock move the jack stuff into tengri 2026-02-23 21:21:17 +02:00
Cargo.toml use new AsRefOpt/AsMutOpt glue traits 2026-02-23 22:49:49 +02:00
CONTRIBUTING.md local dockerized build 2025-04-19 03:23:09 +03:00
Justfile use new AsRefOpt/AsMutOpt glue traits 2026-02-23 22:49:49 +02:00
LICENSE add license 2025-03-24 03:18:18 +02:00
README.md update screenshots in readme 2025-05-16 14:01:15 +00:00
shell.nix remove workspace 2026-02-21 20:58:10 +02:00

tek Please don't upload to GitHub

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.

author is reachable via mastodon @[email protected] or matrix @unspeaker:matrix.org

Screenshot of Arranger Mode Screenshot of Groovebox Mode
Screenshot of Help in Groovebox Mode

usage

  • requirements: linux; jack or pipewire; 24-bit terminal (i use kitty)
  • recommended: midi controller; samples in wav format; lv2 plugins.

keymaps

  • Arranger:
    • arrows: navigate
    • tab: enter editor
    • q: enqueue clip
    • space: play/pause
  • Editor:
    • arrows: navigate
    • , / .: change note length
    • enter: write note
    • - / =: zoom midi editor
    • z: zoom lock/unlock
    • del: delete
  • Global:
    • esc: options menu
    • f1: help/command list
    • f2: rename
    • f6: save
    • f9: load

installation

binary download

you can download tek 0.2.0 "almost static" from codeberg releases. this standalone binary release, should work on any glibc-based system.

from distro repositories

Packaging status

arch linux

tek 0.2.0-rc7 is available as a package in the AUR. you can install it using your preferred AUR helper (e.g. paru):

paru -S tek

building from source

requires docker.

git clone --recursive -b 0.2 https://codeberg.org/unspeaker/tek
cd tek                             # enter directory
cat bin/release-glibc.sh           # preview build script
sudo bin/release-glibc.sh          # run build script
sudo cp bin/tek /usr/local/bin/tek # install

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.