I have a Hercules DJControl Instinct, and I wish to change the mapping. I know it is one of the pre-installed controlers, but I wish to add my own definition and mapping xml files because the pre-installed definition file dosn't map all of the notes.
Someone please help me ! I can't get VDJ 2023 pro licence, to recognise my files.
Someone please help me ! I can't get VDJ 2023 pro licence, to recognise my files.
Posté Mon 05 Jun 23 @ 10:36 pm
What Midi Notes/CC messages are not part of the default definition ?
I took a look at the definition , compared with Hercules MIDI Table and probably missing 2 keys..
<button note="0x40" name="HP_VOL-"/>
<button note="0x41" name="HP_VOL+"/>
Is there more ?
If you have created your own definition file, you need to rename it as force-WhateverName.xml to override the hardcoded one.
I took a look at the definition , compared with Hercules MIDI Table and probably missing 2 keys..
<button note="0x40" name="HP_VOL-"/>
<button note="0x41" name="HP_VOL+"/>
Is there more ?
If you have created your own definition file, you need to rename it as force-WhateverName.xml to override the hardcoded one.
Posté Tue 06 Jun 23 @ 12:22 am
Thank you so much for your help. Yes these are the two keys I wish to map. I'm very new to programing and to xml, do you mind having a look at my definition file and point out where I'm going wrong please.
<? xml version="1.0" encoding="UTF-8"?>
<device name = "DJCINSTINCT" author = "Hercules" description = "force-Hercules Djcontrol Instinct" version = "850" type = "MIDI" vid = "0x06F8" pid = "0xB111" decks = "2" padColumns = "4" padRows = "2" padSides = "2" >
<audio description = "DJCINSTINCT" input = "1" output = "2" mixer = "yes" mic = "no" vid = "0x06F8" pid = "0xB111" sysexid="F0 7E 00 06 02 00 01 4E 02 00 0C 00 01 00 00 00 F" /> </audio>
<button note = "0x16" name = "PLAY" deck = "1" channel = "1" />
<button note = "0x30" name = "PLAY" deck = "2" channel = "1" />
<button note = "0x15" name = "CUE" deck = "1" channel = "1" />
<button note = "0x2F" name = "CUE" deck = "2" channel = "1" />
<button note = "0x0D" name = "CBUT1" deck = "1" channel = "1" />
<button note = "0x09" name = "LBUT1" deck = "1" channel = "1" />
<button note = "0x01" name = "EBUT1" deck = "1" channel = "1" />
<button note = "0x05" name = "SBUT1" deck = "1" channel = "1" />
<button note = "0x0E" name = "CBUT2" deck = "1" channel = "1" />
<button note = "0x0A" name = "LBUT2" deck = "1" channel = "1" />
<button note = "0x02" name = "EBUT2" deck = "1" channel = "1" />
<button note = "0x06" name = "SBUT2" deck = "1" channel = "1" />
<button note = "0x0F" name = "CBUT3" deck = "1" channel = "1" />
<button note = "0x0B" name = "LBUT3" deck = "1" channel = "1" />
<button note = "0x03" name = "EBUT3" deck = "1" channel = "1" />
<button note = "0x07" name = "SBUT3" deck = "1" channel = "1" />
<button note = "0x10" name = "CBUT4" deck = "1" channel = "1" />
<button note = "0x0C" name = "LBUT4" deck = "1" channel = "1" />
<button note = "0x04" name = "EBUT4" deck = "1" channel = "1" />
<button note = "0x08" name = "SBUT4" deck = "1" channel = "1" />
<button note = "0x27" name = "CBUT1" deck = "2" channel = "1" />
<button note = "0x23" name = "LBUT1" deck = "2" channel = "1" />
<button note = "0x1B" name = "EBUT1" deck = "2" channel = "1" />
<button note = "0x1F" name = "SBUT1" deck = "2" channel = "1" />
<button note = "0x28" name = "CBUT2" deck = "2" channel = "1" />
<button note = "0x24" name = "LBUT2" deck = "2" channel = "1" />
<button note = "0x1C" name = "EBUT2" deck = "2" channel = "1" />
<button note = "0x20" name = "SBUT2" deck = "2" channel = "1" />
<button note = "0x29" name = "CBUT3" deck = "2" channel = "1" />
<button note = "0x2F" name = "LBUT3" deck = "2" channel = "1" />
<button note = "0x1D" name = "EBUT3" deck = "2" channel = "1" />
<button note = "0x21" name = "SBUT3" deck = "2" channel = "1" />
<button note = "0x2A" name = "CBUT4" deck = "2" channel = "1" />
<button note = "0x25" name = "LBUT4" deck = "2" channel = "1" />
<button note = "0x1E" name = "EBUT4" deck = "2" channel = "1" />
<button note = "0x22" name = "SBUT4" deck = "2" channel = "1" />
<button note = "0x13" name = "TRACK-" deck = "1" channel = "1" />
<button note = "0x14" name = "TRACK+" deck = "1" channel = "1" />
<button note = "0x17" name = "SYNC" deck = "1" channel = "1" />
<button note = "0x18" name = "PFL" deck = "1" channel = "1" />
<button note = "0x19" name = "L0AD" deck = "1" channel = "1" />
<button note = "0x1A" name = "TOUCH" deck = "1" channel = "1" />
<button note = "0x2D" name = "TRACK-" deck = "2" channel = "1" />
<button note = "0x2E" name = "TRACK+" deck = "2" channel = "1" />
<button note = "0x31" name = "SYNC" deck = "2" channel = "1" />
<button note = "0x32" name = "PFL" deck = "2" channel = "1" />
<button note = "0x33" name = "L0AD" deck = "2" channel = "1" />
<button note = "0x34" name = "TOUCH" deck = "2" channel = "1" />
<button note = "0x36" name = "UP" channel = "1" />
<button note = "0x35" name = "SCRATCH" channel = "1" />
<button note = "0x37" name = "DOWN" channel = "1" />
<button note = "0x38" name = "FILES" channel = "1" />
<button note = "0x39" name = "FOLDER" channel = "1" />
<button note = "0x51" name = "PHONES+" channel = "1" />
<button note = "0x50" name = "PHONES-" channel = "1" />
<button note = "0x12" name = "PITCH+" deck = "1" channel = "1" />
<button note = "0x11" name = "PITCH-" deck = "1" channel = "1" />
<button note = "0x2C" name = "PITCH+" deck = "2" channel = "1" />
<button note = "0x2B" name = "PITCH-" deck = "2" channel = "1" />
<slider note = "0x34" word = "2" endian = "little" min = "127" zero = "64"max = "0" name = "PITCH" deck = "1"/>
<slider note = "0x35" word = "2" endian = "little" min = "127" zero = "64"max = "0" name = "PITCH" deck = "2"/>
<slider note = "0x36" word = "2" endian = "little" min = "0%" max = "100%" name = "VOLUME" deck = "1"/>
<slider note = "0x3B" word = "2" endian = "little" min = "0%" max = "100%" name = "VOLUME" deck = "2"/>
<slider note = "0x3A" word = "2" endian = "little" min = "0" zero = "64"max = "127" name = "XFADER" />
<jog note = "0x31" zero = "0x40" full = "128" name = "JOG" deck = "2" />
<jog note = "0x30" zero = "0x40" full = "128" name = "JOG" deck = "1" />
<slider note = "0x37" word = "2" endian = "little" min = "0" zero = "64"max = "127" name = "EQ_HIGH" deck = "1"/>
<slider note = "0x3C" word = "2" endian = "little" min = "0" zero = "64"max = "127" name = "EQ_HIGH" deck = "2"/>
<slider note = "0x38" word = "2" endian = "little" min = "0" zero = "64"max = "127" name = "EQ_MID" deck = "1"/>
<slider note = "0x3D" word = "2" endian = "little" min = "0" zero = "64"max = "127" name = "EQ_MID" deck = "2"/>
<slider note = "0x39" word = "2" endian = "little" min = "0" zero = "64"max = "127" name = "EQ_LOW" deck = "1"/>
<slider note = "0x3E" word = "2" endian = "little" min = "0" zero = "64"max = "127" name = "EQ_LOW" deck = "2"/>
<led note = "0x16" VALUE = "0" OFF = "127" name = "LED_PLAY" default = "PLAY" />
<led note = "0x30" VALUE = "0" OFF = "127" name = "LED_PLAY" default = "PLAY" />
<led note = "0x15" VALUE = "0" OFF = "127" name = "LED_CUE" default = "CUE" />
<led note = "0x2F" VALUE = "0" OFF = "127" name = "LED_CUE" default = "CUE" />
<led note = "0x18" VALUE = "0" OFF = "127" name = "LED_PFL" default = "PFL" />
<led note = "0x32" VALUE = "0" OFF = "127" name = "LED_PFL" default = "PFL" />
<led note = "0x17" VALUE = "0" OFF = "127" name = "LED_SYNC" default = "SYNC" />
<led note = "0x31" VALUE = "0" OFF = "127" name = "LED_SYNC" default = "SYNC" />
<led note = "0x0D" name = "LED_CBUT1" VALUE = "0" OFF = "127" />
<led note = "0x09" name = "LED_LBUT1" VALUE = "0" OFF = "127" />
<led note = "0x01" name = "LED_EBUT1" VALUE = "0" OFF = "127" />
<led note = "0x05" name = "LED_SBUT1" VALUE = "0" OFF = "127" />
<led note = "0x0E" name = "LED_CBUT2" VALUE = "0" OFF = "127" />
<led note = "0x0A" name = "LED_LBUT2" VALUE = "0" OFF = "127" />
<led note = "0x02" name = "LED_EBUT2" VALUE = "0" OFF = "127" />
<led note = "0x06" name = "LED_SBUT2" VALUE = "0" OFF = "127" />
<led note = "0x0F" name = "LED_CBUT3" VALUE = "0" OFF = "127" />
<led note = "0x0B" name = "LED_LBUT3" VALUE = "0" OFF = "127" />
<led note = "0x03" name = "LED_EBUT3" VALUE = "0" OFF = "127" />
<led note = "0x07" name = "LED_SBUT3" VALUE = "0" OFF = "127" />
<led note = "0x10" name = "LED_CBUT4" VALUE = "0" OFF = "127" />
<led note = "0x0C" name = "LED_LBUT4" VALUE = "0" OFF = "127" />
<led note = "0x04" name = "LED_EBUT4" VALUE = "0" OFF = "127" />
<led note = "0x08" name = "LED_SBUT4" VALUE = "0" OFF = "127" />
<led note = "0x27" name = "LED_CBUT1" VALUE = "0" OFF = "127" />
<led note = "0x23" name = "LED_LBUT1" VALUE = "0" OFF = "127" />
<led note = "0x1B" name = "LED_EBUT1" VALUE = "0" OFF = "127" />
<led note = "0x1F" name = "LED_SBUT1" VALUE = "0" OFF = "127" />
<led note = "0x28" name = "LED_CBUT2" VALUE = "0" OFF = "127" />
<led note = "0x24" name = "LED_LBUT2" VALUE = "0" OFF = "127" />
<led note = "0x1C" name = "LED_EBUT2" VALUE = "0" OFF = "127" />
<led note = "0x20" name = "LED_SBUT2" VALUE = "0" OFF = "127" />
<led note = "0x29" name = "LED_CBUT3" VALUE = "0" OFF = "127" />
<led note = "0x2F" name = "LED_LBUT3" VALUE = "0" OFF = "127" />
<led note = "0x1D" name = "LED_EBUT3" VALUE = "0" OFF = "127" />
<led note = "0x21" name = "LED_SBUT3" VALUE = "0" OFF = "127" />
<led note = "0x2A" name = "LED_CBUT4" VALUE = "0" OFF = "127" />
<led note = "0x25" name = "LED_LBUT4" VALUE = "0" OFF = "127" />
<led note = "0x1E" name = "LED_EBUT4" VALUE = "0" OFF = "127" />
<led note = "0x22" name = "LED_SBUT4" VALUE = "0" OFF = "127" />
</device>
Thank you so much !
<? xml version="1.0" encoding="UTF-8"?>
<device name = "DJCINSTINCT" author = "Hercules" description = "force-Hercules Djcontrol Instinct" version = "850" type = "MIDI" vid = "0x06F8" pid = "0xB111" decks = "2" padColumns = "4" padRows = "2" padSides = "2" >
<audio description = "DJCINSTINCT" input = "1" output = "2" mixer = "yes" mic = "no" vid = "0x06F8" pid = "0xB111" sysexid="F0 7E 00 06 02 00 01 4E 02 00 0C 00 01 00 00 00 F" /> </audio>
<button note = "0x16" name = "PLAY" deck = "1" channel = "1" />
<button note = "0x30" name = "PLAY" deck = "2" channel = "1" />
<button note = "0x15" name = "CUE" deck = "1" channel = "1" />
<button note = "0x2F" name = "CUE" deck = "2" channel = "1" />
<button note = "0x0D" name = "CBUT1" deck = "1" channel = "1" />
<button note = "0x09" name = "LBUT1" deck = "1" channel = "1" />
<button note = "0x01" name = "EBUT1" deck = "1" channel = "1" />
<button note = "0x05" name = "SBUT1" deck = "1" channel = "1" />
<button note = "0x0E" name = "CBUT2" deck = "1" channel = "1" />
<button note = "0x0A" name = "LBUT2" deck = "1" channel = "1" />
<button note = "0x02" name = "EBUT2" deck = "1" channel = "1" />
<button note = "0x06" name = "SBUT2" deck = "1" channel = "1" />
<button note = "0x0F" name = "CBUT3" deck = "1" channel = "1" />
<button note = "0x0B" name = "LBUT3" deck = "1" channel = "1" />
<button note = "0x03" name = "EBUT3" deck = "1" channel = "1" />
<button note = "0x07" name = "SBUT3" deck = "1" channel = "1" />
<button note = "0x10" name = "CBUT4" deck = "1" channel = "1" />
<button note = "0x0C" name = "LBUT4" deck = "1" channel = "1" />
<button note = "0x04" name = "EBUT4" deck = "1" channel = "1" />
<button note = "0x08" name = "SBUT4" deck = "1" channel = "1" />
<button note = "0x27" name = "CBUT1" deck = "2" channel = "1" />
<button note = "0x23" name = "LBUT1" deck = "2" channel = "1" />
<button note = "0x1B" name = "EBUT1" deck = "2" channel = "1" />
<button note = "0x1F" name = "SBUT1" deck = "2" channel = "1" />
<button note = "0x28" name = "CBUT2" deck = "2" channel = "1" />
<button note = "0x24" name = "LBUT2" deck = "2" channel = "1" />
<button note = "0x1C" name = "EBUT2" deck = "2" channel = "1" />
<button note = "0x20" name = "SBUT2" deck = "2" channel = "1" />
<button note = "0x29" name = "CBUT3" deck = "2" channel = "1" />
<button note = "0x2F" name = "LBUT3" deck = "2" channel = "1" />
<button note = "0x1D" name = "EBUT3" deck = "2" channel = "1" />
<button note = "0x21" name = "SBUT3" deck = "2" channel = "1" />
<button note = "0x2A" name = "CBUT4" deck = "2" channel = "1" />
<button note = "0x25" name = "LBUT4" deck = "2" channel = "1" />
<button note = "0x1E" name = "EBUT4" deck = "2" channel = "1" />
<button note = "0x22" name = "SBUT4" deck = "2" channel = "1" />
<button note = "0x13" name = "TRACK-" deck = "1" channel = "1" />
<button note = "0x14" name = "TRACK+" deck = "1" channel = "1" />
<button note = "0x17" name = "SYNC" deck = "1" channel = "1" />
<button note = "0x18" name = "PFL" deck = "1" channel = "1" />
<button note = "0x19" name = "L0AD" deck = "1" channel = "1" />
<button note = "0x1A" name = "TOUCH" deck = "1" channel = "1" />
<button note = "0x2D" name = "TRACK-" deck = "2" channel = "1" />
<button note = "0x2E" name = "TRACK+" deck = "2" channel = "1" />
<button note = "0x31" name = "SYNC" deck = "2" channel = "1" />
<button note = "0x32" name = "PFL" deck = "2" channel = "1" />
<button note = "0x33" name = "L0AD" deck = "2" channel = "1" />
<button note = "0x34" name = "TOUCH" deck = "2" channel = "1" />
<button note = "0x36" name = "UP" channel = "1" />
<button note = "0x35" name = "SCRATCH" channel = "1" />
<button note = "0x37" name = "DOWN" channel = "1" />
<button note = "0x38" name = "FILES" channel = "1" />
<button note = "0x39" name = "FOLDER" channel = "1" />
<button note = "0x51" name = "PHONES+" channel = "1" />
<button note = "0x50" name = "PHONES-" channel = "1" />
<button note = "0x12" name = "PITCH+" deck = "1" channel = "1" />
<button note = "0x11" name = "PITCH-" deck = "1" channel = "1" />
<button note = "0x2C" name = "PITCH+" deck = "2" channel = "1" />
<button note = "0x2B" name = "PITCH-" deck = "2" channel = "1" />
<slider note = "0x34" word = "2" endian = "little" min = "127" zero = "64"max = "0" name = "PITCH" deck = "1"/>
<slider note = "0x35" word = "2" endian = "little" min = "127" zero = "64"max = "0" name = "PITCH" deck = "2"/>
<slider note = "0x36" word = "2" endian = "little" min = "0%" max = "100%" name = "VOLUME" deck = "1"/>
<slider note = "0x3B" word = "2" endian = "little" min = "0%" max = "100%" name = "VOLUME" deck = "2"/>
<slider note = "0x3A" word = "2" endian = "little" min = "0" zero = "64"max = "127" name = "XFADER" />
<jog note = "0x31" zero = "0x40" full = "128" name = "JOG" deck = "2" />
<jog note = "0x30" zero = "0x40" full = "128" name = "JOG" deck = "1" />
<slider note = "0x37" word = "2" endian = "little" min = "0" zero = "64"max = "127" name = "EQ_HIGH" deck = "1"/>
<slider note = "0x3C" word = "2" endian = "little" min = "0" zero = "64"max = "127" name = "EQ_HIGH" deck = "2"/>
<slider note = "0x38" word = "2" endian = "little" min = "0" zero = "64"max = "127" name = "EQ_MID" deck = "1"/>
<slider note = "0x3D" word = "2" endian = "little" min = "0" zero = "64"max = "127" name = "EQ_MID" deck = "2"/>
<slider note = "0x39" word = "2" endian = "little" min = "0" zero = "64"max = "127" name = "EQ_LOW" deck = "1"/>
<slider note = "0x3E" word = "2" endian = "little" min = "0" zero = "64"max = "127" name = "EQ_LOW" deck = "2"/>
<led note = "0x16" VALUE = "0" OFF = "127" name = "LED_PLAY" default = "PLAY" />
<led note = "0x30" VALUE = "0" OFF = "127" name = "LED_PLAY" default = "PLAY" />
<led note = "0x15" VALUE = "0" OFF = "127" name = "LED_CUE" default = "CUE" />
<led note = "0x2F" VALUE = "0" OFF = "127" name = "LED_CUE" default = "CUE" />
<led note = "0x18" VALUE = "0" OFF = "127" name = "LED_PFL" default = "PFL" />
<led note = "0x32" VALUE = "0" OFF = "127" name = "LED_PFL" default = "PFL" />
<led note = "0x17" VALUE = "0" OFF = "127" name = "LED_SYNC" default = "SYNC" />
<led note = "0x31" VALUE = "0" OFF = "127" name = "LED_SYNC" default = "SYNC" />
<led note = "0x0D" name = "LED_CBUT1" VALUE = "0" OFF = "127" />
<led note = "0x09" name = "LED_LBUT1" VALUE = "0" OFF = "127" />
<led note = "0x01" name = "LED_EBUT1" VALUE = "0" OFF = "127" />
<led note = "0x05" name = "LED_SBUT1" VALUE = "0" OFF = "127" />
<led note = "0x0E" name = "LED_CBUT2" VALUE = "0" OFF = "127" />
<led note = "0x0A" name = "LED_LBUT2" VALUE = "0" OFF = "127" />
<led note = "0x02" name = "LED_EBUT2" VALUE = "0" OFF = "127" />
<led note = "0x06" name = "LED_SBUT2" VALUE = "0" OFF = "127" />
<led note = "0x0F" name = "LED_CBUT3" VALUE = "0" OFF = "127" />
<led note = "0x0B" name = "LED_LBUT3" VALUE = "0" OFF = "127" />
<led note = "0x03" name = "LED_EBUT3" VALUE = "0" OFF = "127" />
<led note = "0x07" name = "LED_SBUT3" VALUE = "0" OFF = "127" />
<led note = "0x10" name = "LED_CBUT4" VALUE = "0" OFF = "127" />
<led note = "0x0C" name = "LED_LBUT4" VALUE = "0" OFF = "127" />
<led note = "0x04" name = "LED_EBUT4" VALUE = "0" OFF = "127" />
<led note = "0x08" name = "LED_SBUT4" VALUE = "0" OFF = "127" />
<led note = "0x27" name = "LED_CBUT1" VALUE = "0" OFF = "127" />
<led note = "0x23" name = "LED_LBUT1" VALUE = "0" OFF = "127" />
<led note = "0x1B" name = "LED_EBUT1" VALUE = "0" OFF = "127" />
<led note = "0x1F" name = "LED_SBUT1" VALUE = "0" OFF = "127" />
<led note = "0x28" name = "LED_CBUT2" VALUE = "0" OFF = "127" />
<led note = "0x24" name = "LED_LBUT2" VALUE = "0" OFF = "127" />
<led note = "0x1C" name = "LED_EBUT2" VALUE = "0" OFF = "127" />
<led note = "0x20" name = "LED_SBUT2" VALUE = "0" OFF = "127" />
<led note = "0x29" name = "LED_CBUT3" VALUE = "0" OFF = "127" />
<led note = "0x2F" name = "LED_LBUT3" VALUE = "0" OFF = "127" />
<led note = "0x1D" name = "LED_EBUT3" VALUE = "0" OFF = "127" />
<led note = "0x21" name = "LED_SBUT3" VALUE = "0" OFF = "127" />
<led note = "0x2A" name = "LED_CBUT4" VALUE = "0" OFF = "127" />
<led note = "0x25" name = "LED_LBUT4" VALUE = "0" OFF = "127" />
<led note = "0x1E" name = "LED_EBUT4" VALUE = "0" OFF = "127" />
<led note = "0x22" name = "LED_SBUT4" VALUE = "0" OFF = "127" />
</device>
Thank you so much !
Posté Tue 06 Jun 23 @ 4:43 pm
For your custom definition to work, you need to rename the definition file as force-WhateverName.xml, not the description="" inside the xml.
If still not working, then perhaps the file is not in the right place. Needs to be inside VDJHomeFolder/Devices folder.
The HomeFolder of VirtualDJ can be in 2 different places depending on the date of VirtualDJ installation.
the easiest way to find it, is to open VirtualDJ, goto OPTIONS tab, then click on the small cog-icon you will find at the bottom-right corner of the window.
Also, in your xml, the sysexid is part of the <device> node and not the <audio> and needs to be trimmed from spaces, but probably not needed at all if it properly detects the VID/PID of the device, so try removing it
If still not working, then perhaps the file is not in the right place. Needs to be inside VDJHomeFolder/Devices folder.
The HomeFolder of VirtualDJ can be in 2 different places depending on the date of VirtualDJ installation.
the easiest way to find it, is to open VirtualDJ, goto OPTIONS tab, then click on the small cog-icon you will find at the bottom-right corner of the window.
Also, in your xml, the sysexid is part of the <device> node and not the <audio> and needs to be trimmed from spaces, but probably not needed at all if it properly detects the VID/PID of the device, so try removing it
Posté Wed 07 Jun 23 @ 7:10 pm
On another note,
We will add the PHONES -/+ keys in next update, but i have the feeling that the buttons should already work, meaning that probably they perform in hardware and manipulate the Volume of the Headphones output without being mapped. Can you check for us please ?
We will add the PHONES -/+ keys in next update, but i have the feeling that the buttons should already work, meaning that probably they perform in hardware and manipulate the Volume of the Headphones output without being mapped. Can you check for us please ?
Posté Wed 07 Jun 23 @ 7:17 pm
And probably you need channel="0" not channel="1" for all of your keys.
Posté Wed 07 Jun 23 @ 7:20 pm