dj2020
2020-07-26 17:53:50
Hi,
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
Tony
Steve-Bome Forum Moderator
2020-07-26 19:34:43
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:
https://www.bomeloft.com/support/kb/double-tap-midi-input
Steve Caldwell
Bome Customer Care
Also available for paid consulting services: bome@sniz.biz
dj2020
2020-07-26 20:01:28
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 ?
thanks
Steve-Bome Forum Moderator
2020-07-26 20:52:14
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: bome@sniz.biz
Steve-Bome Forum Moderator
2020-07-26 21:47:27
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: bome@sniz.biz
Attachments:
dj2020
2020-07-26 22:08:29
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
Steve-Bome Forum Moderator
2020-07-27 01:03:58
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:
https://youtu.be/CCWEgckDbCk
Steve Caldwell
Bome Customer Care
Also available for paid consulting services: bome@sniz.biz
dj2020
2020-07-29 14:04:51
hi,
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 ?
thanks
Steve-Bome Forum Moderator
2020-07-29 16:38:32
comment
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.
dj2020
2020-07-29 18:12:45
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 ?
thanks
Steve-Bome Forum Moderator
2020-07-29 18:52:24
comment
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.
dj2020
2020-07-29 19:31:20
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"/>
</cue_point>
</userio>
<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"/>
</translation>
</cue_point>
</userio>
</control>
This are the MIDI parameters that I've found (in bold the ones I know):
MODIFIERS:
case
condition
cmp_value: "on" "off"
operator: "equal" "not equal"
INPUT/OUTUPUT
userio event: "click"
userio event: "output"
BUTTON TYPE EVENT:
translation action_on: "any" "press" "release" "rotate_clockwise" "rotate_counterclockwise" "hold"
behaviour: "toggle" "static" "multi_toggle" "decrement_wrapped" "increment_wrapped" "decrement" "increment"
UNKNOWN COMMANDS:
"right_click" "ctrl_click" "ctrl_shift_click" "alt_click" "double_click"
change
focus
exit
enter
populate
message
can_be_modifier
assign
alias
search
relative
explicit_on_down
multi_toggle_on_down
toggle_on_down
static_on_down
flashing
range
curve
color_table
text_encoding
Latin1
text_length
begin
unit
linear
squared
reverse_ease_in
interval
in_min
in_max
out_min
out_max
skip_on_cycle
float
int
bi_float
string
scalar
on_off
rgb
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
Steve-Bome Forum Moderator
2020-07-29 19:43:55
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?
dj2020
2020-07-29 20:09:55
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)?
thanks
Steve-Bome Forum Moderator
2020-07-29 20:42:01
comment
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.
dj2020
2020-07-29 21:07:17
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
Steve-Bome Forum Moderator
2020-07-29 21:46:41
comment
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.
dj2020
2020-07-29 21:53:25
Yes... I think I have just to keep trying and searching.
thanks for your help!