1
0
Fork
You've already forked librecdj
0
forked from OpenDJLab/LibreDJ
An experimental DJ program with 4 decks that currently runs in the terminal (only kitty/wezterm)
  • Rust 99.5%
  • Nix 0.4%
  • Shell 0.1%
2024年11月06日 17:26:34 +01:00
assets Screen Design: Move the playhead indicator more to the left, use more space for library 2024年10月22日 15:52:18 +02:00
crates have a little mappy bit 2024年11月06日 17:26:34 +01:00
learning-resources Here we go 2022年03月15日 23:58:54 -04:00
resources/keyboard_bindings Add de_DE.ron file 2024年10月24日 05:19:39 +02:00
scripts Update bump-version script 2024年09月27日 22:34:06 +02:00
.envrc Upgrade lofty 2024年05月17日 03:31:28 +02:00
.gitignore Add nix package building 2024年09月27日 22:32:17 +02:00
Cargo.lock have a little mappy bit 2024年11月06日 17:26:34 +01:00
Cargo.toml Implement error reporting for ron parsing errors 2024年10月16日 21:55:37 +02:00
CHANGELOG.md v0.3.0 2024年10月17日 14:47:45 +02:00
default.nix Add nix package building 2024年09月27日 22:32:17 +02:00
flake.lock have a little mappy bit 2024年11月06日 17:26:34 +01:00
flake.nix - Load keyboard mapping from ~/.config/librecdj/keyboard_mapping.ron 2024年10月09日 04:11:47 +02:00
README.md Update README about keybindings 2024年10月17日 12:44:33 +00:00
rust-toolchain.toml - Load keyboard mapping from ~/.config/librecdj/keyboard_mapping.ron 2024年10月09日 04:11:47 +02:00
shell.nix Add nix package building 2024年09月27日 22:32:17 +02:00
TODO.md Remove bugs from todo.md 2024年07月23日 18:54:45 +00:00



LibreCDJ

An experimental playground to develop a 4 Deck DJ Software for Linux.

Screenshot of the gui
Current screen design for future gui version:
Screenshot of the gui

Goals

  • 4 Decks
  • Good beat jumping/looping
  • Good performance
  • Low latency
  • As best as possible playback/resampling
  • Minimal & clean user interface
  • Good library management
  • Completely usable with Keyboard

Non-Goals

  • No mixing/eq/effects. Use an external mixer or something like equis
  • Session management. Use qpwgraph for this
  • Radio Broadcasting
  • Stem seperation (I'm up to support stem files though)
  • Rekordbox/Serato export/import
    • If there's a good crate, maybe though

Supported Hardware

  • Denon SC2000

How to run

Make sure you have pipewire/jack installed and a rust compiler. Also i recommend using kitty as a terminal (or any terminal supporting key release events).

- git clone the repo
- PIPEWIRE_QUANTUM=256 PLAYLISTS=/path/to/playlists LIBRARY=/path/to/your/music cargo run --release

Keybindings

  • Esc => Open Menu
  • Arrow Keys => navigate library/file browser/popup
  • Enter => Load track to current Deck
  • F1-F4 => Switch between Deck 1-4
  • q => Cue
  • w => Play
  • a s d f => Nudging
  • z x c v => Adjusting Pitch
  • i o p [ ] => Set loop starting at current playhead
  • I O P { } => Set loop endingt at current playhead
  • n m , . /- => Jump x beats forward
  • N M < > ? => Jump x beats backwards
  • Space => Switch waveform zoom
  • F10 => Debug logs

To quit the program first press Esc, then q.

Customize Keybindings

The Keybindings are almost completely customizable. To do so, copy resources/keybindings/en_US.ron to ~/.config/librecdj/keyboard.ron. You can extend/alter the bindings map. Please have a look at the file and if you have questions feel free to ask.

Architecture