🦀 a colorful music making program for your linux terminal 🦀
Find a file
2025-01-02 23:18:28 +01:00
.forgejo/workflows ci: try docker from nix-shell 2024-12-31 17:06:29 +01:00
.old flatten workspace into 1 crate 2024-12-29 00:10:30 +01:00
bin add --bpm flag 2025-01-02 16:38:04 +01:00
engine remove some old macros 2025-01-02 21:54:18 +01:00
examples remove some old macros 2025-01-02 21:54:18 +01:00
layout add Measure::of 2025-01-02 14:11:32 +01:00
rust-jack@d09788959f implement sync_lead and sync_follow flags for groovebox 2024-12-29 18:39:20 +01:00
src light up meters 2025-01-02 23:18:28 +01:00
suil flatten workspace into 1 crate 2024-12-29 00:10:30 +01:00
.dockerignore fix and update ci config 2024-12-21 12:25:50 +01:00
.gitignore basic midi import example 2024-11-24 03:47:03 +01:00
.gitmodules fix ci; fix deps breakage from upgrade 2024-12-30 23:08:49 +01:00
.scratch.rs put phrase 2024-12-24 01:15:35 +01:00
architecture.svg move some docs to root 2024-12-30 21:56:52 +01:00
Cargo.lock update deps: clojure-reader to 0.3.0 2024-12-30 22:10:14 +01:00
Cargo.toml update deps: clojure-reader to 0.3.0 2024-12-30 22:10:14 +01:00
Justfile add --bpm flag 2025-01-02 16:38:04 +01:00
LICENSE update license 2024-10-15 09:16:48 +03:00
README.md ci: try docker from nix-shell 2024-12-31 17:06:29 +01:00
shell.nix remove VerticalArrangerGrid/Cursor 2024-10-18 16:03:03 +03: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.

hmu on mastodon @unspeaker@mastodon.social or matrix @unspeaker:matrix.org

Screenshot

this codebase produces the following binaries:

  • tek_sequencer is a single-track, multi-pattern MIDI sequencer with properly tempo-synced pattern switch
  • tek_groovebox connects the sequencer to a sampler, so that you can sample while you sequence
  • tek_arranger is a multi-track sequencer based on a familiar clip launching UI
  • tek_transport is a JACK transport controller
  • tek_sampler is a MIDI-controlled sampler
  • tek_plugin is an audio plugin host.
  • tek_channel is a standalone channel strip
  • tek_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)