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.1%
  • Nix 0.7%
  • Shell 0.2%
2024年08月22日 16:59:29 +02:00
assets Update architecture.svg 2024年08月22日 16:59:29 +02:00
crates Fix double/halving of beat size 2024年08月19日 01:41:01 +02:00
learning-resources Here we go 2022年03月15日 23:58:54 -04:00
scripts Add bump-version.sh script 2024年02月15日 02:29:46 +01:00
.envrc Upgrade lofty 2024年05月17日 03:31:28 +02:00
.gitignore Add .direnv to gitignore 2024年05月31日 19:59:36 +02:00
Cargo.lock Update Cargo.lock 2024年08月18日 04:05:29 +02:00
Cargo.toml Remove tracing-test for test-log in libplayer 2024年06月28日 03:43:28 +02:00
CHANGELOG.md Update CHANGELOG 2024年07月23日 20:13:32 +02:00
default.nix Upgrade lofty 2024年05月17日 03:31:28 +02:00
flake.lock Upgrade lofty 2024年05月17日 03:31:28 +02:00
flake.nix Add gui dependencies to flake.nix 2024年05月31日 19:59:14 +02:00
README.md Add keybindings to readme 2024年08月22日 14:35:22 +00:00
rust-toolchain.toml Upgrade lofty 2024年05月17日 03:31:28 +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

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

  • Arrow Keys => navigate library/file browser
  • Enter => Load track to current Deck
  • F1-F4 => Switch between Deck 1-4
  • q => Cue
  • w => Play
  • a,s,d,f => Nuding
  • y,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
  • End => Exit program

Architecture