Skip to main content

Serato

Keyboard Shortcuts

See also https://serato.com/latest/blog/17257/pro-tips-serato-dj-keyboard-shortcuts

Deck 1 / LEFT

Basically first row of letters plus half of the numeric keys.

KEY Action + alt
Left
Q Reverse Prev Track
W Play/Pause Next Track
E / R Pitch Adjust RWD / FF
T / Y Pitch Bend
U Censor
I TEMP-CUE
O LOOP-IN Prev Loop
P LOOP-OUT Next Loop
[ LOOP-ON/OFF Reloop
1 CUE 1 Auto Loop
2 CUE 2 Auto Loop
3 CUE 3 Auto Loop
4 CUE 4 Auto Loop
5 CUE 5

Deck 2 / RIGHT

Second row of letters plus second half of the numeric keys.

KEY Action + alt
Right
A Reverse Prev Track
S Play/Pause Next Track
D / F Pitch Adjust RWD / FF
G / H Pitch Bend
J Censor
K TEMP-CUE
L LOOP-IN Prev Loop
; LOOP-OUT Next Loop
' LOOP-ON/OFF Reloop
6 CUE 1 Auto Loop
7 CUE 2 Auto Loop
8 CUE 3 Auto Loop
9 CUE 4 Auto
0 CUE 5

Sampler

Third row of letters.

KEY Action
Z Sample 1
X Sample 2
C Sample 3
V Sample 4
B Sample 5
N Sample 6
M Sample 7
, Sample 8

Add alt modifier to stop a Sample. Add alt + cmd modifiers to load a Sample from Library.

Others

KEY Action
alt + Up/Down (While editing BPM) Double/Halve PBM
alt + Spacebar Beatgrid Edit Mode
/ Swap Tracks
cmd + shift + Left/Right Instant Double TODO: check that
cmd + Backspace Remove Track from Library
cmd + shift + Backspace Remove It Also from Disk
cmd + Z Undo Track Load
cmd + P Add track(s) to prepare panel
cmd + L Locate last loaded track (press again for other deck)
cmd + R Reveal track in Explorer (PC) or Finder (Mac)

MIDI Mapping

Example mapping play button on both decks

<midi app=" 1.9.10.5170">
    <control channel="1" event_type="Note On" control="28">
        <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="127"/>
                    <alias name="off" value="0"/>
                </translation>
            </play>
        </userio>
    </control>
    <control channel="1" event_type="Note On" control="26">
        <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="127"/>
                    <alias name="off" value="0"/>
                </translation>
            </play>
        </userio>
    </control>
</midi>

There is a top tag calles <midi>. Inside we define our mappings using the <control> tags.

Control Tag

Tag parameters define the MIDI message, like the channel, note or control change.

  • channel

    • Integer, starting from 1
  • event_type

    • "Note On"
    • "Control Change"
    • "Pitch Wheel"
  • data_type:

    • "Relative Binary Offset"
    • "Relative 2&apos;s Complement"
      • I could pseudo control trim gain knob with a quneo's rotary/jog, jog direction was doing + and - operations on the knob, no control on the knob position
    • "Absolute 7"
      • I could control trim gain knob with a quneo's vertical slider, including absolute position by pressing somewhere. No LED feedback.
  • reversed

    • set it to "true" if needed, omit otherwise

One message has an incoming action and/or outgoing reaction or feedback. This is defined by the inner tag <userio>, which has a parameter called event that takes 2 values: click for the action and output for the reaction or feedback.

Control.Userio Tag

Control.Userio.SDJCMD Tag

SDJCMD = Serato DJ CoMmanD, defines what Serato app will to when the control message passes

Control.Userio.SDJCMD.Translation Tag

Control.Userio.SDJCMD.Translation.Alias Tag