Info Midi map with Serato DJ


I'm a new user and i'm a newbie about the MIDI code and I'm trying to learn new things

Im a DJ and I use Serato DJ Pro as software.

I would like to midi map some functions to my mixer, but there is something that I've still not understood.

First think I would like to know if is possible to midi map a button to use it with "one click" for a function and a "double click" for a second function

Let me know if you can help and if you need more information about Serato, its midi code and the hardware I would like to midi map

Thanks for your help


Hi Tony, and welcome to the forum!


Indeed we can use different "gestures" like single tap, double tap, tap and hold to send different MIDI messages (or keystrokes).   I think the success of this will be largely dependant on what Serato DJ allows.  What mixer do you have?  I have  a Pioneer DDJ-SB3 and although I've been successful in MIDI mapping with other MIDI software, I've had troubles with Serato DJ primarily because:

1) Serato DJ seems to want a direct connection with the USB port and I have trouble using virtual MIDI ports with it.

2) Serato DJ seems to be a hybrid MIDI and HID USB port so I beleive some mappings are not MIDI. For instance I cannot control the LED's of Track-3 and Track-4 no matter what the DDJ-SB3 documentation says.

See the below post for an example of using gestures:


Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

hi! first of all thanks for your reply and your welcome. I\'m Italian, so i\'m sorry if I don\'t speak english very well

Let me say that I was searching to the entire internet, asking questions on forums to find information about midi map with Serato, but this is the best answer and information I had so far and I hope to find some solutions about what I would like to do and learning!

So about my question, I have a Pioneer DJM-S9 and I downloaded Bome just for checking the midi input commands, but then I realized that it could be very powerful. I\'m programming my custom midi map, looking for hidden commands and advanced stuff (with the limitations of Serato of course)

For now I would like just to understand if is possible to assign a \"double click\" function on a button that only has 1 midi channel. With the standard setting of Serato there is a button that make that and it\'s the \"Load\" button. If I press one time it loads the track in the deck, if I press it 2 times it duplicate the track to the other deck (instant doubles). the problem is that I don\'t understand how it works because the button has only one midi channel and it doesnt change when I press it 2 times. How is it possible ?



I'm not sure how Serato DJ interprets this but with gestures we can use a timer to count the taps and then delay the send until the timer has finished counting and send different MIDI messages depending on the tap count.

If you want I can post an example of a single button single and double tap that sends a different value depending on how many times you tap it (say within 500ms).

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:


Hi Tony,

Please find the attached example for using Note 0 on incoming MIDI CH 1 for gestures.

The output will be note 0 on then off on MIDI CH 1 for single tape, note 0 on then off on MIDI CH 2 for double tap and so forth (as fast as you can tap within 1/2 second).


Steve Caldwell
Bome Customer Care

Also available for paid consulting services:


ok. just one thing: how does the midi translator work with Serato ? I mean should I leave it open and configure something in Serato ?

about the midi command of Serato I could post a list of a MIDI commands that I've found and also an example of a standard midi mapping if it could help to better undesrtand how they work

Hi Tony,

I'm sorry, I can't help you on Serato DJ. I couldn't even get it to run reliably on my PC (the screen kept going blank).  Normally with any application, you set up Bome MIDI Translator to communicate with the attached MIDI controller and then use one of Bome MIDI Translator's virtual ports to communicate with the application.   Essentially putting Bome MIDI Translator Pro between your controller and your application.

The below tutorial should help show you how this is done:


Steve Caldwell
Bome Customer Care

Also available for paid consulting services:



thanks for your answer! I'll try as soon as I can.

Just one question: does the MIDI messages has the "double click" command for doing something like this. I refer to the "standard" general midi code. If yes, do you know which one is it ?



MIDI standard had no concept of double click however the receiver has the option to interpret incoming MIDI and handle it as they see fit. In this case, maybe the application is just looking for 2 note-on messages with the given note within a given time period to interpret it as something special.

ok. So, maybe is only something regarding the communication direct from the software and not a real midi command ? Do you think that there is no way for mapping something like this without using a midi translator ?

if I show you a list of midi input/output that I've found inside the source code of Serato, it could help ?



It probably wouldn’t help as Serato uses the USB port for both MIDI and HID device. If you put MT Pro between them, then the HID portion won’t work and in fact I think the USB will still try to interact with Serato directly. Now if you controller has a MIDI DIN interface, this could all change.

Maybe we can try. This is an example of midi code generated by setting Cue Button:

<control channel="12" event_type="Note On" control="35">
<userio event="click">
<cue_point deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="press" behaviour="explicit"/>
<userio event="output">
<cue_point deck_set="Default" deck_id="0" slot_id="0">
<translation action_on="any">
<alias name="on" value="127"/>
<alias name="off" value="0"/>


This are the MIDI parameters that I've found (in bold the ones I know):


cmp_value: "on" "off"
operator: "equal" "not equal"


userio event: "click"

userio event: "output"


translation action_on: "any" "press" "release" "rotate_clockwise" "rotate_counterclockwise" "hold"

behaviour: "toggle" "static" "multi_toggle" "decrement_wrapped" "increment_wrapped" "decrement" "increment"


"right_click" "ctrl_click" "ctrl_shift_click" "alt_click" "double_click"





About this list, I'm not sure if is something related to the MIDI Commands:

  • userio_context
  • multiextent_bit
  • field
  • denominator_field
  • data_field
  • report_id
  • report_length
  • send_priority
  • end_frequency
  • long_press_holding_time_ms
  • data_type_configuration
  • numerator_offset
  • force_output
  • zone
  • event_type
  • data_type
  • data_len_type
  • Aftertouch
  • Channel Pressure
  • Momentary

Well as I said if Serato is looking at the USB port from your controller than whatever we do with MT Pro probably will not work since Serato uses a hybrid USB port model and insists on direct connection. If for some miracle it accepts a MIDI DIN input (or converter from MIDI DIN), then maybe we would have a chance but I can't venture to guess how their code works. Have you checked with Serato?


my mixer does not have a DIN port.

I asked some information to Serato, but they say that they don\'t have the support for MIDI MAP, so they can not help me

I\'ve also asked on the official forum and searched something online, but there is nothing that can help me for the double click assignment (or advanced stuff)

About the midi I post, are all of them MIDI Messages that I could try to understand (even if it\'s not easy I think)?


I wish I could help but evidently although Serato uses MIDI controllers, they don’t seem to support any MIDI questions and the controllers they support are usually tightly integrated with the functions they choose to implement with only controller types that they implement. Consequently, I’ve never been successful using MT Pro with Serato DJ software. Again, I can’t even get it to run reliably on my Windows PC. I’ve opened tickets but never received resolution.

editing the midi code allows to customize a lot of stuff, more than the basic things.

I made an advanced midi map with the code that I discovered, but I would liketo do more, so for this reason I was trying to understand how the General MIDI Serato's codes work, especially with the things in the list that I still don't know.

I'm contacting Serato a lot of times, but they always answer late and they say that they can not help and I should try by myself. The problem is that it's not easy also because I can not find all the informations on the internet and there are not too many Users that cares about advanced stuff and programming, also in the official forum 


OK, unfortunately I have no experience with Serato’s internal workings and I’m pretty sure that MT Pro cannot help you in their case since they require exclusive direct access of the USB port.

Yes... I think I have just to keep trying and searching.

thanks for your help!