Communication between Bome and Rekordbox for DJ2GO controller

PRKid

2017-01-05 08:23:42

I am need of some insights into the following 2 issues I've faced while mapping the Numark DJ2GO controller. (Note: I started the project and had posted a request for the LEDs toggle here.. http://www.bome.com/forums/viewtopic.php?f=3&t=12277 and received some feedback from sjcaldwell (thanks again!), thus, was able to toggle all the buttons using LEDs successfully.)

After pulling together all the mapping of the pads/faders/wheels, these seem to be working correctly between the controller and Bome and I can see the proper triggers using midi monitor and Bome's log. Yet, when I connect it to Rekordbox and pick Bome as the midi interface, no action occurs on Rekordbox (wheels/faders/pads). I tired changing the ports to ensure that was not the issue (though it still could be per what I've chosen), yet, not successful.

The 2nd issue is that of having the 4 pads (Cue/Play/Sync/Headphones) to serve as both LED triggers, as well as, trigger their particular function. For this I set a separate Preset (#2, Button Controls), yet, had to deactivate it since now my LEDs were not toggling (they were staying On).

Attached is the current work-in-process file. Any pointers to get both of this 2 issues corrected and/or ideas to test are welcome. Thank you!
Attachments
Numark DJ2GO.bmtp
(13.17 KiB) Downloaded 349 times

sjcaldwell

2017-01-05 14:57:56

Hi PRKid,


For the first issue,

I assume your are talking about preset "Encoder and Wheels". Each translator is putting out fixed value of 127 for any input value. Was this intended? Does you log show Midi Output?

Same thing with second issue. You are always putting out values of 127 on button controls which is why the led's are staying on.
Is the same thing that triggers the led on on your Rekordbox supposed to also trigger the a function? If not, how does your device determine whether to trigger and led only or the function?

Output is showing everything to go to both Numark DJ2Go and Bome MIDI Translator 1 Virtual Out which I assume is Recordbox.
If you want output directed only to a given device you have a few options

1) Set up the preset to only output to the given device (everything under that preset will use that device until translator is otherwise defined.
2) Have each translator over-ride the default by calling out a specific device.

Translators follow these rules for input and output

1) If translator calls out the devices it uses that otherwise
2) If preset calls out the devices it uses that
2) if neither of the above uses project default devices

PRKid

2017-01-05 17:46:04

Thanks for the response cjcaldwell! I'll try my best to provide you with enough information....here we go...

(1) On first issue of Bome's midi translator and Rekordbox not communicating. It applies to ALL the functions, thus all presets/translators. On the value for the pads (which also turn on/off LEDs - Cue/Play/Headphones/Sync), per the controller's spec that is what is expected. Yet, I am making a big assumption that Rekordbox is also expecting the same. I've attached the DJ2GO's spec below. My log does show output from both the DJ2GO controller and Bome's Midi Translator. So, my assumption was that upon getting output from Bome, and picking Bome on my Rekordbox software, that these would interact appropriately.

(2) You are correct about why the LEDs are staying on, due to the fact that the 4 pads (Cue/Play/Headphones/Sync) also send a Note On & Off on same channel for the functions to work (yet, also sends this the the LEDs On/Off, thus, LEDs stay On). Not sure about the velocity since the spec does not say it modifies such (i.e. from 127 to xxx). The same pads that trigger my LEDs on/off should also trigger the functions (i.e. Cue pt/Play the track/use headphones/Sync tracks). LEDs should be turning On/Off both on the device and the Rekordbox software (highlighting within the software layout).

The outputs are set to DJ2GO (for LEDs On/Off), and, to Bome (meaning Rekordbox in this case) for ALL LEDs On/Off along with the functions functions.

I will try to change the LED On/Off preset to only the DJ2GO and see if this works for issue #2. Yet, not sure about the overall communication between the DJ2GO-to Bome-to Rekordbox issue. I have another controller with a full spec, which works just fine with Rekordbox, and not in need of Bome, thus, I will check what it send to Rekordbox and compare against the DJ2GO unit's spec.

Again, thank you!
Attachments
dj2go___software_definition_and_midi_spec_v1.0.pdf
(239.13 KiB) Downloaded 323 times

sjcaldwell

2017-01-05 18:15:11

OK, look on page 6. It appears that the device is looking for values of the buttons you are pushing yet your translators are

only looking for values of 7F on input
and
always sending values of 7F on output

You need to monitor input on any velocity setting value of say pp
and then pass the value of pp on output.

It seems that the led's turn on with any non-zero value and off with any zero value so probably no need to have separate translators to just control LED's.

With that said, you will probably need to a toggle function since the button will send a zero value when released unless you block it with a translator.

PRKid

2017-01-05 19:25:35

Got it! I switched all the pads/faders/knobs to receive & send a variable (all assigned to vv). Got rid of the separate Translator to control LEDs on/off. Yet, still nothin happens on Rekordbox.

Log shows in/out from DJ2GO and Bome using midi-monitor, only shows in/out Note On's within Bome Log for LED/functions.

Consolidated the Cue/Play/Headphones/Sync Translators to 8 (versus 16 when had separate Translators to toggle LEDs on/off). Placed Rules that were working on the first project on the consolidated Translators. Still ON always.

Will try a couple of add'l adjustments and review all work to ensure I did not (accidentally) mess something up.

.

PRKid

2017-01-05 20:13:48

** Update on Issue #1..... I switched outgoing channels on the crossfader slider as a test, and, found that Rekordbox accepted the input on Ch #7. I was using Ch #1 for both in/out of DJ2GO & Bome. Thus, many of the other pads/knobs/wheels/sliders may require looking into the channel that Rekordbox is expecting these functions.

Issue #2 - enabling for LEDs to toggle on/off while applying it's function is still in the works (more testing).

.

PRKid

2017-01-05 23:33:20

(1) Issue #1 - connecting to Rekordbox

Good news -- By identifying the same functionality of another controller (channel # and CC #) I was able to enable the functionality of the DJ2GO using Bome translating for Rekordbox.

Only 2 items are not working, these are the wheels of Track A & B. The channel is correct, yet, still needs more work around what Rekordbox is expecting. The logs do reflect the movement of both wheels.

(2) Issue #2 - LEDs On/Off

The good news here is that the use of the toggle works well with the Cue pads for Tracks A & B.

However, using the same approach for the Play, Sync, and Headphones, these just temporarily go on as the pad is pressed then stay Off.

Another issue that surfaced is that there is an interaction going on with the Cue and Play functions. Upon pressing Cue twice it starts playing the song -- which it should -- yet, now the Play function is confused, thus, when I hit play it does nothing (just keeps playing versus stoping the song). So, have to hit the Play pad twice to stop the song. There is probably another IF statement Rule that I'll need to apply somehow so it identifies if song is already playing (or not).

Just thought I provide another update on the progress along with sharing my learning so far. If you have any thoughts on the current challenges, certainly welcome some insights and/or ideas to try out. Thank you!

.

sjcaldwell

2017-01-06 00:09:36

Well it looks like you are well on your way. Difficult to troubleshoot at this point without having the actual controller on hand to do trial and error. Thanks for the update!

DvlsAdvct

2017-01-06 02:52:58

Hi PRKid

A lot of the problems you're having with LEDs can be solved by utilizing MIDI Out from Rekordbox. The problem is that you need a way to have the hardware respond to the current state in the software. To do that, you need to connect Rekordbox to MT Pro over a virtual MIDI port, and pass that data through to the controller. You can use the MIDI Router to pass the data through. This would override any translators that you have set up for LEDs, at least for simple things. You can get more complex with global variables as well.

Jared

PRKid

2017-01-06 03:08:38

sjcaldwell wrote:Well it looks like you are well on your way. Difficult to troubleshoot at this point without having the actual controller on hand to do trial and error. Thanks for the update!
.
Thanks for all your insights, it's appreciated! Will keep troubleshooting and report back as I make progress. This has been a great learning experience for me which I plan to then do similar projects for other (more complex) controller projects.

.

PRKid

2017-01-06 03:10:58

DvlsAdvct wrote:Hi PRKid

A lot of the problems you're having with LEDs can be solved by utilizing MIDI Out from Rekordbox. The problem is that you need a way to have the hardware respond to the current state in the software. To do that, you need to connect Rekordbox to MT Pro over a virtual MIDI port, and pass that data through to the controller. You can use the MIDI Router to pass the data through. This would override any translators that you have set up for LEDs, at least for simple things. You can get more complex with global variables as well.

Jared
.
Thanks for the feedback! When I've used Rekordbox I can set the Midi incoming (in this case Bome Translator), yet, do not see a way to connect Rekordbox to Bome's virtual MIDI port. Rekordbox does not show up under the MIDI Router section of Bome's sw. Will keep looking!

.

DvlsAdvct

2017-01-06 18:27:34

You need to activate a virtual port in Rekordbox, like Bome Virtual MIDI Port 3, or something, and then use THAT in MT Pro. MT won't say Rekordbox, but it will show you all available MIDI ports.

PRKid

2017-01-06 20:04:51

DvlsAdvct wrote:You need to activate a virtual port in Rekordbox, like Bome Virtual MIDI Port 3, or something, and then use THAT in MT Pro. MT won't say Rekordbox, but it will show you all available MIDI ports.
.
I proceeded to add a virtual port on Bome (Bome MIDI Translator 2) and picked it on Rekordbox. I then checked several combinations (to test) of the ports under Project Default MIDI ports (DJ2GO, Bome V#1, Bome V#2....for both in/out). I also used the MIDI Router section to connect Bome MIDI Translator 2 to DJ2GO (input). Still same issue of LEDs just turning On for an instance then stay in Off position. LEDs on Rekordbox show On.

Here is a thread regarding the challenges folks are having with Rekordbox https://forums.pioneerdj.com/hc/en-us/c ... Interface- . Towards the bottom of thread, I see the following statement........"Basically until Pioneer give us a seperate midi out interface, if your controller needs values not of 127 or 7F in hex to turn it's LEDs a colour or even off, then you're buggered. it doesn't listen to note off inclusively so my work around has been to translate all 8x xx xx note off messages to note on's with 00 as their "velocity" for want of a better word. So my APC sends say 90 35 7F as it's note on and it then sends 80 35 7F as its note off; so that becomes 90 35 00 via Bomes and then back to the APC i intercept again this note on value of 00 and translate it to 80 35 7F and the light turns off. but this is really long winded and annoying for every button and if i want colours 00 from rekord box becomes 1,2,3,4,5 or 6 in Bomes and the note on can be a different colour this way too, but man it takes so long to setup. If your controller has a seperate midi code for it's light to it's trigger messages it gets even worse as rekordbox then needs a manual mapping on it's out column and then it still needs translating to make it not provide 7F all the time..."

So, this person actually appears to have figured it out, yet, did not share how he did it.

I'll keep troubleshooting to see if I can figure a way out of this issue.

.

PRKid

2017-01-06 20:27:02

In addition to the LEDs On/Off challenge, the only outstanding item I have on this project is to be able to effectively enable the 2 wheels (deck A & deck B) on the controller. The spec (see file in previous post) outlines the following (last page/bottom of file)...

"Encoder and Wheels (relative controllers): Some controls will report a relative change in their value. This will be done using a MIDI controller message. The field normally associated with controller number will be used to specify the Control ID. The field normally associated with controller value will be used to report the change in the control value.
MIDI Controller message: Interpretation of MIDI Controller values: The value in the data field will indicate a relative change; values 01 to 63 describe a positive change and values 127 down to 64 describe a negative change."

So, I have been using a MIDI Message with Control Change on Bome, yet, I was wondering if this requires a different implementation (as far as MID message commands for Outgoing to Rekordbox)! Any thoughts? Thank you!

** When I move either wheel, my log shows only velocity of 1 (clockwise) or 127 (counterclockwise), and not specific values between 01 thru 127.

Latest Bome file attached. (BTW, when I use the "Add Files" function in these threads, my Bome files cannot be selected (greyed out on Mac) so revert to copy/paste and/or use drag.


.
Attachments
Numark DJ2GO v2.bmtp
(10.19 KiB) Downloaded 330 times

DvlsAdvct

2017-01-06 21:35:11

Oh man... rekordbox has to make this extra complicated. There are ways around that, though, I just can't do it while I'm at the office. Have to be home to help.

As far as the Encoder issue, that's not really an issue. That's what you want it to do. It's a relative command, meaning that when you turn it left it just sees that it's been turned left, and there's no start or end point. You want them to go on forever, because if it stops the message would stop. So that's a relative command. And Rekordbox should read it correctly on its own.

The reason it's not showing anything between 01 and 127 is because it doesn't have an acceleration message, which is common in less expensive devices, like the DJ2GO. It's not something you need, either. Is rekordbox not seeing the jog wheels?

PRKid

2017-01-06 22:28:55

DvlsAdvct wrote:Oh man... rekordbox has to make this extra complicated. There are ways around that, though, I just can't do it while I'm at the office. Have to be home to help.

As far as the Encoder issue, that's not really an issue. That's what you want it to do. It's a relative command, meaning that when you turn it left it just sees that it's been turned left, and there's no start or end point. You want them to go on forever, because if it stops the message would stop. So that's a relative command. And Rekordbox should read it correctly on its own.

The reason it's not showing anything between 01 and 127 is because it doesn't have an acceleration message, which is common in less expensive devices, like the DJ2GO. It's not something you need, either. Is rekordbox not seeing the jog wheels?
.
Thanks Jared!

Got the point on the encoder, so it seems I am doing the correct thing. I also confirmed the expected channel which is what I have on my Bome file. I'll test another Rekordbox enabled controller to see what it triggers on the log as I move the wheels, as well as, the LED messages.

On your question, YES, Rekordbox is not seeing the jog wheels for track A & B. These are the only 2 items missing on my mapping, all else is good. However, interesting enough, the Browse function which is also an encoder is working!

Again, thank for the support, it's appreciated!

.

DvlsAdvct

2017-01-07 02:23:06

So after a little research, it looks like jog wheels cannot be mapped to Rekordbox, only with devices that are natively supported. Not sure where that leaves you, though.

J

PRKid

2017-01-07 04:53:52

DvlsAdvct wrote:So after a little research, it looks like jog wheels cannot be mapped to Rekordbox, only with devices that are natively supported. Not sure where that leaves you, though.

J
.
Thanks for the update! Just curious, where did you find this...from Pioneer? (I've looked all over their support area....though might have missed it.)

If you by any chance figure something out on the LEDs On/Off, just let me know. Again, thank you!


** Update: Did find couple of sources last night, yet these are dated and Rekordbox has gone through several updates since then.
.

PRKid

2017-01-07 05:31:15

Here is the log from a jog wheel movement on the Pioneer DDJ-RZX...

20:25:37.645 From DDJ-RZX Note On 1 D♯3 127
20:25:38.614 From DDJ-RZX Note On 1 G6 127
20:25:38.614 From DDJ-RZX Control 1 Controller 31 65
20:25:38.617 From DDJ-RZX Control 1 Controller 31 65
20:25:38.619 From DDJ-RZX Control 1 Controller 31 65
20:25:38.621 From DDJ-RZX Control 1 Controller 31 65
20:25:38.623 From DDJ-RZX Control 1 Controller 31 65
20:25:38.626 From DDJ-RZX Control 1 Controller 31 65
20:25:38.627 From DDJ-RZX Control 1 Controller 31 65
20:25:38.629 From DDJ-RZX Control 1 Controller 31 65
20:25:38.631 From DDJ-RZX Control 1 Controller 31 65
20:25:38.633 From DDJ-RZX Control 1 Controller 31 65
20:25:38.635 From DDJ-RZX Control 1 Controller 31 65
20:25:38.637 From DDJ-RZX Control 1 Controller 31 65
20:25:38.640 From DDJ-RZX Control 1 Controller 31 65
20:25:38.641 From DDJ-RZX Control 1 Controller 31 65
20:25:38.644 From DDJ-RZX Control 1 Controller 31 65
20:25:38.646 From DDJ-RZX Note Off 1 G6 0
20:25:39.507 From DDJ-RZX Note Off 1 D♯3 0

So, it sends a SHIFT (button used along with wheel) on, wheel on, then the CC's (for clockwise motion, CC's of 63 for counterclockwise). This is for when the track is not playing and you want to move forward/backward (scanning).

When the track is playing the function to be enabled is to bend the track pitch. On the log this yields a CC with Modulation Wheel (fine) data type, and, same values/velocity as shown on the when track not playing.

So, can I emulate such when I get motion from my jog wheel of the DJ2GO? Thanks!

.

PRKid

2017-01-09 17:19:05

.
I tried simulating the DDJ-RZX's wheel' commands to Rekordbox on the DJ2GO with the following MIDI commands:

Code: Select all

Incoming:B0 19 01

Outgoing:"90 3C 7F 90 67 7F B0 1F pp"
Was not able to trigger Rekordbox respond, however, very oddly the Outgoing action(s) turn the LED of the Cue of Deck B On while moving the wheel of Deck A! Checking the DJ2GO's spec, it shows nothing that would interact on that Cue pad with that action. Unless, it is viewing/interpreting something coming back from Rekordbox on that channel/note#. Anyway, passed the limits of my troubleshooting abilities on this device/MIDI.

Also the LEDs for Play, Sync, and Headphones have yet to work. LED for Cue is working fine with my Bome file.

Any thoughts on potential tests/options I might have, or ideas to try out, just let me know. Thank you!

.

PRKid

2017-01-10 06:31:46

PRKid wrote:.

Also the LEDs for Play, Sync, and Headphones have yet to work. LED for Cue is working fine with my Bome file.

.
.
Actually all the LEDs work as they are supposed too when I only have Bome running, yet, as soon as I connect it with Rekordbox, then the Cue works ok and the other 3 (Play, Sync, Headphones) just temporarily blink.

.

i@mJONNY

2017-01-29 22:09:42

sjcaldwell wrote:OK, look on page 6. It appears that the device is looking for values of the buttons you are pushing yet your translators are

only looking for values of 7F on input
and
always sending values of 7F on output

You need to monitor input on any velocity setting value of say pp
and then pass the value of pp on output.

It seems that the led's turn on with any non-zero value and off with any zero value so probably no need to have separate translators to just control LED's.

With that said, you will probably need to a toggle function since the button will send a zero value when released unless you block it with a translator.
looking at the guide, one instance of 7f... how do you infer your logic?
The pdf sheet is completely indecipherable to me... where to start?!

Image

PRKid

2017-01-29 23:47:53

i@mJONNY wrote:
looking at the guide, one instance of 7f... how do you infer your logic?
The pdf sheet is completely indecipherable to me... where to start?!
.
Please refer to the other post you made for my response.....

viewtopic.php?f=3&t=12277&p=25087#p25087

.

florian

2017-01-31 00:19:44

Hi PRKid,
have you been able to get that to work yet?
In general, it seems to me as if the MIDI routing is not correct... and it also looks a lot like you're sending Note ON commands, but never the corresponding Note OFF command. That can really confuse software/hardware...
Thanks,
Florian

PRKid

2017-02-07 03:57:14

florian wrote:Hi PRKid,
have you been able to get that to work yet?
In general, it seems to me as if the MIDI routing is not correct... and it also looks a lot like you're sending Note ON commands, but never the corresponding Note OFF command. That can really confuse software/hardware...
Thanks,
Florian
.
Hi Florian!

I've been way on travels for a couple of weeks, so, have not been able to continue my testing of the 2 different controllers with the Rekordbox DAW. I think Rekordbox does send Notes back to the particular controller being used, yet, I can not rout with Bome to Rekordbox. So, if Bome cannot determine when Rekordbox is sending these Notes back, not sure how to trigger my LEDs On/Off and/or additional actions. I'll be back next week and should have time to dig in deeper to these issues.

.

florian

2017-02-07 13:52:13

thanks. you should be able to route back?

PRKid

2017-02-13 20:56:42

florian wrote:thanks. you should be able to route back?
.
The challenge with using Rekordbox is that the responses back from the DAW are not being recognized at all by Bome MTP or MIDI Monitor. Thus, I have to assume (with my rules and/or counters) that an action occurred directly back to the controller from Rekordbox. Going to test a couple of things today. Will start with something very simple and try to track the overall behavior between controller/Bome/Rekordbox.

Luis
.

PRKid

2017-02-14 00:34:18

.
*** UPDATE ***

I was able to make significant progress today using Bome MTP with Rekordbox. Let me walk thru what I did....

1. In Rekordbox, I disabled direct communication between my DJ2GO controller and the Rekordbox DAW by using a "blank" file for the midi-mapping of the controller on Rekordbox. One needs to make sure there are no direct mappings from controller to RB.

2. I changed several items on my Bome file. (a) Project Default MIDI Ports, Input=DJ2GO, Output=Bome Virtual Port 1, (b) MIDI Router, DJ2GO to Bome MIDI Translator 1 Virtual Out. And, (c) a couple of items within my Translator(s) Rules -- example, all Translators turning On/Off LEDs were set to Specific Port (DJ2GO controller) on the Outgoing Action.

So, with Item #2, I enabled indirect communication between DJ2GO-to-Rekordbox via Bome's MIDI Translator 1 as an input through Rekordbox's midi-mapping area.

3. I mapped Bome's MIDI Translator as if I were mapping the DJ2GO directly into Rekordbox via the midi-mapping menu structure. Keep in mind that I do this so I can enable the LEDs on/off functionality with Bome since Rekordbox does not enable such directly to the controller. Below are pics of the 3 areas that were mapped for all the buttons/pads/knobs. Only items left out were the wheels which are not currently supported on Rekordbox via the mapping.

Image

Image

Image


So, all-in-all, some good progress which will enable me to map other controllers as well.

I did run into an issue which I will post below so I can get some feedback on a path forward towards a solution.

Luis
.

PRKid

2017-02-14 01:06:10

.

Attached is my latest project file...


.
Attachments
Numark DJ2GO Working LEDs on Pads_02132017.bmtp
(9.75 KiB) Downloaded 404 times

PRKid

2017-02-14 01:13:15

.
The current challenge that I have is that of interactions between the Play/Pause and CUE pads. Basically, I need the LED's of either of these to be Off when the other function/LED is On. Here is the functionality of both pads explained per the manual...

===
12. PLAY / PAUSE – Starts or resumes playback if the Deck is paused. Pauses playback if the Deck is playing.
13. CUE – The CUE button will return and pause the track at the last set cue point. For temporary play of the cue point, you can hold down the CUE button. The track will play for as long as the button is held down and will return to the cue point once it has been released. You can hold down CUE and PLAY / PAUSE simultaneously to start playback from the cue point. Release both buttons to allow playback to continue.
===

The Play/Pause on its own is working fine. Yet, when I hit the CUE pad and it achieves its functionality of going back to the last Cue Pt, the LED on the Play/Pause function will stay On (I need it Off since Cue does pause play). I added a couple of Rules to get these in the correct sequence yet has not worked.

Any ideas for me to troubleshoot/experiment? Thank you!

.