libdjinterop
is a C++ library that allows access to database formats used to
store information about DJ record libraries.
This library currently supports:
- Engine Library, as used on "Prime"-series DJ equipment.
Documentation can be viewed on GitHub Pages
The library is currently in an early beta stage, and not all features are implemented yet. It currently supports only the Engine Library format.
What is supported:
- Track metadata
- Beat grids
- Hot cues
- Loops
- Waveforms (overview and high-resolution)
- Crates
The library supports the following firmware and application versions:
- SC5000 Firmware from 1.0.3 to 3.4.0.
- Other players (e.g. SC6000/M) may work, but this is currently untested.
- Engine DJ Desktop (aka Engine Prime) from 1.0.1 to 3.4.0.
What is not supported (yet):
- Album art
- Playlists
- Play history
- Engine Library formats associated with other firmware versions
- DJ record libraries in formats other than Engine Prime
The library is not ready for prime-time yet, but if you are willing to read
source code, example applications can be found in the example
directory.
libdjinterop
requires the following compile-time dependencies:
To run unit tests, the following are required:
libdjinterop
uses CMake. Assuming you have the above
dependencies in place, and the build tools, you can issue the following
commands:
$ mkdir cmake_build
$ cd cmake_build
$ cmake ..
$ cmake --build .
$ ctest # To run unit tests
When Nix is installed, then you don't need to manually install any dependencies. In order to drop into a development environment with dependencies available, execute:
$ nix-shell
You can then build libdjinterop
by as described above.
libdjinterop
makes use of a number of software libraries, and is extremely
grateful for:
Interfacing with the Engine Library database format was made a lot easier with the help of MixMasterG from ATGR, who is the author of the Denon Conversion Utility.