Accesso rapido:  

Forum: VirtualDJ Plugins

Topic: Elgato's Stream Deck integration
DJ HeyePRO InfinityMember since 2017
My goal was to integrate Elgato's Stream Deck and Virtual DJ.

I did not want to use the (integrated) Hotkey functionality inside Stream Deck.
Instead I wanted to control VDJ with MIDI commands.

For this to accomplish you need two additional programs:

1 - A virtual MIDI cable/driver
2 - A MIDI 'transmitter'

I have chosen the following programs for that:

1 - loopMIDI from Tobias Erichsen (
2 - Stream Deck MIDI plugin from from Trevliga Spel

All software is free for non commercial use.

Short installation instructions:

1 - Download/Install the Stream Deck software.
2 - Install the Midi plugin in Stream Deck
3 - Download/Install loopMIDI and create one MIDI port (remember the name for future reference, ex: LoopMidi1)
4 - Create a LoopMidi1 device 'driver' in the VDJ folder Devices (D:\Users\<username>\Documents\VirtualDJ\Devices)
Choose a free MIDI channel number.

<?xml version="1.0" encoding="UTF-8"?>
<device name="LoopMidi1" drivername="LoopMidi1" description="LoopMidi1" version="850" decks="0" author="XYZ" type="MIDI">
<button note="36" channel="13" name="LM_1"/>
<button note="37" channel="13" name="LM_2"/>
<button note="38" channel="13" name="LM_3"/>
<button note="39" channel="13" name="LM_4"/>
<button note="40" channel="13" name="LM_5"/>
<button note="41" channel="13" name="LM_6"/>
<button note="42" channel="13" name="LM_7"/>
<button note="43" channel="13" name="LM_8"/>

5 - Create a mapper file in the VDJ folder Mappers (D:\Users\<username>\Documents\VirtualDJ\Mappers)

<?xml version="1.0" encoding="UTF-8"?>
<mapper device="LoopMidi1" version="850" date="2020-08-08">
<map value="LM_1" action="deck 1 play" />
<map value="LM_2" action="deck 1 stop" />

6 - Create a Stream Deck Midi button (Note On/Off) with the following parameters:
Title: <any title>
Channel: 14
Key: 36[C2]
Velocity: 127
Button type: Hold
Midi Out port: loopmidi1

Explanation of the parameters:

Channel: 14 - MIDI channel
(strange thing happened with me, that it only responded on this channel 14
while the VDJ midi device file revers to channel 13. Maybe a bug?)

Key: 36[C2] - send note 36

Velocity: 127 - velocity value

Button type: Hold - (works best)

Midi out port: Loopmidi1 - midi device/port name configured in loopMIDI

7 - repeat step 6 and change only the Key parameter with 37[C#2/Db2]

That concludes this little tutorial.
Please add comments and/or suggestions for improvements.

Inviato Sat 08 Aug 20 @ 6:50 pm

Inviato Sat 08 Aug 20 @ 7:18 pm
Big shout out to DJ Heye for laying the foundation! I went ahead and populated a full Driver XML Template, Mapper Template, and 5 Profile Pages of baseline MIDI buttons in Elgato Stream Deck Profiles and then packaged them all up in this link for a free download.

Follow along the twenty minute video on how to make this happen with the resources I provide

Inviato Wed 25 Nov 20 @ 4:01 am

Inviato Wed 25 Nov 20 @ 5:53 pm
hey so its not a bug its a common misconception on how pc's count, and in programing 0 is a number not the absence of one so ...

when you
code in 0 you get out channel 1
code in 1 you get out channel 2
code in 13 and get out channel 14

hope that makes sense and wish every program just documented this little misconception better.

Inviato Wed 19 Jan 22 @ 5:42 pm
Hi guys.

I need help.

I bought X-keys XK-24 streaming deck instead of Elgato's, because of the price and recommendations -

Can you tell me how can I integrate this streaming deck with VirtualDJ?

Many thanks.

Inviato Fri 03 Jun 22 @ 7:39 am
NAWTBOYPRO InfinityMember since 2003
Hey guys. What are the advantages of using midi rather than just using the macros inside elgato software?

Inviato 11 minutes ago