Skip to content

baken expressport on Linux (Ubuntu 24.04) - no settings and analyzed files from rekordbox #145

Description

@sairutra

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.

Activity

  1. M-Igashi commented on Sep 22, 2026

    @M-Igashi
    Owner

    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: expressport needs 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.pdb could be written from it.
    • Not from the XML: the waveforms. baken never generates analysis files, it copies rekordbox's own .DAT / .EXT / .2EX out 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-dir takes any directory holding the four files, and every stick rekordbox has ever exported carries them in PIONEER/. baken checks 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-dir at.

    So your VM plan is the right call

    It is what I would do, and the order you already have is right: baken cdjsafe first, then rekordbox. Two things worth knowing when you get there:

    1. 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.
    2. Once rekordbox in the VM has analysed everything, you can write the stick from inside the VM with baken expressport instead 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 .DAT and .EXT ourselves: 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 open baken to Traktor and Mixxx libraries in general, which is #72.

    I am not going to promise it soon. expressport has 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.

  2. M-Igashi commented on Sep 22, 2026

    @M-Igashi
    Owner

    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.

  3. M-Igashi commented on Sep 22, 2026

    @M-Igashi
    Owner

    Still some blockers for expressport production phase, but good progress for CLI side.

  4. M-Igashi commented on Sep 22, 2026

    @M-Igashi
    Owner

    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.xml from mixxx2rekordbox and no rekordbox anywhere:

    baken expressport collection.xml --device /media/$USER/MYUSB --playlist "Your playlist" --generate-analysis --settings-dir /path/to/PIONEER
    
    • --generate-analysis computes 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-dir is still required: the four MYSETTING*.DAT / DJMMYSETTING.DAT / DEVSETTING.DAT files cannot be derived from anything, and the PIONEER folder of any stick rekordbox once exported has a valid set. That part of the answer above has not changed.
    • Keep the baken cdjsafe step first if your players are pre-NXS2; --cdjsafe does 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.

  5. sairutra commented on Sep 22, 2026

    @sairutra
    ContributorAuthor

    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!

  6. M-Igashi commented on Sep 22, 2026

    @M-Igashi
    Owner

    @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 baken also 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-run first: it lists what would be written and confirms it found the settings. Then the same line without it. Add --cdjsafe if the club's players are pre-NXS2 (CDJ-2000NXS, 900NXS or older), which needs ffmpeg installed.

    • --settings-dir wants a folder holding MYSETTING.DAT, MYSETTING2.DAT, DJMMYSETTING.DAT and DEVSETTING.DAT. Any USB stick that rekordbox once exported has them in its PIONEER folder; 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, any ANLZ0001.* file under PIONEER/USBANLZ, and PIONEER/rekordbox/RBFLTR.DAT from it afterwards.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestquestionFurther information is requested

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions