🦀 a colorful music making program for your linux terminal 🦀
Find a file
2024-12-30 23:08:49 +01:00
.forgejo/workflows fix ci; fix deps breakage from upgrade 2024-12-30 23:08:49 +01:00
.old flatten workspace into 1 crate 2024-12-29 00:10:30 +01:00
bin big flat pt.13: fixed warnings, let's see what it has in store 2024-12-30 21:52:20 +01:00
engine fix ci; fix deps breakage from upgrade 2024-12-30 23:08:49 +01:00
examples wip: big flat pt.8: wh -> xy 2024-12-30 20:32:55 +01:00
layout fix ci; fix deps breakage from upgrade 2024-12-30 23:08:49 +01:00
rust-jack@d09788959f implement sync_lead and sync_follow flags for groovebox 2024-12-29 18:39:20 +01:00
src fix ci; fix deps breakage from upgrade 2024-12-30 23:08:49 +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 don't autoconnect groovebox to midi out 2024-12-28 21:55:30 +01:00
LICENSE update license 2024-10-15 09:16:48 +03:00
README.md fix ci; fix deps breakage from upgrade 2024-12-30 23:08:49 +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.

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)