import cue points & beat grids from Rekordbox library

Bug #1476290 reported by Be
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Mixxx
Confirmed
Wishlist
Unassigned

Bug Description

Rekordbox is the software used to prepare music for Pioneer CDJs. It would be helpful for CDJ users to import their cue points and beat grids into Mixxx's library. A feature that Rekordbox has that Mixxx does not support yet is color coding cue points. See Bug #1367162

Be (be.ing)
description: updated
description: updated
Revision history for this message
Daniel Schürmann (daschuer) wrote :

do you have any hints what we have to do to achieve this?

Changed in mixxx:
status: New → Confirmed
importance: Undecided → Wishlist
Revision history for this message
Be (be.ing) wrote :

I have started a wiki page for documenting RekordBox's cue storage format: http://mixxx.org/wiki/doku.php/rekordbox_cue_storage_format

hile said on IRC that he wrote a script that read RekordBox's cue points but that was a long time ago and it might not work anymore. He said it uses XML.

Revision history for this message
naught101 (naught101) wrote :

It would also be super useful to be able to export folders from Mixxx to a USB in Pioneer's format. That way the rekordbox software would not be required to analyse tracks before taking them to a club with Pioneer CDJs (which are pretty ubiquitous). Mixxx could be used directly to create folders and playlists.

This would be VERY useful for those of us on linux, where rekordbox isn't available.

Revision history for this message
naught101 (naught101) wrote :

Also, Be, that xml file linked from that wiki is gone. Do you have it saved anywhere?

Revision history for this message
Jim Siler (j.siler) wrote :

I am sorry to jump in so late, but was just looking for this very ability. I have been working with the rekordbox.xml file for some time. In Rekordbox, editing the file allows on to finely tweak beatgrids, change time signatures, work with music that does quirky things, rhythmically; I use a lot of Latin tracks, mostly cumbia, that is old school and often drops or adds a couple of beats.

Pioneer documents the use of the xml file pretty well here:
https://rekordbox.com/en/support/developer.php
The spec for the xml format is here:
http://www.prodjnet.com/rekordbox/support/pdf/xml_format_list.pdf

I will post some samples as soon as I get a chance.

I'm currently working on a primitive editor for the xml file which will allow one to do some things that are not possible to do directly in Rekordbox:
1 -- Change the time signature at any point. This is useful for non 4/4 tracks as well as for beat stuffing.
2 -- Move an individual beat marker without affecting surrounding ones.
3 -- Set a start and end point to define the region that may be altered by cascading or global changes (eg., shifting the beatgrid, changing the bpm at one beat mark, moving an individual beat mark without limiting the change to that mark, as in 2, above.

My frustration with Rekordbox (the only application I've found that will allow me to make the changes I need to make, albeit with great difficulty) led me back to Mixxx, and I am playing with it using a Pioneer DDJ-SX2 and Wego4. I'd love to figure out how to use it with real turntables and a DJM-Nexus mixer. I'd love to talk to any developers interested in pursuing importing the rekordbox.xml file into Mixxx, or anyone thinking about modifying it for use in Rekordbox.

Thanks,

Jim

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

Background: I'm working on a standalone service with a much more sophisticated domain model than currently used by Mixxx. Exporting tracks from Mixxx (including cue points and loops) is already implemented for testing purposes. As a consequence I'm neither interested in extending the existing Mixxx database schema nor to work on any integration tasks other than connecting Mixxx with aoide.

The OpenAPI spec should give you an impression of the requests and the underlying domain model. I've just renamed "TrackMarker" to "PositionMarker" recently as a response to your comment ;)
https://gitlab.com/uklotzde/aoide-rs/blob/development/resources/openapi.yaml

Most of the track metadata in the rekordbox XML file should be covered with slight variations. Currently only a single tempo is stored in aoide. I will extend this to support multiple tempo markers instead. The approach used by rekordbox is simple and straightforward, worth adopting.

Support for playlists is out of scope right now. I favor prepared queries (~ virtual/dynamic crates) instead. Prepared queries and their metadata can be stored as JSON in local files or external databases. Please also see the corresponding topic on Zulip:
https://mixxx.zulipchat.com/#narrow/stream/109171-development/topic/aoide.20Music.20Library

PS: A recent DJ TechTools article was the initiator to continue working towards this long term goal again.
https://djtechtools.com/2019/03/11/5-futuristic-dj-software-features-that-will-soon-be-commonplace/
"Share Libraries + Track Data Between Every Software"

Revision history for this message
Owen Williams (ywwg) wrote :

Slightly Related: I implemented the "Export Track Files" feature in Mixxx (right click on a crate) as a way to get music files onto a USB for playing on something like a CDJ. I think it would be really cool to extend this feature to also include creation of a rekordbox library file and auto-transcoding of incompatible filetypes.

So I think the eventual goal of two-way syncing between the platforms would be really nice.

Revision history for this message
Jim Siler (j.siler) wrote :

@uklotzde Sorry to react so slowly, especially seeing how quickly you responded to me. I just started looking at your OpenAPI spec for aoide, and the other links you shared. Looks interesting, but at this point I haven't much of an idea what it is. Do you have a project summary somewhere that I can view?

I agree that Rekordbox's _internal_ approach is simple and sensible. And there lies my frustration. It leaves them so close to a product that I can use that I can almost taste it. But they fall short on implementation. Three very simple features would vastly improve the product vastly for international and other music which uses real musicians to set the pace rather than an 808 drum machine.

1 -- Allow an individual beat marker to be moved. It is horribly frustrating to have spent a long time bet marking a track to find that an early and critical marker is a bit off, and that changing it will screw up the entire track forward of the change.

2 -- Permit editing a range of the track, locking the rest. Currently Rekordbox allows users to set a point at and beyond which modifications can be made, locking everything prior. This change would require the ability to designate an end point forward of the start point at and beyond which the beat grid is locked. (Strictly speaking 1, above is a special instance of this, but it really would help to be able to use a "shorthand" of this feature on a single marker.

3 -- Apply a different time signature and/or explicit beat (eg., 2 for the second beat of a 4/4 measure) at a given marker. This would propagate forward, stopping at the end mark of the edit region

All of these can be achieved by manually editing the rekordbox.xml file and then importing the collection from it. Rekordbox supports these edits, including respecting arbitrary time signatures other than 4/4. It is so frustrating to know that a relatively low effort level set of changes that are completely consistent with the Rekordbox architecture should be missing. Someone clearly envisioned them when specifying the xml format, and someone implemented the capabilities in the underlying engine.

A couple other potentially useful features would be:

1 -- The ability to tag a key change. At the risk of annoying the true DJs out there, this could help support auto-mixing.
2 -- Implementing named sections in the XML, as Rekordbox now does internally. Useful for both manual and auto-mixing.
3 -- The incorporation of lighting and other cue points in the XML.

These are the frustrations that lead me Mixxx. At least Mixxx gives the (possibly illusory) possibility that I can implement the features I want instead of pissing and moaning that no one else does.

Jim

Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/8163

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related blueprints

Remote bug watches

Bug watches keep track of this bug in other bug trackers.