Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New in 2.3: Add Rekordbox post #88

Merged
Merged
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
9fbda08
Add ehendrikd as author
ehendrikd May 12, 2020
a84b72a
1st draft 2.3 Rekordbox removable device support
ehendrikd May 13, 2020
15f008e
Update pages/news/2020-XX-XX-new-in-2-3-rekordbox-support.html
ehendrikd May 14, 2020
6872934
Update pages/news/2020-XX-XX-new-in-2-3-rekordbox-support.html
ehendrikd May 14, 2020
0010e19
Update pages/news/2020-XX-XX-new-in-2-3-rekordbox-support.html
ehendrikd May 14, 2020
31cdafa
Update pages/news/2020-XX-XX-new-in-2-3-rekordbox-support.html
ehendrikd May 14, 2020
123eccd
Update pages/news/2020-XX-XX-new-in-2-3-rekordbox-support.html
ehendrikd May 14, 2020
4ddc2ac
Update pages/news/2020-XX-XX-new-in-2-3-rekordbox-support.html
ehendrikd May 14, 2020
6e6b599
Address feedback
ehendrikd May 15, 2020
bab9e9b
Update pages/news/2020-XX-XX-new-in-2-3-rekordbox-support.html
ehendrikd May 19, 2020
ac401ac
Update pages/news/2020-XX-XX-new-in-2-3-rekordbox-support.html
ehendrikd May 19, 2020
b645b7b
Update pages/news/2020-XX-XX-new-in-2-3-rekordbox-support.html
ehendrikd May 19, 2020
316d159
Update pages/news/2020-XX-XX-new-in-2-3-rekordbox-support.html
ehendrikd May 19, 2020
7fc358a
Address feedback, add CDJ HID info
ehendrikd May 19, 2020
9efa447
Update pages/news/2020-XX-XX-new-in-2-3-rekordbox-support.html
ehendrikd May 19, 2020
43f7220
Update pages/news/2020-XX-XX-new-in-2-3-rekordbox-support.html
ehendrikd May 19, 2020
a735b80
Update pages/news/2020-XX-XX-new-in-2-3-rekordbox-support.html
ehendrikd May 19, 2020
a49b6a4
Update pages/news/2020-XX-XX-new-in-2-3-rekordbox-support.html
ehendrikd May 19, 2020
60e13a9
Correct number hotcues
ehendrikd May 20, 2020
87f0360
Add screenshots
ehendrikd Jul 13, 2020
7bde9c2
Remove .orig file
ehendrikd Jul 13, 2020
d859a35
Full res screenshots
ehendrikd Jul 13, 2020
65de8c9
Adjust beatgrid screenshot
ehendrikd Jul 13, 2020
e35f365
Update pages/news/2020-XX-XX-new-in-2-3-rekordbox-support.html
ehendrikd Jul 13, 2020
4a5f635
Update pages/news/2020-XX-XX-new-in-2-3-rekordbox-support.html
ehendrikd Jul 13, 2020
25fff55
Update pages/news/2020-XX-XX-new-in-2-3-rekordbox-support.html
ehendrikd Jul 13, 2020
c022490
Update pages/news/2020-XX-XX-new-in-2-3-rekordbox-support.html
ehendrikd Jul 13, 2020
f7e7a89
Update list
ehendrikd Jul 13, 2020
3c3876b
Change HTML images to markdown, update TODO
ehendrikd Jul 13, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions pages/news/2020-XX-XX-new-in-2-3-rekordbox-support.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
title: New in 2.3: Importing tracks and cues from Rekordbox removable devices
author: ehendrikd
date: 2020-07-13 20:00:00

{% extends "post.html" %}

{% block post %}

{% load markup %}
{% filter markdown %}

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!

Mixxx 2.3 now supports reading the following from Rekordbox prepared removable devices on all of Mixxx's supported platforms:
ehendrikd marked this conversation as resolved.
Show resolved Hide resolved

* Folders
* Playlists
* Beatgrids
* Hotcues
* Memory cues
* Loops

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.

## Using the Rekordbox removable device library feature
ehendrikd marked this conversation as resolved.
Show resolved Hide resolved

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 found compatible removable devices will be visible (attach as many as you like!). Then click on the desired removable device, and all your folders and playlist that you have so tirelessly prepared will be revealed for you to play from.
ehendrikd marked this conversation as resolved.
Show resolved Hide resolved

<div style="text-align: center;"><img src="{% static '/static/images/news/mixxx-rekordbox-usb.png' %}" /></div>
ehendrikd marked this conversation as resolved.
Show resolved Hide resolved

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!

<div style="text-align: center;"><img src="{% static '/static/images/news/rekordbox-6-usb.png' %}" /><img src="{% static '/static/images/news/mixxx-rekordbox-usb.png' %}" /></div>

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](https://mixxx.zulipchat.com).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also contains a TODO

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Serato news post hasn't been published yet so unfortunately don't have a link to update with.


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.

<div style="text-align: center;"><img src="{% static '/static/images/news/mixxx-rekordbox-usb.png' %}" /></div>
ehendrikd marked this conversation as resolved.
Show resolved Hide resolved

## 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](https://doc.kaitai.io/faq.html#writing) which is a prerequisite for writing the [PDB file format](https://github.com/Deep-Symmetry/crate-digger/blob/master/src/main/kaitai/rekordbox_pdb.ksy).

## 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](https://github.com/Deep-Symmetry) for the [Crate Digger](https://github.com/Deep-Symmetry/crate-digger) library and [Pedro Estrela's](https://github.com/pestrela) [research about MP3 timing shifts](https://github.com/digital-dj-tools/dj-data-converter/issues/3) for [DJ Data Converter](https://github.com/digital-dj-tools/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](https://mixxx.zulipchat.com/#narrow/stream/113295-controller-mapping/topic/Pioneer.20CDJ-2000NXS2). 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{# TODO: Add link to don't have to pay blogpost #} 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](https://mixxx.org/wiki/doku.php/allen_heath_xone_k2) for full control of Mixxx's effects while using CDJs!
ehendrikd marked this conversation as resolved.
Show resolved Hide resolved

<div style="text-align: center;"><img src="{% static '/static/images/news/IMG_4627.JPG' %}" /></div>

We have [documented what we have learned about the protocol so far](https://mixb.me/CDJHidProtocol/hid-analysis/startup.html) 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](https://mixxx.zulipchat.com/#narrow/stream/109123-introduce-yourself) and let us know how you can help.

ehendrikd marked this conversation as resolved.
Show resolved Hide resolved
{% endfilter %}
{% endblock %}
4 changes: 4 additions & 0 deletions plugins/news.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@
'github': 'ThisGrrrlFriday',
'email': 'amcrehan@gmail.com',
},
'ehendrikd': {
'name': 'Evan',
'github': 'ehendrikd',
},
}
AUTHOR_METADATA[""] = AUTHOR_METADATA["Mixxx"]

Expand Down
Binary file added static/images/news/IMG_4627.JPG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/news/mixxx-rekordbox-usb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/news/rekordbox-6-usb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.