Repository navigation
baken expressport on Linux (Ubuntu 24.04) - no settings and analyzed files from rekordbox #145
Description
Activity
Thanks for the detail, that is a good report. The short answer is no, not today, and the reason is a design decision rather than a bug:
expressportneeds rekordbox to have seen the library, on the machine you run it on or on an attached library drive.The stick is built from two sources, and only one of them is
collection.xml:- From the XML: title, artist, BPM, key, colour, rating, playlists, the beat grid and the cues. Your mixxx2rekordbox file covers all of this, and
export.pdbcould be written from it. - Not from the XML: the waveforms.
bakennever generates analysis files, it copies rekordbox's own.DAT/.EXT/.2EXout of the local analysis cache and only rewrites the path, the cue sections and the phrase mask on the way. No rekordbox, no cache, every track skipped. - Also not from the XML: the four My Settings files (
MYSETTING.DAT,MYSETTING2.DAT,DJMMYSETTING.DAT,DEVSETTING.DAT). They are copied verbatim from rekordbox's settings directory, and an export without them resets the player to factory settings, so they are mandatory (expressport: copy CDJ and DJM My Settings onto the stick (mandatory) #127).
On Ubuntu you hit the settings error first, and it will have named a macOS path under
$HOME/Library, which is nonsense on Linux. That part I have just fixed in #146, together with the analysis error, so both now say what is actually required instead of pointing at a directory that cannot exist.What you can borrow, and what you cannot
The settings half is borrowable.
--settings-dirtakes any directory holding the four files, and every stick rekordbox has ever exported carries them inPIONEER/.bakenchecks the header and the CRC16 before copying, so a borrowed set either works or is refused by name. If you have a stick from a club or a friend, that is enough for that half.The analysis half is not borrowable, because those files describe your audio, sample by sample. There is nothing to point
--anlz-dirat.So your VM plan is the right call
It is what I would do, and the order you already have is right:
baken cdjsafefirst, then rekordbox. Two things worth knowing when you get there:- Import the cdjsafe XML, not the original, so rekordbox picks up the MP3s that the old players actually want. Your Mixxx grid and cues come across with the XML import, so rekordbox only has to produce the waveform. Lock a couple of tracks (the padlock) and analyse those first to confirm rekordbox leaves the imported grid alone before you let it loose on the whole library.
- Once rekordbox in the VM has analysed everything, you can write the stick from inside the VM with
baken expressportinstead of rekordbox's exporter (there is a Windows build), since the cache and the settings are now there. It saves the export wait, not the analysis wait, so it is a convenience rather than the point.
The feature you are actually asking for
"Write a stick for a library rekordbox has never seen" is the one real gap left in
expressport, and #115 is where the decision not to do it is written down. Closing it means generating.DATand.EXTourselves: the grid and the cues we already have from the XML, but the preview and scroll waveforms would have to be computed from the audio, and the colour waveform's frequency band encoding is the awkward part. It is also exactly what would openbakento Traktor and Mixxx libraries in general, which is #72.I am not going to promise it soon.
expressporthas not been through its first hardware test yet (#116, still no report from a real player), and generating analysis files that a CDJ is happy with is not something I would ship without a player confirming it.Two things that would help, if you are up for either. If the VM route works, say so here, because "the workaround holds" is worth knowing. And if you end up with a CDJ in front of you at some point, #116 is the test that is blocking everything else, including this.
- From the XML: title, artist, BPM, key, colour, rating, playlists, the beat grid and the cues. Your mixxx2rekordbox file covers all of this, and
- addedquestionFurther information is requestedFurther information is requestedenhancementNew feature or requestNew feature or request
on Sep 22, 2026 - added a commit that references this issue
on Sep 22, 2026 Tracked now: #147, as a sub-issue of #115. It writes down what generating the analysis files would take, what is already in place (the grid and the cues come from the XML and that code exists), and what the open questions are (the colour waveforms, and whether a player accepts a track with no phrase data). It stays blocked behind #116 until a player has read a stick written from copied analysis, so that a failure has one cause and not two.
The error-message and README part of this is merged as #146, with you as co-author. Thanks for the report: the Linux paths it was printing were wrong and nobody had noticed.
Still some blockers for expressport production phase, but good progress for CLI side.
Update: the feature you asked for exists now. #147 is implemented in #148 and ships in the next release after 3.7.0.
On Ubuntu, with a
collection.xmlfrom mixxx2rekordbox and no rekordbox anywhere:baken expressport collection.xml --device /media/$USER/MYUSB --playlist "Your playlist" --generate-analysis --settings-dir /path/to/PIONEER--generate-analysiscomputes the waveforms from the audio for every track that has no rekordbox analysis (all of them, in your case). The beat grid and the cues come from your XML as before. Phrase analysis is left out, because only rekordbox can produce it.--settings-diris still required: the fourMYSETTING*.DAT/DJMMYSETTING.DAT/DEVSETTING.DATfiles cannot be derived from anything, and thePIONEERfolder of any stick rekordbox once exported has a valid set. That part of the answer above has not changed.- Keep the
baken cdjsafestep first if your players are pre-NXS2;--cdjsafedoes it in one go.
Closing this as answered. If you get the stick into a CDJ, please report what the player did in #116, step 2 of its list, because a generated-analysis stick has not been in a player yet and yours would be the first.
Wow thank you for this detailed report! Tomorrow, I have a busy day so probably I won't have time to setup the VM / try these other steps that you mentioned. On friday, I have a gig with CDJ's so I will try to do it before then. I now forgot the exact model we got, but I will also have access to these CDJ's. I will give a detailed report based on all the steps you described and I will also mention which exact model of CDJ's I have access to!
@sairutra Good luck on Friday, and thanks for offering the report. To save you the VM: 3.8.0 is out now with
--generate-analysis, so the whole thing runs on Ubuntu.-
Linux x86_64 binary: https://github.com/M-Igashi/baken/releases/download/v3.8.0/baken-v3.8.0-linux-x86_64.tar.gz (aarch64 is next to it on the release page;
cargo install bakenalso works). -
Command, from your mixxx2rekordbox XML:
baken expressport collection.xml --device /media/$USER/MYUSB --playlist "Your playlist" --generate-analysis --settings-dir /path/to/PIONEER --dry-run--dry-runfirst: it lists what would be written and confirms it found the settings. Then the same line without it. Add--cdjsafeif the club's players are pre-NXS2 (CDJ-2000NXS, 900NXS or older), which needs ffmpeg installed. -
--settings-dirwants a folder holdingMYSETTING.DAT,MYSETTING2.DAT,DJMMYSETTING.DATandDEVSETTING.DAT. Any USB stick that rekordbox once exported has them in itsPIONEERfolder; if you have no such stick, ask any rekordbox user for those four files, they hold nothing personal beyond play mode and fader settings. -
Use a spare stick, not the one you play from, and keep your normal stick with you on Friday.
For the report, #116 has the checklist; yours is step 2 there (a generated-analysis stick), and it would be the first one ever put in a player. The player model and firmware, whether the stick is recognised, whether the waveform shows straight away, and a photo of the screen are the four things that matter most. If the player refuses the stick, please also grab
PIONEER/rekordbox/export.pdb.bak, anyANLZ0001.*file underPIONEER/USBANLZ, andPIONEER/rekordbox/RBFLTR.DATfrom it afterwards.-
I downloaded to pre-build binaries and I am trying to use the "baken expressport" option. I created a rekordbox xml file with this project from my mixxx library. Being on Ubuntu, I don't have access to rekordbox, that why I wanted to check if it would be possible to use this to create a CDJ ready USB. I used baken cdjsafe first succesfully and then tried to use baken expressport. This did not work of course because I don't have the settings file nor the analyzed files directory from rekordbox. Would you know any work around for this if possible? My quick fix is going to probably be running windows in a vm and using the baken cdjsafe xml and import it there to then be exported.