Rekordbox X32



Do you rock your gigs armed only with your cans and a Rekordbox prepared USB flash drive? Ever been tempted to play your carefully curated tracks on something other than a CDJ or Rekordbox, on something that is free and open-source? We have news for you!

For equipment supporting rekordbox dj, the MIDI setting will be reset back to the factory default. If the equipment does not support rekordbox dj, the MIDI setting will be unset. 3 TAB to switch MIDI setting item list Click a tab to display a list of MIDI setting items for the function of the tab name. Behringer x32 Effects Review If you've been mixing with analog consoles for a long time, the idea of switching to an all-digital format might seem kind of frightening, but the Behringer X32 Digital Mixing Console makes the transition from analog to digital an easy one. The X32 PRODUCER is your mind-to-sound interface the intersection of creativity and production. The X32 PRODUCER Channel Strip puts the most important channel processing parameters into one section. The X32 PRODUCER the ideal choice for handling audio nowand as your needs grow. Features: 40-input channel, 25-bus rack-mountable digital mixing. X32 COMPACT TP デジタルミキサー ケースバンドル. DDJ-1000 rekordbox dj 専用4ch PCDJ【厳選】ノベルティ3点付属.

Mixxx 2.3 will support reading the following from Rekordbox prepared removable devices on all of Mixxx's supported platforms:

  • Folders
  • Playlists
  • Beatgrids
  • Hotcues
  • Memory cues
  • Loops

You can use this new feature now in Mixxx 2.3 beta. This includes importing the key and BPM analyzed by Rekordbox, and comments and colors for tracks, cues and loops. We have to be clear however: this feature only reads Rekordbox prepared removable devices, such as USB flash drives or external hard drives. It will not read your locally stored Rekordbox collection if you also have Rekordbox installed. The main Rekordbox database (both for Rekordbox 5 and Rekordbox 6) use completely different formats from the USB drives, so reading those databases would be a whole other project.

Rekordbox

Importing from Rekordbox to Mixxx

After you have exported music to a USB drive in Rekordbox, simply plug it in while Mixxx is running. Click on Rekordbox in the library, and all USB drives prepared with Rekordbox will be visible (attach as many as you like!). Then click on the desired removable device, and all your folders and playlists that you have so tirelessly prepared will be revealed for you to play from.

Some notes to keep in mind on how Rekordbox hotcues, memory cues, and loops are imported: Mixxx currently has one main cue point, one loop, and 38 hotcues. As such, all Rekordbox hotcues are mapped to Mixxx hotcues as expected, the first chronological Rekordbox memory cue is mapped to the Mixxx main cue, and the first chronological Rekordbox loop mapped to the Mixxx loop. All loops (including the first loop), and all subsequent Rekordbox memory cues are appended as Mixxx hotcues following the previously imported Rekordbox hotcues. A little confusing? Perhaps, but hopefully it will all make sense when you give it a whirl. Rest assured the hotcue and memory cue colors you assigned in Rekordbox are also imported, assisting in distinguishing between them. Also note that whilst the additional imported Rekordbox loops only appear in Mixxx 2.3 as hotcues, their loop details are preserved, ready for the multiple loop feature proposed for Mixxx 2.4!

Also note that as with the Serato library feature{# TODO: Add link to serato blogpost #}, we have tried our best to mitigate against certain edge cases of audio files encoded in lossy formats (MP3 and AAC/MP4), where different software's decoders can interpret conflicting timing information, leading to shifted cue points and beatgrids. We hope these are all correct, but some cases may be milliseconds off, and if you find any of these, please let us know on Zulip.

We probably didn't get every case perfect, so we have added some buttons by the beatgrid editing buttons to shift all cue points in a track by 10 ms (left click) or 1 ms (right click) so you can correct the timing yourself. This only shifts cue points, not the beatgrid (because the same problem happens with Serato and Mixxx does not yet import the beatgrid from Serato). If you want to shift the beatgrid too, you can shift the cue points, then go to a cue point and press the beatgrid shift button.

Can I prepare a Rekordbox removable device from Mixxx to use in a CDJ?

Sadly no, however this would be super cool! If you are so inclined to look at how to implement this and contribute back to Mixxx, it would be most welcome. A great to place to start would be looking into Kaitai Struct serialization which is a prerequisite for writing the PDB file format.

Shoutouts

As is often the case in open-source, the development of this new functionality was not possible without input from others. The new Mixxx Rekordbox removable device library feature builds upon the hard work already completed by Deep Symmetry for the Crate Digger library and Pedro Estrela'sresearch about MP3 timing shifts for DJ Data Converter. Kudos and keep up the great work!

Future work: CDJs as Mixxx controllers

On a related note, we have started reverse engineering the HID protocol for the Pioneer CDJ 2000 NXS2. In future versions of Mixxx this would allow you to plug your laptop using Mixxx into CDJs via a USB cable and use your Mixxx library with the CDJs without needing Rekordbox at all. With the release of Rekordbox 6.0, this feature is now restricted in Rekordbox to customers paying a subscription fee, but Mixxx is free and unlike Rekordbox, Mixxx runs on Linux. You could even add another controller to a CDJ setup to control other Mixxx features such as an Allen & Heath Xone K2 for full control of Mixxx's effects while using CDJs!

We have documented what we have learned about the protocol so far but there is still more to reverse engineer. After that, it will be more work to write a Mixxx HID controller mapping. If you have a CDJ 2000 NXS 2 or other CDJ model and want to get involved in this reverse engineering effort, introduce yourself on our Zulip chat and let us know how you can help.

Written by: Christiaan Maks @ 4/18/2020

Hey guys,

So since the new Rekordbox 6 launched, I've been scrambling to support it for rekordcloud. At first, it seemed that it was not possible since they removed the XML export option and the internal database that Rekordbox uses has been encrypted for a long time. Luckily, I've been able to figure things out and rekordcloud now fully supports Rekordbox 6. 🎉

But this article isn't about that. With Rekordbox 6 a lot of interesting new developments have happened under the hood that I'd like to share with everyone here. I'll go over the new database, the Rekordbox Agent and some other thoughts.

Few things first:

My main operating system is Windows, so all file paths in this article will be for Windows.

%AppData% is a Windows file path shortcut for C:UsersusernameAppData

New Database

Rekordbox 5 used a .EDB file to store the database at %AppData%RoamingPioneerrekordboxdatafile.edb. This file appears to be a DeviceSQL database and Pioneer has not made any information about it available. Luckily they allowed us to export our data as an XML file so accessing the database was never much of a priority.

Now with Rekordbox 6, I'm sure you've noticed that it took a while to convert your library from Rekordbox 5 to 6. This is because they've completely changed the database from DeviceSQL to SQLite. The new database now resides at %AppData%RoamingPioneerrekordboxmaster.db. This is an SQLite 3 database encrypted with SQLCipher 4. A bit more about the security below.

My educated guess is that DeviceSQL was too old for them to keep using adequately, especially with the Rekordbox Agent (more below). This was a good opportunity for them to get rid of some legacy baggage. SQLite is a file based database (it doesn't require a server) and one of the most common databases used. Probably the best choice for Rekordbox at this point.

Security

So, the new SQLite database is encrypted which means you can't just use it without the encryption key. Pioneer did this because they prefer that no one outside of Pioneer touches it (there is a forum post by Pulse but I can't find it right now). This is certainly understandable, but the data inside the database is yours so there should definitely be a way to get to it.

Rekordbox X32

Since your data is stored and used locally, we already know that the key must (at some point) be present on our machine. Usually it's hidden in an executable file (possibly obfuscated, this means the key is garbled on purpose so it's hard to use without understanding the code around it). Knowing the key must be local somewhere, gives good hope that you can find it. Although sometimes this can be really hard.

You're probably wondering what the encryption key is. I'm not sure it's wise for me to just post it here. I'm not sure how upset Pioneer would be with me so I prefer not to. But if you read this article thoroughly and poke around in the source code, I'm sure you'll find it.

I thought the key might be license or machine dependent, but it appears that all databases are encrypted with the same key.

Rekordbox Agent

The other real interesting addition is the Rekordbox Agent. This looks like what they're using the achieve the new cloud sync feature. It's a completely separate program from Rekordbox 6 and it launches when you launch Rekordbox 6. Even if you don't have cloud sync, it still launches.

Rekordbox Xdj-rr

The Rekordbox Agent is an Electron app. [Note: removed some detailed reverse engineering instructions here.] After looking inside the source, the app appears to run the Express web framework for Node.js. We can combine this information with what we see in the Rekordbox Agent log file at %AppData%RoamingPioneerrekordboxAgentlog.log. It contains lines like these:

Rekordbox Agent launches an Express instance so it can listen to incoming events. By default it uses port 30001. You appear to be able change this in %AppData%RoamingPioneerrekordbox6rekordbox3.settings by changing the CloudAgentPortNumber key value.

Rekordbox 32

There are lots of routes here and I haven't explored all of them yet, but it's fairly safe to say that the Rekordbox Agent is in charge of up- and downloading your tracks and database. There are references in the source code to copying files (eg controllers/file_copy_worker.js looks like a multi-threaded worker). The source code also contains the database model for every table (in the models folder).

This brings us to the reason of the SQLite database. The Rekordbox Agent needs database access and is written in Electron (which uses Node.js). But since DeviceSQL is an old and not well supported database, they had to do a switch. There doesn't appear to be any package on NPM for DeviceSQL so supprting it in Javascript could have been a time sink. Switching was probably the cheaper, faster and more future-proof choice.

Other interesting things I noticed in the source code:

  • Looks like your cloud sync backups go to Amazon AWS S3. More specifically (in my case), the rb-cloud-data-eu bucket in region eu-west-1. I'm in the EU so it might use multiple regions, depending on your location. But since I see the eu-west-1 reference more often, I think they only use one location. You can actually see this yourself in the Rekordbox Agent log file.
  • There are references to Google Drive and OneDrive together with Dropbox, so they may support that in the future. This is paired with something called rekordbox cloud (hopefully not to be confused with rekordcloud in the future). Maybe they are just using Dropbox now as a quick fix (and let you pay for it) and later they might include their own storage solution?
  • There is a reference to a Spotify file type. Maybe this is coming in the future? Take this with a grain of salt though, it was one small reference that did not occur elsewhere.

Extracting Your Data

The XML used to contain (almost) all our data, with a few notable exceptions such as MyTags. Now that this is no longer an option, we'll have to do it ourselves. Luckily, the SQLite database is clearly structured so getting our data out of there is no problem. I'm not going into details here, because it's really not very interesting how the database is structured.

There is one problem here though. The beatgrids are not found in the database. They appear to only be located in the ANLZ0000.DAT files. These are binary files that contain the exact beat locations (and more information such as cue points, waveform and more). These files are found at (for example) %AppData%RoamingPioneerrekordboxsharePIONEERUSBANLZ00cfc4d7-802f-430d-a845-0bd9a87cb09c. Looks familiar? These are also on your USB stick used by Pioneer CDJs. These files contain your pre-calculated waveforms, cue points, beatgrids and any other information the CDJs need.

The database points at the right .DAT file per track so finding out which file has the right beatgrid is easy. Getting them out of the .DAT file is a bit harder, but thankfully has been thoroughly researched and explained here. This certainly saved me a lot of time!

Writing Data

Rekordbox 6 can still import XML files. Honestly, I wonder why since the move to remove XML export is a step closer to a walled garden approach. But since you can still import XML, I've decided to use that method (for now) to import your data from rekordcloud back into Rekordbox. It is definitely possible to write data directly to the SQLite database, but since I don't have any documentation about it, it's safer not to do this yet. There might be unforeseen ramifications that could cause data loss.

Possibilities

One pain point of the XML export was always that it did not include MyTags. With access to the Rekordbox database, we can read now (and write) MyTags. This opens up many new possibilities in managing your MyTags. Thoughts about this? Let me know!

Maybe there are novel ways to use the full information of the database that wasn't possible earlier with the XML export. Discuss below! :)

Legal

Preface: I'm not a lawyer or legal expert by any means so take everything I say with a grain of salt.

Rekordbox encrypts the database that contains your own data. This is unlike any of the competitors. Traktor and VirtualDJ both have XML files that you can look into with any text editor. Serato saves most data into ID3 tags but can still be viewed easily with a tool like kid3. Until now this was no big deal since the XML export provided most data.

If you're in the EU, you fall under the GDPR. Under Article 15 of the GDPR, it is stated that you have rights to access your own data. Pioneer must provide a way to do this. The XML export was a suitable method but no longer exists. There is no automatic way to provide access to your own data anymore. We'll see where this goes but I don't think they have a choice to either bring XML export back or open up the new database.

If you're in the US (or elsewhere): I don't think there are any applicable privacy laws here. Convince your representatives to take privacy more seriously.

Edit: most likely this does not fall under the GDPR since it is not 'personal data' (see definition in Article 4.1).

Rekordbox 32

It could be different

In case Pioneer reads this: do the right thing and open up Rekordbox.

Rekordbox x32 proRekordbox 32

Bringing back the XML export is an option but if Pioneer wants to do it right:

  • Remove the database encryption
  • Document the database
  • Support third party developers

An open platform leads to innovation. Closing it up will cause Rekordbox to stagnate. Opening it up can lead to a whole ecosystem around Rekordbox with limitless possibilities and integrations.

Thoughts or corrections?

If you have any thoughts, or notice a mistake, let me know below.

Rekordbox Xml

Follow rekordcloud

Rekordbox X32 Download

Follow rekordcloud