Using Mixxx as preparation software, exporting to USB

General Mixxx discussion.... discuss

Moderator: garth

Using Mixxx as preparation software, exporting to USB

Postby mr_smidge » Fri Sep 08, 2017 3:31 pm

Dear Mixxx community,

I've recently upgraded from my old CDJ-1000s and bought myself a new Denon SC5000 Prime (2nd one to come when I can afford it), as I've finally become fed up of burning and carrying CDs. One reason I chose the SC5000 over, say, the Pioneer CDJ-2000 is because the SC5000 can perform most of the track analysis work on the player itself: this is important for me, as I run Linux and Rekordbox and Engine Prime are not well supported on Linux.

However, I am interesting in seeing whether Mixxx can replace Rekordbox or Engine Prime here insofar as being able to analyse tracks, and then export that to a USB stick in a format supported by professional players. This would allow me to use a more typical workflow, but still run as much free software as possible.

In my case, Engine Prime's library (as written by my Denon SC5000) appears to be a series of SQLite database files. The Engine Library table schema looks fairly straightforward.

I'm not familiar with Rekordbox, but it looks like at least one person has already thought about elements of its format.


Is there any appetite for Mixxx to be able to export its library/crates/etc. to a USB stick?

Thanks in advance,
Adam
mr_smidge
 
Posts: 13
Joined: Fri Sep 08, 2017 3:02 pm

Re: Using Mixxx as preparation software, exporting to USB

Postby Be. » Fri Sep 08, 2017 4:50 pm

This feature could be developed, but it would be a lot of work to get it all working, particularly the waveforms. Mixxx stores the waveform analyses in separate files from the SQLite database. I have no idea how Engine Prime handles that. Even if you figure out where it's stored in Engine Prime's database, you'd have to figure out how to convert the information Mixxx analyzes to that format. BPM and musical key might be more straightforward.
I heard FLAC and I haven't gone back.
Protect your hearing with earplugs!

Hear my mixes
User avatar
Be.
Mixxx Developer
 
Posts: 2422
Joined: Tue Jan 06, 2015 1:00 am
Location: Chicago, USA

Re: Using Mixxx as preparation software, exporting to USB

Postby mr_smidge » Mon Sep 11, 2017 12:24 pm

Hi Be.,

Be. wrote:Even if you figure out where it's stored in Engine Prime's database, you'd have to figure out how to convert the information Mixxx analyzes to that format. BPM and musical key might be more straightforward.


I'm certainly prepared to analyse the Engine Prime format and document it. I'll also be able to test out how well hand-crafting the Engine Prime format works, given that I have a SC5000 player to test it on. If I can share that, there will then be more people who can assess the complexity of converting Mixxx's format to that.

If anyone else thinks this is worthwhile doing, let me know and it'll spur me on :).
mr_smidge
 
Posts: 13
Joined: Fri Sep 08, 2017 3:02 pm

Re: Using Mixxx as preparation software, exporting to USB

Postby Be. » Mon Sep 11, 2017 3:20 pm

Writing to the Mixxx-devel email list would be a good idea. You could document the Engine Prime database format on the Mixxx wiki. Start a new page by going to the URL and editing the page, for example https://mixxx.org/wiki/doku.php/engine_prime_format

Someone else has reverse engineered the Engine Prime DB but used it to make proprietary software they are selling, so they probably wouldn't be willing to help. :(

The SC5000 Prime has a USB-B port on the back but I don't think it is currently used for anything. I suspect Denon is working on implementing MIDI and/or HID control for a future firmware update. If so, it would be cool to map that to Mixxx.
I heard FLAC and I haven't gone back.
Protect your hearing with earplugs!

Hear my mixes
User avatar
Be.
Mixxx Developer
 
Posts: 2422
Joined: Tue Jan 06, 2015 1:00 am
Location: Chicago, USA

Re: Using Mixxx as preparation software, exporting to USB

Postby mr_smidge » Sat Sep 16, 2017 11:34 pm

The Engine Prime database format is not especially complicated, and I've documented most of the schema already. I'll put this up online after tidying it up a little.

However, the really interesting information (such as hot cues, loops, beat grid, and waveform data) is all stored as binary BLOBs in the database. I've only just begun to look at them, but they look to be compressed upon initial glance and I'm trying to work out the format. I'll keep working at it..
mr_smidge
 
Posts: 13
Joined: Fri Sep 08, 2017 3:02 pm

Re: Using Mixxx as preparation software, exporting to USB

Postby mr_smidge » Wed Sep 20, 2017 8:03 pm

An initial draft of the Engine Library format is now up on the Mixxx wiki:
https://mixxx.org/wiki/doku.php/engine_library_format

This is an early version, so I'll keep updating it. The main schema is documented, but the binary BLOBs in the PerformanceData table in p.db are proving elusive. They may even be subject to some form of DRM encryption, which will make the task significantly harder.
mr_smidge
 
Posts: 13
Joined: Fri Sep 08, 2017 3:02 pm

Re: Using Mixxx as preparation software, exporting to USB

Postby mr_smidge » Sat Oct 14, 2017 9:11 pm

Well, it appears that the BLOBs in the PerformanceData table are not encrypted, but merely compressed (which makes sense, given the number of tracks one might want to be carrying out in one's library).

I've managed to decode trackData and quickCues so far. Still working on the rest.

Wiki page updated:
https://mixxx.org/wiki/doku.php/engine_library_format
mr_smidge
 
Posts: 13
Joined: Fri Sep 08, 2017 3:02 pm

Re: Using Mixxx as preparation software, exporting to USB

Postby Be. » Mon Oct 16, 2017 12:37 am

Haha, they are using Qt too! How convenient. Good work with this so far.
I heard FLAC and I haven't gone back.
Protect your hearing with earplugs!

Hear my mixes
User avatar
Be.
Mixxx Developer
 
Posts: 2422
Joined: Tue Jan 06, 2015 1:00 am
Location: Chicago, USA

Re: Using Mixxx as preparation software, exporting to USB

Postby mr_smidge » Sat Oct 21, 2017 5:42 pm

Managed to decode the 'loops' format too, after realising that some of the floating point values are stored with opposite endianness, ugh:
https://mixxx.org/wiki/doku.php/engine_library_format

Making good progress with beatData, and then only the waveforms to go!
mr_smidge
 
Posts: 13
Joined: Fri Sep 08, 2017 3:02 pm

Re: Using Mixxx as preparation software, exporting to USB

Postby mr_smidge » Wed Oct 25, 2017 6:23 pm

Ok, a first attempt at beatData has now been uploaded onto the wiki page (got there eventually!).. In theory, even though waveforms are missing, this might be enough to start with some preliminary export functionality.

I may even consider writing a small library that Mixxx could link against to handle the serialisation etc.

Will keep at it...
mr_smidge
 
Posts: 13
Joined: Fri Sep 08, 2017 3:02 pm

Next

Return to General Discussion

Who is online

Users browsing this forum: No registered users and 1 guest