Serato DJ Pro General Discussion

Talk about Serato DJ Pro, expansion packs and supported hardware

Midi map DJM-S9 User mode with output LED Colors?

dj dawn 2:22 PM - 26 July, 2017
Hi!

Is it possible to edit the custom MIDI xml file so that it outputs different colors on the pads when using the User mode on the 3rd layer on the DJM-S9?

All the pads in that mode are colored yellow now. Would be really nice if you could edit that to output multiple colors for the different functions that you've mapped :-)


These are my mappings on the 3rd press of the ROLL button (and the colors I would like to have instead of yellow)

1. First Cue point (red)
2. Sync on (green)
3. Key Sync on/off (blue)
4. Sync off (white)

5. Beat jump backward (orange)
6. Beat jump forward (orange)

8. Internal mode play (yellow)


Help much appreciated :-)

Thanks!
DJ Fa2LA 6:09 PM - 26 July, 2017
Yes it's possible. Take note of J.J.'s response at this thread: serato.com From my limited use of the numbers, they do seem accurate.

A few tips:
(1) After you locate your XML file, copy it to a different location and then try editing that file. AKA have a backup.

(2) Use an App that could typically handle HTML code like Dreamweaver, or numerous other apps. Basically something where you can open XML file in, make changes and just click 'save'. One time I did a 'save as' and chose xml. But either formatting was wrong or something and Serato wouldn't recognize properly. There's enough other things that can go wrong without adding that to the mix.

(3) Make sure 'enable output lighting' is checked in your Setup > MIDI tab on the file you create.
dj dawn 3:29 PM - 27 July, 2017
Thank you DJ Fa2LA :-)

I managed to map the user mode with colors on the pads now.

But the numbers mentioned by J.J didn't really work for me.
These are the numbers that worked for me (DJM-S9 Firmware 1.07)

1–5 Blue
6–10 Light Blue
11–15 Light Turquoise
16–19 Turquoise
20–22 Green
23–25 Light Green
26–28 Light Yellow
29–33 Yellow
34–39 Orange
40–41 Light Red
42 Red
43–50 Pink
51–57 Light Pink
58–60 Purple
61–62 Purple Blue
64 White


And here is my mapping if someone would like to try.
The idea is to have a layer suitable for mixing and with backup controls if one turntable would go down for some reason.

Pad:
1. First Cue Point (Red)
2. Sync on (Light green)
3. Key Sync on/off (Blue)
4. Sync off (none)

5. Beat Jump backward (Orange)
6. Beat Jump forward (Orange)
7. Temp Cue (Yellow)
8. Play – internal mode (Green)


XML:
<midi app=" 1.9.6.4129">
<control channel="13" event_type="Note On" control="24">
<userio event="click">
<cue_point_delete deck_set="Default" deck_id="1" slot_id="0">
<translation action_on="press" behaviour="explicit"/>
</cue_point_delete>
</userio>
<userio event="output">
<cue_point_delete deck_set="Default" deck_id="1" slot_id="0">
<translation action_on="any">
<alias name="on" value="42"/>
<alias name="off" value="0"/>
</translation>
</cue_point_delete>
</userio>
</control>
<control channel="12" event_type="Note On" control="23">
<userio event="click">
<play deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="press" behaviour="toggle"/>
</play>
</userio>
<userio event="output">
<play deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="any">
<alias name="on" value="22"/>
<alias name="off" value="0"/>
</translation>
</play>
</userio>
</control>
<control channel="12" event_type="Note On" control="21">
<userio event="click">
<beat_jump deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="press" behaviour="static" static_value="forward"/>
</beat_jump>
</userio>
<userio event="output">
<beat_jump deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="any">
<alias name="none" value="38"/>
<alias name="backward" value="38"/>
<alias name="forward" value="40"/>
</translation>
</beat_jump>
</userio>
</control>
<control channel="12" event_type="Note On" control="20">
<userio event="click">
<beat_jump deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="press" behaviour="static" static_value="backward"/>
</beat_jump>
</userio>
<userio event="output">
<beat_jump deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="any">
<alias name="none" value="38"/>
<alias name="backward" value="40"/>
<alias name="forward" value="38"/>
</translation>
</beat_jump>
</userio>
</control>
<control channel="13" event_type="Note On" control="20">
<userio event="click">
<beat_jump deck_set="Default" deck_id="1" slot_id="0">
<translation action_on="press" behaviour="static" static_value="backward"/>
</beat_jump>
</userio>
<userio event="output">
<beat_jump deck_set="Default" deck_id="1" slot_id="0">
<translation action_on="any">
<alias name="none" value="38"/>
<alias name="backward" value="40"/>
<alias name="forward" value="38"/>
</translation>
</beat_jump>
</userio>
</control>
<control channel="13" event_type="Note On" control="16">
<userio event="click">
<cue_point deck_set="Default" deck_id="1" slot_id="0">
<translation action_on="any" behaviour="explicit"/>
</cue_point>
</userio>
<userio event="output">
<cue_point_set deck_set="Default" deck_id="1" slot_id="0">
<translation action_on="any">
<alias name="on" value="42"/>
<alias name="off" value="0"/>
</translation>
</cue_point_set>
</userio>
</control>
<control channel="13" event_type="Note On" control="18">
<userio event="click">
<musical_key_sync deck_set="Default" deck_id="1" slot_id="0">
<translation action_on="press" behaviour="toggle"/>
</musical_key_sync>
</userio>
<userio event="output">
<musical_key_sync deck_set="Default" deck_id="1" slot_id="0">
<translation action_on="any">
<alias name="on" value="1"/>
<alias name="off" value="0"/>
<alias name="disabled" value="0"/>
</translation>
</musical_key_sync>
</userio>
</control>
<control channel="13" event_type="Note On" control="21">
<userio event="click">
<beat_jump deck_set="Default" deck_id="1" slot_id="0">
<translation action_on="press" behaviour="static" static_value="forward"/>
</beat_jump>
</userio>
<userio event="output">
<beat_jump deck_set="Default" deck_id="1" slot_id="0">
<translation action_on="any">
<alias name="none" value="38"/>
<alias name="backward" value="38"/>
<alias name="forward" value="40"/>
</translation>
</beat_jump>
</userio>
</control>
<control channel="12" event_type="Note On" control="18">
<userio event="click">
<musical_key_sync deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="press" behaviour="toggle"/>
</musical_key_sync>
</userio>
<userio event="output">
<musical_key_sync deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="any">
<alias name="on" value="1"/>
<alias name="off" value="0"/>
<alias name="disabled" value="0"/>
</translation>
</musical_key_sync>
</userio>
</control>
<control channel="12" event_type="Note On" control="24">
<userio event="click">
<cue_point_delete deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="press" behaviour="explicit"/>
</cue_point_delete>
</userio>
<userio event="output">
<cue_point_delete deck_set="Default" deck_id="1" slot_id="0">
<translation action_on="any">
<alias name="on" value="42"/>
<alias name="off" value="0"/>
</translation>
</cue_point_delete>
</userio>
</control>
<control channel="12" event_type="Note On" control="16">
<userio event="click">
<cue_point deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="any" behaviour="explicit"/>
</cue_point>
</userio>
<userio event="output">
<cue_point_set deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="any">
<alias name="on" value="42"/>
<alias name="off" value="0"/>
</translation>
</cue_point_set>
</userio>
</control>
<control channel="13" event_type="Note On" control="23">
<userio event="click">
<play deck_set="Default" deck_id="1" slot_id="0">
<translation action_on="press" behaviour="toggle"/>
</play>
</userio>
<userio event="output">
<play deck_set="Default" deck_id="1" slot_id="0">
<translation action_on="any">
<alias name="on" value="22"/>
<alias name="off" value="0"/>
</translation>
</play>
</userio>
</control>
<control channel="13" event_type="Note On" control="19">
<userio event="click">
<sync_off deck_set="Default" deck_id="1" slot_id="0">
<translation action_on="any" behaviour="explicit"/>
</sync_off>
</userio>
<userio event="output">
<sync deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="any">
<alias name="on" value="0"/>
<alias name="off" value="0"/>
</translation>
</sync>
</userio>
</control>
<control channel="12" event_type="Note On" control="19">
<userio event="click">
<sync_off deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="any" behaviour="explicit"/>
</sync_off>
</userio>
<userio event="output">
<sync deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="any">
<alias name="on" value="0"/>
<alias name="off" value="0"/>
</translation>
</sync>
</userio>
</control>
<control channel="13" event_type="Note On" control="17">
<userio event="click">
<sync deck_set="Default" deck_id="1" slot_id="0">
<translation action_on="any" behaviour="explicit"/>
</sync>
</userio>
<userio event="output">
<sync deck_set="Default" deck_id="1" slot_id="0">
<translation action_on="any">
<alias name="on" value="20"/>
<alias name="off" value="0"/>
</translation>
</sync>
<sync deck_set="Default" deck_id="1" slot_id="0">
<translation action_on="any">
<alias name="on" value="20"/>
<alias name="off" value="0"/>
</translation>
</sync>
</userio>
</control>
<control channel="12" event_type="Note On" control="17">
<userio event="click">
<sync deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="any" behaviour="explicit"/>
</sync>
</userio>
<userio event="output">
<sync deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="any">
<alias name="on" value="20"/>
<alias name="off" value="0"/>
</translation>
</sync>
<sync deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="any">
<alias name="on" value="20"/>
<alias name="off" value="0"/>
</translation>
</sync>
</userio>
</control>
<control channel="12" event_type="Note On" control="22">
<userio event="click">
<cue deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="any" behaviour="explicit"/>
</cue>
</userio>
<userio event="output">
<cue deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="any">
<alias name="on" value="127"/>
<alias name="off" value="0"/>
</translation>
</cue>
</userio>
</control>
<control channel="13" event_type="Note On" control="22">
<userio event="click">
<cue deck_set="Default" deck_id="1" slot_id="0">
<translation action_on="any" behaviour="explicit"/>
</cue>
</userio>
<userio event="output">
<cue deck_set="Default" deck_id="1" slot_id="0">
<translation action_on="any">
<alias name="on" value="127"/>
<alias name="off" value="0"/>
</translation>
</cue>
</userio>
</control>
</midi>
DJ Fa2LA 5:17 PM - 30 July, 2017
Interesting idea dj dawn! Thanks for sharing the notes on the color LEDs, definitely good to know!
938MyDJ 10:24 PM - 30 July, 2017
I have something similar to this but on an F1.
I got it from an SDJ forum member too.

Maybe I will try to put these mappings together and see if I can use them in TT-less & CDJ-less situations.

Someone might ask... Why not just a controller?
No matter what kind of soundcard they put into controllers, PRO Mixers will always sound better.

Thanks for sharing!
DJ SYZER 11:06 PM - 6 October, 2018
Can someone help me out I want to know what's the xml info for the level/depth knob on the S9.
938MyDJ 9:53 PM - 7 October, 2018
Are you just looking for the midi channel?
Or is it a different information that you’re looking for?
DJ SYZER 10:05 PM - 7 October, 2018
The xml information that controls that parameter.
lindsaymar 12:28 AM - 25 May, 2019
I wish Serato would add some light color options into mapping mode. I don't want to f anything up playing with the .xml files, and such.