# tek [](https://nogithub.codeberg.page) a music making program for [24-bit unicode terminals](https://sw.kovidgoyal.net/kitty/). written in [rust](https://www.rust-lang.org/) with [ratatui](https://ratatui.rs/) on [crossterm](https://docs.rs/crossterm/latest/crossterm/) for [jack](https://jackaudio.org/) and [pipewire](https://www.pipewire.org/). **tek** is available as [source](https://codeberg.org/unspeaker/tek#building-from-source), [statically linked binaries](https://codeberg.org/unspeaker/tek/releases), and on the [aur](https://codeberg.org/unspeaker/tek#arch-linux). author is reachable via [**mastodon** `@unspeaker@mastodon.social`](https://mastodon.social/@unspeaker) or [**matrix** `@unspeaker:matrix.org`](https://matrix.to/#/@unspeaker:matrix.org) | | | |-|-| || ## usage * **requirements:** linux; jack or pipewire; 24-bit terminal (i use `kitty`) * **recommended:** midi controller; samples in wav format; lv2 plugins. ## keymaps * Arranger: * [x] `arrows/wasd`: navigate * [x] `tab`: enter editor * [x] `q`: enqueue clip * [x] space: play/pause * Editor: * [x] `arrows/wasd`: navigate * [x] `,` / `.`: change note length * [x] `enter`: write note * [x] `-` / `=`: zoom midi editor * [ ] `z`: zoom lock/unlock * [ ] `del`: delete * Global: * [x] esc: options menu * [x] f1: help/command list * [ ] f2: rename * [ ] f6: save * [ ] f9: load ## installation ### binary download you can download [tek 0.2.0 "almost static"](https://codeberg.org/unspeaker/tek/releases/tag/0.2.0) from codeberg releases. this standalone binary release, should work on any glibc-based system. ### from distro repositories [](https://repology.org/project/tek/versions) #### arch linux [tek 0.2.0-rc7](https://aur.archlinux.org/packages/tek) is available as a package in the AUR. you can install it using your preferred AUR helper (e.g. `paru`): ```sh 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.