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%
| assets | Update architecture.svg | |
| crates | Fix double/halving of beat size | |
| learning-resources | Here we go | |
| scripts | Add bump-version.sh script | |
| .envrc | Upgrade lofty | |
| .gitignore | Add .direnv to gitignore | |
| Cargo.lock | Update Cargo.lock | |
| Cargo.toml | Remove tracing-test for test-log in libplayer | |
| CHANGELOG.md | Update CHANGELOG | |
| default.nix | Upgrade lofty | |
| flake.lock | Upgrade lofty | |
| flake.nix | Add gui dependencies to flake.nix | |
| README.md | Add keybindings to readme | |
| rust-toolchain.toml | Upgrade lofty | |
| TODO.md | Remove bugs from todo.md | |
LibreCDJ
An experimental playground to develop a 4 Deck DJ Software for Linux.
Screenshot of the guiGoals
- 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