mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 11:46:41 +01:00
90 lines
2.9 KiB
Markdown
90 lines
2.9 KiB
Markdown
# 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).
|
|
|
|
hmu on [**mastodon** `@unspeaker@mastodon.social`](https://mastodon.social/@unspeaker)
|
|
or [**matrix** `@unspeaker:matrix.org`](https://matrix.to/#/@unspeaker:matrix.org)
|
|
|
|

|
|
|
|
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](https://codeberg.org/unspeaker/tek) is available as a package in the AUR.
|
|
you can install it using an AUR helper (e.g. `paru`):
|
|
|
|
```sh
|
|
paru -S tek
|
|
```
|
|
|
|
### downloads
|
|
|
|
see the [releases page](https://codeberg.org/unspeaker/tek/releases).
|
|
|
|
### 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.:
|
|
|
|
```sh
|
|
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](https://mastodon.social/@unspeaker)![^0]
|
|
>
|
|
> Love,
|
|
> 🤫
|
|
> (a rogue knowledge worker in a cyberpunk dystopia)
|