Roland DJ-505

I recently bought a Roland DJ-505 and started to create a Mixxx mapping for it. The thing is slightly bigger version of the DJ-202, which also has a mapping in development. I used that as starting point.

What does work?

  • Most basic knobs/sliders/buttons (play, sync, cue, volume, speed, EQ, Jogwheels)
  • Effect sections
  • Performance Pads (including LEDs) with Hotcue, Roll, Loop and Sampler modes
  • TR-S drum machine (including FX routing, custom samples and BPM sync… but no beatmatching yet)

What does not work?

  • TR-S sync beatmatching
  • Routing TR-S custom samples through the FX section
  • Effect Section “FX SELECT” button
  • Some Performance Pads modes (Slicer, Velocity, Cue Loop, Pitch Play, …)
  • Shift button on Performance Pads
  • A few buttons (e.g. “ADD PREPARE” or “SLOT SELECT”)
  • Probably Performance Pad Parameter Buttons (+/-)

The TR-S provides it’s own input channels (channels 7-8 on Linux) that need to be mapped to “Auxiliary3”. Also, you should map input channels 1-2 to “Auxiliary1” and channel 3-4 to “Auxiliary2”. Those are needed for the PC/LINE/PHONO switches on the front of the device.

If someone has ideas, requests or wants to help out, feel free to comment in this forum thread or open a GitHub issue.

Wiki Entry
Git Repository

I just updated the wiki entry and added some documentation. Mapping also seen a bunch of improvements: I added Cue Loop, Pitch Play and Velocity Sampler modes for the performance pads, added support for TR-S/Sampler FX, fixed a bunch of other issues, etc.

Remaining issues so far:

  • TR-S sync beatmatching (current workaround is using the NUDGE button).
  • Selecting Effects via FX SELECT buttons is not implemented yet
  • Sorting the library by BPM/Song/Artist/Key does not work since no Mixxx controls seem to exist for it
  • A few missing buttons (ADD PREPARE/SLOT SELECT)
  • VINYL mode
  • PHONO CH Input Select (might work, not tested yet)
  • Some performance pad modes are missing (Slicer, Slicer Loop, Saved Loop, Flip)
  • There might be some bug in the version of Mixxx that I’m using which leaves some Sampler Slots unaffected by engine.setValue calls

Other than that, the mapping fairly complete now, but hasn’t seen much testing and thus might still be a bit buggy. If someone else owns a Roland DJ-505, it would be nice if you could test and give some feedback.

Great, thank you for working on this!

Please consider to create a pull request for your mapping. Mark it as work-in-progress [WiP] to indicate that it is not ready for merge and needs some more testing. Add a check list with the missing features to the PR and tick them when done. You might also post the permanent URL of the PR here and temporarily add it to the wiki until it has been merged.

We already have a PR for the DJ-202



The PR has been merged, the mapping is now in master.

Hi hlzhs,

So i decided against the 707 and ordered the 505 which arrived just yesterday.
Running mixxx 2.2.2 with Linux 5.2-rt, i copied the 505.xml and .js from github into my local Installation.
What shall i say. It works! Far better than expected i have to say. There was an real wow-effect :smiley:
That colorful wave wandering over the Controller when mixxx is starting, is that from your script? that just looks awesome

while exploring everything it happend couple of times i accidentaly activated a Loop and then…wuah, how to stop it! But thats just because i’m really used to my good’ol VMS4 :laughing:

Having a birthday to play at tomorrow i`ll test it more and try to get used to this new Controller.

Thank you a lot for this mapping, that was really a supreme experience to buy something, plug it in and go playing!

So i had my first gig with the 505 yesterday and everything went well :smiley:
once again: thank you so much for this mapping, i’m enthusiastic!

i noticed 2 minor things that were a bit irritating, and i don’t know whether they come from mapping or from mixxx itself.

usually i load a track into a deck and set my desired starting position by carefully moving the jogwheel 'till the cursor is at the desired position.
with my former controller that was very precise.

with the 505 there is a reverberation, or vibriation, or shaking in the waveform – i don’t know how to describe it.
i’ts very hard to position the cursor precisely, even if i move the jogwheel supersupergentle.
i finaly had to enable Quantize Mode so at least the cursor jumped to a point where the beat is :wink:

any way to change this behaviour?

this is hard to describe, even harder since it only occured 3-4 times in a row of over 100 songs played.
situation was:
everything ready.
song loaded into deck.
marker visually on beat.
hitting cue: on beat.

hitting play: sliiightly off beat!
but not that there was a delay – more like if the cuepoint had moved a bit forward!
that was superstrange, but, as i said, it only happend for 3% of the songs :wink:

any advices?

But to end this comment in a positive vibe – things i really liked:

  • shift - jogwheel : never missed the touchstrip from the vms4 :ugeek:
  • loading tracks with the controller: i never used this with the vms4, found it anoying, but with this mapping it was actually fun! and worked!
  • autoloop
  • overall experience
  1. Mixxx’s handling of jog wheels is affected by the size of the audio buffer set in the Sound Hardware preferences. What is yours set to? Try lowering it.

That did the trick.
As simple as this.

Audio buffer was set to 42.7ms, and after reading that paragraph about the connection between pops and reactivity again, i started from lowest possible value to finally hear no pops at 10.7ms, with 2 decks playing, key lock ON and 3 effects on every deck.

and indeed jogwheels worked as precise as i knew them.

I let that play for 10 Minutes and heard no pop nor glitches, but i guess
to be on safe side i better set it to 21.3ms?

But why did i set the audio buffer to 42.7?
I have to admit i completely missunderstood the meaning of that value – i thought of it like a cache for audio: higher is better. :confused:
yes, i should have :unamused: rtfm

So i had another party last night and while the controller itself worked like a charm i encountered this issue again.
Also, it’s not just play, also cue. There is also a visual representation, the red markerbar jumps back a bit --> offbeat
So this morning i set up my gear at home and tried to reproduce it with mixxx --developer
Et voilà: Every time i see the marker jump back i get an entry like this

Debug [Engine]: CachingReader - Prepending 494 frames of silence

Debug [Engine]: CachingReader - Prepending 1958 frames of silence

As i’m heading straight into OffTopic here: Where to go from here?

I have no experience how such things are handled :wink:

Please test again and report your results:

sorry for not quite understanding what to do. :
should i

  1. Post logfile there again (i don’t think so)
  2. compile mixxx with these specific changes applied?
    (have to read first how to do this, i’m not firm with compiling from branches, usually i use the package provided by arch. but i’ll try)
    (edit i’ll start here, right?)

We need more detailed log output to see at which position in the audio stream this happens. Are you able to build this branch yourself?

I’m on it :wink:

just have to setup a build environment on my desktop pc since i don’t want to litter my dj working laptop which i want clean and nice :wink:

I think it would be best to have the same conditions on booth machines, right?
So as i’m on linux-rt on that laptop with everything implemented that is written here that’ll take an hour.

i’ll compile mixxx with Pull request 2351 and post output here as soon as i have it.

running 2.3.0-alpha-pre (build (no branch) r6985) now.
unfortunately i have no clue whether i did everything right and compiled the right thing.
sorry, i’m so noob here… :\

now i get a lot warnings like this

Warning [Controller]: Killing timer 104 : That timer does not exist!
Warning [Controller]: Killing timer 5 : That timer does not exist!

and now all of a sudden this

Debug [CachingReaderWorker 2]: SoundSourceMP3 - restartDecoding @ 0
Debug [CachingReaderWorker 2]: SoundSourceMP3 - Retry decoding MP3 frame @ 0

Debug [CachingReaderWorker 2]: SoundSourceMP3 - restartDecoding @ 23040
Debug [CachingReaderWorker 2]: SoundSourceMP3 - Retry decoding MP3 frame @ 23040


btw, that’s why i didn’t want to compile it on my working machine…
setting up that building environment under archlinux breaks the mixxx provided via the package manager.
what did i do?

mixxx is installed via pacman (community/mixxx 2.2.2-2)

then i followed the steps described here and here to get self compiled mixxx with the PR 2351
This self compiled mixxx works, but as soon as i try to start systemwide installed mixxx i get a

mixxx: error while loading shared libraries: cannot open shared object file: No such file or directory 


Are you able to test the master builds? Then I will merge the PR to generate one.

Pending: … lease/888/

will do on tuesday, have to get back to regular work tomorrow :frowning:

ok, i tried but it didn’t work and i guess i did something wrong.

So i found the build under
Unfortunately, starting this is resulting in

./mixxx: error while loading shared libraries: cannot open shared object file: No such file or directory

mhm, so i tried (please don’t laugh)

ln -s

starting again is resulting in

./mixxx: error while loading shared libraries: cannot open shared object file: No such file or directory

once again:

ln -s

starting again is resulting in

./mixxx: symbol lookup error: ./mixxx: undefined symbol: _ZNK6google8protobuf11MessageLite39InternalSerializeWithCachedSizesToArrayEbPh

at this point i’m stuck.
what else could i try?