License
You can use, inspect, change and share the code under Apache-2.0. Format spec and schemas: CC BY 4.0. Third-party work is credited below, each license checked against that project's own license file. The repository's NOTICE file at 487fa677d7 still lists some of these licenses wrongly and carries the old project name and owner; it is due to be corrected before the source opens.
Why it matters to a DJ: no lock-in. The code is free to use, change and keep running, even if this project stops. The open-dj library format is published. A tool that implements the format can read it without Open DJ; Open DJ includes a reference reader and writer. Exporting or importing that format is a command-line tool from a source checkout, and the Mac app has no import or export control yet.
Apache License 2.0
Covers the application, the engine and the reference tools. You may use, modify and distribute the code, including commercially, and the license carries an express patent grant from contributors.
When you redistribute it: keep the license and the copyright notices, mark files you changed, and carry the NOTICE file along. It grants no trademark rights and comes with no warranty.
Full text: the canonical copy at apache.org. The repository's own LICENSE file is linked after the public mirror is verified.
Contributions are accepted under the same license; contributors are asked to sign off under the Developer Certificate of Origin (Contributing).
CC BY 4.0
Covers the open-dj format: the spec prose and the JSON schemas in open-dj/spec/ and open-dj/schema/ (open-dj/LICENSE-SPEC.md). Anyone may implement, copy and adapt the format, with attribution.
The format's reference implementation is code, so it is Apache-2.0 like the rest of the repository.
The spec is at v0.2 and expected to change before 1.0.
What it depends on.
A selection of notable third-party pieces, plus the font this site uses, each license checked at its source. Each keeps its own license.
| Project | License | How Open DJ uses it |
|---|---|---|
| pyrekordbox | MIT | The primary access layer for rekordbox 6 and 7: the encrypted master.db, XML, ANLZ analysis files and settings. A runtime dependency that ships in the Mac app's engine. |
| mutagen | GPL-2.0-or-later | Audio tag reading and writing. An optional extra of the Python package, not a default dependency, so that package carries no GPL runtime dependency. The desktop build fails if mutagen ever lands in the app (scripts/build_engine_payload.py, issue #795); a general license scan of every bundled package is still to be built. |
| Beat This! | MIT (code and published weights) | Beat detection. Its package and model weights ship in the Mac app's engine, with the MIT notice beside them. |
| madmom | BSD-2-Clause code; CC BY-NC-SA 4.0 pre-trained models | Beat, onset and key analysis, and an analysis-quality oracle. Installed for analysis; never bundled in the Python package. |
| Anybody (display face on this site) | SIL Open Font License 1.1 | The wordmark and headings. License text |
What it learned from.
Open DJ is built against years of open-source work that documented DJ library formats and vendor protocols long before this project existed. Apart from one rekordbox USB-export parser generated from crate-digger's Kaitai spec (apps/sync/usb/pioneer/_vendor/), which upstream licenses under EPL 2.0 with MPL 2.0 or LGPL 3.0 as secondary licenses, while the vendored file's header still says EPL 1.0, no code from the projects in this table is copied into the repository; their specs and implementations are what the readers, writers and test oracles are checked against.
| Area | Project | License |
|---|---|---|
| rekordbox USB export | Deep-Symmetry/crate-digger | EPL 2.0 (secondary: MPL 2.0 or LGPL 3.0) |
| rekordbox USB export | Holzhaus/rekordcrate | MPL 2.0 |
| Pioneer ProDJ Link | Deep-Symmetry/dysentery | EPL 1.0 |
| Pioneer ProDJ Link | flesniak/python-prodj-link | Apache-2.0 |
| CDJ network protocol | Deep-Symmetry/beat-link | EPL 2.0 |
| Serato crates and tags | Holzhaus/serato-tags | MIT |
| Serato crates and tags | Holzhaus/triseratops | MPL 2.0 |
| Traktor NML | wolkenarchitekt/traktor-nml-utils | GPL-3.0 |
| Engine DJ (Denon) | xsco/libdjinterop | LGPL-3.0 |
| djay Pro library | yapstudios/YapDatabase | BSD |
| Open-source DJ software | mixxxdj/mixxx, the established open-source DJ application | GPL-2.0-or-later |
The full annotated list is docs/prior-art-and-communities.md in the repository.