Serato DJ Pro General Discussion

Talk about Serato DJ Pro, expansion packs and supported hardware

DIY MIDI devices & SDJ Midi Output (Need help)

ErgoZ 5:21 PM - 8 February, 2019
I tries to make a hardware to show current autoloop size. I found exmaple XMLs with SDJ MIDI output for CUEs to highlight buttons with colors.

Which problem i tries to solve:
- I play track
- Select autoloop size 4 (for example)
- Activate autoloop with pre-selected size - 4 beats
- Then i make it smaller to 1/16
- Exit from loop

And from this moment i can forget to increase autoloop size, and it is too difficult to see on small notebook screen which size is currently preselected (not activated), and when next time i will start autoloop it will start from 1/16.

I want to make small OLED display that will show me current autoloop selected size (not activated), and current beat jump size (in future revisions).

I found some code for output

<userio event="output">
<auto_loop_length_index deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="any">
<alias name="32Beats" value="0"/>
<alias name="16Beats" value="0"/>
<alias name="8Beats" value="0"/>
<alias name="4Beats" value="0"/>
<alias name="2Beats" value="0"/>
<alias name="1Beat" value="0"/>
<alias name="1/2Beat" value="0"/>
<alias name="1/4Beat" value="0"/>
<alias name="1/8Beat" value="0"/>
<alias name="1/16Beat" value="0"/>
<alias name="1/32Beat" value="0"/>
</translation>
</auto_loop_length_index>
</userio>

But by midi sniffer i cant catch any midi messages, which message type and value should it be?

Is it correct XML (should i change event_type for something else?):
<midi app=" 2.1.0.797">
<control channel="1" event_type="Note On" control="84">
<userio event="click">
<loop_length_half deck_set="Default" deck_id="0" slot_id="1">
<translation action_on="press" behaviour="explicit"/>
</loop_length_half>
</userio>
<userio event="output">
<auto_loop_length_index deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="any">
<alias name="32Beats" value="0"/>
<alias name="16Beats" value="0"/>
<alias name="8Beats" value="0"/>
<alias name="4Beats" value="0"/>
<alias name="2Beats" value="0"/>
<alias name="1Beat" value="0"/>
<alias name="1/2Beat" value="0"/>
<alias name="1/4Beat" value="0"/>
<alias name="1/8Beat" value="0"/>
<alias name="1/16Beat" value="0"/>
<alias name="1/32Beat" value="0"/>
</translation>
</auto_loop_length_index>
</userio>
</control>
</midi>

Option auto_loop_length_index i found in sources of SDJ binary :)

Does anybody know where i can found full guide about SDJ midi xml documentation? Specifications or something else about it?

And second question - how to get midi output with current knob level value (for filters for example)

And third question - how to get midi output with current file name in deck


If we will solve this problems i will share all my project files and everyone will can make same device :)
ErgoZ 5:25 PM - 8 February, 2019
Same code with formatting can be found here: gist.github.com
Bornd Fono 5:37 PM - 8 February, 2019
Quote:
Does anybody know where i can found full guide about SDJ midi xml documentation? Specifications or something else about it?


You can't. They don't share it (I reached out to them with a different question trying to get an advanced midi-mapping done).

It's sad. But that's how it is...
I wish it would be different and they would share it and make it for more advanced users possible to get their dream setup done - setting limitations for people never made anyone stay with a specific software...

AND: if they don't wanna share the xml specifications - then they should at least provide included functions to map modifiers (a shift button & co). Their software in some areas is sooo advanced and still after all those years we can't use simple things like mapping 2x functions to a single knob (macros) etc. I just don't understand why they wanna keep us in the stoneage midi-wise...
Despo 9:38 PM - 8 February, 2019
djtechtools.com

Useful article for mapping
ErgoZ 11:36 AM - 9 February, 2019
Quote:
djtechtools.com

i already seen that article, but it is not solve the problems in this thread :)