🦀 a colorful music making program for your linux terminal 🦀
Find a file
2024-09-06 21:52:23 +03:00
.forgejo/workflows add .forgejo/ with actions 2024-08-18 18:04:30 +03:00
crates wip: generic layout! 2024-09-06 21:52:23 +03:00
.gitignore build suil with symbols; pass features correctly 2024-07-24 16:33:44 +03:00
.gitmodules link to suil from nixpkgs 2024-07-24 14:50:44 +03:00
.scratch.rs fix reexport mess + document modules 2024-07-12 20:11:48 +03:00
Cargo.lock wip: 21 errors! 2024-09-05 17:38:32 +03:00
Cargo.toml refactor(transport): make widgets focusable 2024-09-01 20:29:15 +03:00
Justfile consolidate more; make help and setup into devices 2024-07-14 00:03:58 +03:00
LICENSE-AGPL-3.0 docs: add license 2024-07-18 13:17:22 +03:00
README.md convert to workspace, add suil bindings crate 2024-07-24 13:21:11 +03:00
shell.nix add libglvnd and fix helm path 2024-07-24 19:14:43 +03:00

tek

Tek is a MIDI sequencer, sampler, and plugin host for the Linux terminal.

See demos/project.edn for the initial contents of the session.

Requirements

  • Linux
  • Rust toolchain
  • JACK or Pipewire
  • MIDI controller
  • Samples at ~/Lab/Music/pak
  • Odin2 LV2 ~/.lv2/Odin2.lv2

Overview

Tek is inspired by "clip launching" workflows as exemplified by Ableton Live, Bitwig Studio, Ardour, and probably others. The main view consists of three sections:

  • The arranger view corresponds to Ableton's Session and Arrangement views. It allows you to put together a musical composition as a sequence of phrases, playing simultaneously across multiple tracks.
  • The sequencer view allows you to edit phrases, which consist of MIDI events.
  • The chain view allows you to add devices to each track. Devices determine how a given phrase will sound. Currently, there are two devices implemented: sampler and plugin.

Note

Use Tab to switch focus between views. Use Enter to exclusively focus the highlighted view, and Esc to unfocus it. When a view is focused, use the Arrow Keys and Enter to navigate. Use ; (semicolon) to open the command palette, which will list the remaining keybindings.

TODO:

  • Control:
    • Customize key map
    • MIDI map
    • Scriptable
    • Command panel
    • Search panel
  • Save project:
    • Preserve EDN layout
  • Samples:
    • Sample browser
    • Resample
    • Repitch
    • Sample editor
    • Envelope
    • Stretch sample to BPM
    • Set BPM from sample
    • Map MIDI note to sample
    • Multisample
  • Sequencer/Arranger:
    • Fix next/prev clip
    • Move clip/track/scene
    • Set track gain
    • Play from one clip, record into another
    • Offbeat of next clip starts during end of first
    • Pattern chain
    • Actually sync
  • Chain:
    • Add device
    • View and connect device ports in chain view
    • Open LV2 GUI
    • Pin favorite FX parameters with *
    • Parallel monitoring chain
    • Support CLAP plugins
    • Support VST2
    • Support VST3
  • Transport:
    • Focus transport to set BPM/sync/quant with .,
    • Double/halve BPM with xX
  • Rendering:
    • LineBuffer for scroll?
    • Buffered rendering with e.g. needs_update (only needed if the release build becomes slow)
      • Buffered sequencer
      • Buffered chain view