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 | | | Load Track | 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 | | | Load Track | 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