Mapping the Roland RJ-202

XML preset files and script files (.js) for MIDI and other controllers.

Moderators: garth, User Customization Moderators

Mapping the Roland RJ-202

Postby Lykos153 » Sun Feb 25, 2018 12:32 pm

Hi all,

I'm currently mapping the Roland DJ-202 and after some initial difficulties with the js and xml files it's working fine so far and I figure most of it will just need a bit of time and experimenting.

But there are three problems for which I don't see a solution yet:
1. The DJ-202 does not respond to the Serato SysEx message to get the initial state
2. The in-built sequencer can be synced to the song playing in Serato. This is crucial to actually use the sequencer in live sitations. Is there a standard way for MIDI devices to beat-sync and can this be done with Mixxx?
3. I couldn't figure how to address some of the LEDs.

I thought about intercepting the communictaion with Serato, but unfortunately the DJ-202 doesn't use MIDI for Serato. It's still worth a try, though.
The second possibility is to ask Roland about the MIDI specs. I didn't find any document about this on their page. Does anybody know how well companies usually respond to these kind of requests and where it's best to direct them?

Best
Lykos153
---
Wiki page: Roland DJ-202
Mapping branch on GitHub
Lykos153
 
Posts: 13
Joined: Sat Jan 20, 2018 2:49 pm

Re: Mapping the Roland RJ-202

Postby Be. » Sun Feb 25, 2018 1:47 pm

It wouldn't hurt to ask Roland for documentation for the MIDI messages. Hopefully that will have information about a MIDI message to send to query for the initial state of the controller and how to control all the LEDs.

There is a MIDI clock standard. Mixxx has no built in support for this, but you may find adapting code from this script useful if the sequencer responds to MIDI clock.
I heard FLAC and I haven't gone back.
Protect your hearing with earplugs!

Hear my mixes
User avatar
Be.
Mixxx Developer
 
Posts: 2495
Joined: Tue Jan 06, 2015 1:00 am
Location: Chicago, USA

Re: Mapping the Roland RJ-202

Postby eigengrau » Mon Apr 09, 2018 7:50 pm

Many thanks to Silvio for his efforts toward supporting the DJ-202! I have a PR open on github to add support for the slip button, tap tempo, and strip search (the latter might benefit from some sensitivity tweaking, eventually).

It would be great to have initial settings picked up from the device. I don’t have access to a Windows box, so unfortunately I couldn’t try this myself, but I’ve noticed that the VirtualDJ folks are making an HID tracing tool available which might help if Serato talks HID to query the device state or set LEDs. Also, it looks like Windows might have this feature built in , too. Perhaps someone has a Windows system available and could look into this.

VirtualDJ also claims to support the device, but so far I haven’t been successful in finding the mapping definitions within the PE-file resources extracted from the Windows binary.

I’ve only had the device since today, so I don’t have too many thoughts on the mappings yet. Something that would eventually be nice to have would be the ability to realign the beat grid and toggle quantization from the controller.

In general, it’s probably good if the mapping adheres to the device labels as much as possible. For things like quantization toggle, etc., which don’t have dedicated buttons, it would be nice to have a list of inputs where it’s reasonable to use them for something else. Some inputs that might fit this category:

    * shift + load1/2 ⇒ currently, ejects the deck; this might not be the most useful feature; the manual says Serato uses these to switch the playlist between sorting based on BPM vs. title. I’m not sure this is something that is a must have function on the device as well, as compared to syncing the beat grid or toggling quantization.
    * shift + sync ⇒ currently available; Serato uses this to disable sync, but since the sync button in Mixxx latches, maybe this is a spot that could be repurposed
    * shift + sampler ⇒ the manual doesn’t say what this does in Serato; it’s labeled «slicer» on the device
    * shift + rotary encoder ⇒ still available, IIRC
    * shift + performance pads

Is it usual that the deck3/4 buttons on these controllers don’t latch, btw.? It seems to me this might make the extra decks much less useful.

Also, how does the sequencer start/stop LED behave under Serato? Currently, it always blinks when the sequencer is stopped, which is a bit distracting.

Kind regards,
S.
eigengrau
 
Posts: 6
Joined: Mon Apr 09, 2018 6:53 pm

Re: Mapping the Roland RJ-202

Postby Lykos153 » Mon Apr 09, 2018 8:53 pm

Thank's a lot for your thoughts and the PR!

eigengrau wrote:It would be great to have initial settings picked up from the device. I don’t have access to a Windows box, so unfortunately I couldn’t try this myself, but I’ve noticed that the VirtualDJ folks are making an HID tracing tool available which might help if Serato talks HID to query the device state or set LEDs. Also, it looks like Windows might have this feature built in , too. Perhaps someone has a Windows system available and could look into this.

VirtualDJ also claims to support the device, but so far I haven’t been successful in finding the mapping definitions within the PE-file resources extracted from the Windows binary.

I set up a Windows VM to sniff the USB traffic, but I hadn't enough time to inspect it yet. I hope I'll find something useful regarding initial state and sequencer synchonisation.

eigengrau wrote:In general, it’s probably good if the mapping adheres to the device labels as much as possible. For things like quantization toggle, etc., which don’t have dedicated buttons, it would be nice to have a list of inputs where it’s reasonable to use them for something else. Some inputs that might fit this category:

I thought so, too. but I started off using only Mixxx' standard shift behaviour.

eigengrau wrote:* shift + load1/2 ⇒ currently, ejects the deck; this might not be the most useful feature; the manual says Serato uses these to switch the playlist between sorting based on BPM vs. title. I’m not sure this is something that is a must have function on the device as well, as compared to syncing the beat grid or toggling quantization.

I tried to do this, but apparently Mixxx doesn't have an interface to do so. See https://www.mixxx.org/wiki/doku.php/mixxxcontrols

eigengrau wrote:* shift + sampler ⇒ the manual doesn’t say what this does in Serato; it’s labeled «slicer» on the device

The state of the Pad section is hardcoded in the device. Serato Intro only supports the basic modes: Hot Cue, Loop, Sampler where the lower 4 keys are always for manual loops. Serator DJ supports 4 layers: normal press, double press, shift+press, shift+double press. Those are hardcoded as well and I haven't yet found a way to access them. As I don't own a copy of Serato DJ, I also can't sniff them.

We could implement this manually, but that would require a lot of additional work. I thought about using the PARAM buttons to switch layers, as they don't seem to be used outside the sequencer mode.

eigengrau wrote:Is it usual that the deck3/4 buttons on these controllers don’t latch, btw.? It seems to me this might make the extra decks much less useful.

On hardware side, it doesn't latch. We have to do this in the script, which is not very hard.

eigengrau wrote:Also, how does the sequencer start/stop LED behave under Serato? Currently, it always blinks when the sequencer is stopped, which is a bit distracting.

Everything regarding the sequencer is hardcoded in the device and cannot be changed.

I created some issues on GitHub to make collaboration easier: https://github.com/Lykos153/mixxx/issues

Best,
Silvio
Lykos153
 
Posts: 13
Joined: Sat Jan 20, 2018 2:49 pm

Re: Mapping the Roland RJ-202

Postby Be. » Mon Apr 09, 2018 11:13 pm

eigengrau wrote:Many thanks to Silvio for his efforts toward supporting the DJ-202! I have a PR open on github to add support for the slip button, tap tempo, and strip search (the latter might benefit from some sensitivity tweaking, eventually).

It would be great to have initial settings picked up from the device. I don’t have access to a Windows box, so unfortunately I couldn’t try this myself, but I’ve noticed that the VirtualDJ folks are making an HID tracing tool available which might help if Serato talks HID to query the device state or set LEDs. Also, it looks like Windows might have this feature built in , too. Perhaps someone has a Windows system available and could look into this.


This is typically done by sending the controller a specific MIDI message and then it replies with MIDI messages indicating the states of all the faders and knobs. Sometimes that is a sysex message, sometimes it is a plain 3 byte MIDI message. To get that MIDI message, I suggest watching the MIDI signals coming out from Serato when you start Serato. Refer to https://mixxx.org/wiki/doku.php/midi_cr ... midi_tools for some suggested tools.
I heard FLAC and I haven't gone back.
Protect your hearing with earplugs!

Hear my mixes
User avatar
Be.
Mixxx Developer
 
Posts: 2495
Joined: Tue Jan 06, 2015 1:00 am
Location: Chicago, USA

Re: Mapping the Roland RJ-202

Postby eigengrau » Wed Apr 18, 2018 1:59 pm

Quick question for Lykos153 (you’re probably still travelling, so reply whenever it’s convenient): in the Wiki you advise setting the controller into generic USB mode (as opposed to vendor mode). Have you noticed any discrepancies between the two modes, or did you encounter any obstacles when in vendor mode? I still have mine set to vendor mode, but I figure so far the MIDI messages can’t be too different or you would have gotten unexpected results after merging my commits.

Possibly the USB mode just switches some USB device identifiers so that Windows binds its generic drivers to the device, whereas in Linux the driver (snd-usb-audio, apparently) already matches even in vendor mode?
eigengrau
 
Posts: 6
Joined: Mon Apr 09, 2018 6:53 pm

Re: Mapping the Roland RJ-202

Postby eigengrau » Wed Apr 18, 2018 2:03 pm

Oh, actually, the usb-devices program (from usbutils) shows me that one interface doesn’t have a driver loaded when in vendor mode:

Code: Select all
I:  If#=0x0 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=00 Driver=(none)


Possibly this is the HID part of the device?

Edit: After setting the device to generic mode, that subinterface is now also bound by snd-usb-audio. Not sure what this changes though. The manual says that Serato won’t work like this. Speculatively, maybe this is because Serato uses an HID-interface which has now been disabled. Would be nice to know what the interface is used for, though, and what the interface does when in generic mode (since it gets bound by the driver).
eigengrau
 
Posts: 6
Joined: Mon Apr 09, 2018 6:53 pm

Re: Mapping the Roland RJ-202

Postby eigengrau » Wed Apr 18, 2018 3:29 pm

Okay, looks like in vendor mode, the volume fader always sends on MIDI channel 1, even when the Deck-3 button is pressed. In generic mode, Deck-3+Fader sends on channel 3 instead.
eigengrau
 
Posts: 6
Joined: Mon Apr 09, 2018 6:53 pm

Re: Mapping the Roland RJ-202

Postby vinc » Thu Jul 12, 2018 10:38 am

Thank you for this work! 8-)
vinc
 
Posts: 7
Joined: Sun Dec 06, 2015 5:38 pm

Re: Mapping the Roland RJ-202

Postby vinc » Thu Aug 02, 2018 8:16 am

is there a way to modify the knob sensitivity? i need it for filter and trim.

thanks
vinc
 
Posts: 7
Joined: Sun Dec 06, 2015 5:38 pm

Next

Return to Controller presets/mappings

Who is online

Users browsing this forum: No registered users and 4 guests