so I am using a Vestax VFX-1 controller with VirtualDJ 2023 (build b7921). The unit is correctly recognized and all buttons/knobs work for input. However, LED feedback does not work at all in VirtualDJ.
I confirmed that the LEDs function properly in Serato ITCH, and I also tested directly with MIDI-OX. The VFX-1 responds to simple Note On/Off messages on Channel 2, Note 104 (0x68):
LED ON → 0x91 0x68 0x7F
LED OFF → 0x91 0x68 0x00
When sending these messages outside of VirtualDJ, the LEDs light up correctly.
Unfortunately, the native definition built into VirtualDJ for the VFX-1 does not send any LED output, and attempts to override with a custom XML device definition are ignored (likely because the device is hard-coded internally as a native controller). As a result, there is no way to drive the LEDs from VirtualDJ mappings.
Could you please update the VFX-1 native definition to include proper <outputs> so that VirtualDJ can send NoteOn/NoteOff feedback to the LEDs? Even just exposing the ability to send raw MIDI output (like other controllers) would solve this.
I am happy to test any beta build or provide additional MIDI monitoring logs if needed.
this would make the VFX-1 fully usable in VirtualDJ again.
I confirmed that the LEDs function properly in Serato ITCH, and I also tested directly with MIDI-OX. The VFX-1 responds to simple Note On/Off messages on Channel 2, Note 104 (0x68):
LED ON → 0x91 0x68 0x7F
LED OFF → 0x91 0x68 0x00
When sending these messages outside of VirtualDJ, the LEDs light up correctly.
Unfortunately, the native definition built into VirtualDJ for the VFX-1 does not send any LED output, and attempts to override with a custom XML device definition are ignored (likely because the device is hard-coded internally as a native controller). As a result, there is no way to drive the LEDs from VirtualDJ mappings.
Could you please update the VFX-1 native definition to include proper <outputs> so that VirtualDJ can send NoteOn/NoteOff feedback to the LEDs? Even just exposing the ability to send raw MIDI output (like other controllers) would solve this.
I am happy to test any beta build or provide additional MIDI monitoring logs if needed.
this would make the VFX-1 fully usable in VirtualDJ again.
Posted Fri 03 Oct 25 @ 5:26 pm
The LEDs are properly defined in VirtualDJ incl the Note 0x68 you mentioned above.
However, the 6 defined leds should be on MIDI Channel 1 (90 xx) for VDJ and not 2 (91 xx) as mentioned.
Is there any chance you have changed the default (?) MIDI channel of the device ?
We dont currently have the device in hands to check, searched Interent to see if there is a way/app to change MIDI Channel, but pretty sure as an owner you should know better - just a heads up here.
However, the 6 defined leds should be on MIDI Channel 1 (90 xx) for VDJ and not 2 (91 xx) as mentioned.
Is there any chance you have changed the default (?) MIDI channel of the device ?
We dont currently have the device in hands to check, searched Interent to see if there is a way/app to change MIDI Channel, but pretty sure as an owner you should know better - just a heads up here.
Posted Sat 04 Oct 25 @ 1:34 am
Thanks for clarifying about the LEDs being defined on Channel 1 (0x90). I’ve already tested my VFX-1 on both Channel 1 and Channel 2 in the XML definition (channel="1" and channel="2") and unfortunately VirtualDJ still doesn’t register any input from the device.
The hardware is definitely outputting MIDI — I’ve confirmed with MIDI-OX / MIDIView that it’s sending messages like 91 68 7F (Note On, Channel 2). So the controller itself is working.
At this point I’m wondering if VirtualDJ is ignoring the inputs because of the way the device is defined, or if the built-in definition is conflicting with my custom one. Do you know if the VFX-1 has any hidden way to force the base MIDI channel, or if VirtualDJ is strict about sysexid matching when detecting the device?
Any advice on how to force VirtualDJ to listen to raw note/CC input from the VFX-1 (regardless of channel) would really help.
The hardware is definitely outputting MIDI — I’ve confirmed with MIDI-OX / MIDIView that it’s sending messages like 91 68 7F (Note On, Channel 2). So the controller itself is working.
At this point I’m wondering if VirtualDJ is ignoring the inputs because of the way the device is defined, or if the built-in definition is conflicting with my custom one. Do you know if the VFX-1 has any hidden way to force the base MIDI channel, or if VirtualDJ is strict about sysexid matching when detecting the device?
Any advice on how to force VirtualDJ to listen to raw note/CC input from the VFX-1 (regardless of channel) would really help.
Posted Sat 04 Oct 25 @ 5:04 pm
<?xml version="800" encoding="UTF-8"?>
<device name="VFX1" author="Googie" version="800" type="MIDI" description="Vestax VFX-1 Fixed">
<hardware>
<vendor id="0x1AA1"/>
<product id="0x0110"/>
<sysexid id="F07E0106020040021001000001010100F7"/>
</hardware>
<button note="0x60" name="FX_SELECT1" channel="2"/>
<button note="0x61" name="FX_SELECT2" channel="2"/>
<button note="0x62" name="FX_SELECT3" channel="2"/>
<button note="0x63" name="FX_SELECT4" channel="2"/>
<button note="0x64" name="FX_SELECT5" channel="2"/>
<button note="0x65" name="FX_SELECT6" channel="2"/>
<button note="0x66" name="FX_SELECT7" channel="2"/>
<button note="0x67" name="FX_SELECT8" channel="2"/>
<button note="0x67" name="FX_SELECT9" channel="2"/>
<button note="0x67" name="FX_SELECT10" channel="2"/>
<button note="0x67" name="FX_SELECT11" channel="2"/>
<button note="0x67" name="FX_SELECT12" channel="2"/>
<button note="0x68" name="ON_OFF" channel="2"/>
<button note="0x50" name="SAMPLE_PLAY" channel="2"/>
<button note="0x51" name="SAMPLE_REC" channel="2"/>
<button note="0x52" name="SAMPLE_LOAD" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_0" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_10" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_20" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_30" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_40" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_50" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_60" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_70" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_80" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_90" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_100" channel="2"/>
<button note="0x53" name="TAP" channel="2"/>
<slider cc="0x10" name="FX_MIX1" channel="2"/>
<slider cc="0x11" name="FX_MIX2" channel="2"/>
<slider cc="0x12" name="FX_PARAM" channel="2"/>
</device>
here is the definition file i was able to create and that is able to be read in virtual dj and identify the correct controller, i don't get any form of input from the controller when using this mapping.. this was supposed to be a start to get the LEDs to work but getting the definition file to work in the first place is one of the many steps to get this controller fully working with virtual dj ~
<device name="VFX1" author="Googie" version="800" type="MIDI" description="Vestax VFX-1 Fixed">
<hardware>
<vendor id="0x1AA1"/>
<product id="0x0110"/>
<sysexid id="F07E0106020040021001000001010100F7"/>
</hardware>
<button note="0x60" name="FX_SELECT1" channel="2"/>
<button note="0x61" name="FX_SELECT2" channel="2"/>
<button note="0x62" name="FX_SELECT3" channel="2"/>
<button note="0x63" name="FX_SELECT4" channel="2"/>
<button note="0x64" name="FX_SELECT5" channel="2"/>
<button note="0x65" name="FX_SELECT6" channel="2"/>
<button note="0x66" name="FX_SELECT7" channel="2"/>
<button note="0x67" name="FX_SELECT8" channel="2"/>
<button note="0x67" name="FX_SELECT9" channel="2"/>
<button note="0x67" name="FX_SELECT10" channel="2"/>
<button note="0x67" name="FX_SELECT11" channel="2"/>
<button note="0x67" name="FX_SELECT12" channel="2"/>
<button note="0x68" name="ON_OFF" channel="2"/>
<button note="0x50" name="SAMPLE_PLAY" channel="2"/>
<button note="0x51" name="SAMPLE_REC" channel="2"/>
<button note="0x52" name="SAMPLE_LOAD" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_0" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_10" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_20" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_30" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_40" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_50" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_60" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_70" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_80" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_90" channel="2"/>
<button note="0x50" name="SAMPLE_VOL_100" channel="2"/>
<button note="0x53" name="TAP" channel="2"/>
<slider cc="0x10" name="FX_MIX1" channel="2"/>
<slider cc="0x11" name="FX_MIX2" channel="2"/>
<slider cc="0x12" name="FX_PARAM" channel="2"/>
</device>
here is the definition file i was able to create and that is able to be read in virtual dj and identify the correct controller, i don't get any form of input from the controller when using this mapping.. this was supposed to be a start to get the LEDs to work but getting the definition file to work in the first place is one of the many steps to get this controller fully working with virtual dj ~
Posted Sat 04 Oct 25 @ 5:07 pm
again thank you for the clarification about the LEDs being defined on Channel 1. I’ve double-checked with MIDI-OX and my VFX-1 both sends and responds on Channel 2 (0x91, not 0x90). That’s why the LEDs light in Serato but not in VirtualDJ.
I’ve already tried custom definitions forcing channel="1" and channel="2", with and without sysexid, but VirtualDJ still doesn’t send LED feedback. This suggests the built-in VFX-1 definition is hardcoded for Channel 1 while the hardware is listening on Channel 2.
Could you please confirm whether the native definition can be updated so the LED outputs are sent on Channel 2? According to the ControllerDefinitionMIDI spec (https://virtualdj.com/wiki/ControllerDefinitionMIDI) this should just mean adjusting the <button … value="0x7F" off="0x00"> definitions to the correct channel.
Happy to test if you can provide a patched definition — I can reproduce the issue consistently.
I’ve already tried custom definitions forcing channel="1" and channel="2", with and without sysexid, but VirtualDJ still doesn’t send LED feedback. This suggests the built-in VFX-1 definition is hardcoded for Channel 1 while the hardware is listening on Channel 2.
Could you please confirm whether the native definition can be updated so the LED outputs are sent on Channel 2? According to the ControllerDefinitionMIDI spec (https://virtualdj.com/wiki/ControllerDefinitionMIDI) this should just mean adjusting the <button … value="0x7F" off="0x00"> definitions to the correct channel.
Happy to test if you can provide a patched definition — I can reproduce the issue consistently.
Posted Sat 04 Oct 25 @ 5:18 pm
The device is set to ch 2. The VDJ mapping works on ch 1. Solution - change the device to channel 1
FYI use of custom mapping requires a Pro license. In addition, if there's a native mapping, that needs to be disabled so VDJ doesn't default to it.
Why are you using a two year old version of VDJ?
FYI use of custom mapping requires a Pro license. In addition, if there's a native mapping, that needs to be disabled so VDJ doesn't default to it.
Why are you using a two year old version of VDJ?
Posted Sat 04 Oct 25 @ 5:33 pm
hi! just to clarify:
The VFX-1 on my end is fixed to Channel 2. MIDI-OX shows ON/OFF sends 91 68 7F (Note On, Ch2, Note 0x68) and the LED responds to 91 68 7F / 91 68 00.
I’ve tested across multiple builds in hopes this will fix the issue: VDJ 7, the latest public version, and the current build b7921, same result every time. Changing the XML between channel="1" and channel="2" makes no difference because it seems the native mapping is still hardcoded for LEDs on Ch1.
Native definition is disabled during testing (force- XML).
The VFX-1 on my end is fixed to Channel 2. MIDI-OX shows ON/OFF sends 91 68 7F (Note On, Ch2, Note 0x68) and the LED responds to 91 68 7F / 91 68 00.
I’ve tested across multiple builds in hopes this will fix the issue: VDJ 7, the latest public version, and the current build b7921, same result every time. Changing the XML between channel="1" and channel="2" makes no difference because it seems the native mapping is still hardcoded for LEDs on Ch1.
Native definition is disabled during testing (force- XML).
Posted Sat 04 Oct 25 @ 5:57 pm
thanks for the follow-ups here. very appreciated. let me summarize where I’m stuck and why I think this needs an internal definition update:
My VFX-1 is confirmed in MIDI-OX to only send/receive on Channel 2. example: pressing the ON/OFF button sends 91 68 7F (Note On, Ch2, Note 0x68), and the LED lights when I send the same back (91 68 7F / 91 68 00). right now with the current definition file, i am not getting any input.
VDJs native VFX-1 definition has the LEDs coded on Channel 1 (90 xx), which is why input mapping works but LED feedback does not.
I’ve tested with:
-VirtualDJ 7
-The last stable public release
-The current build ive found works the best in this case (b7921)
All behave the same: the LEDs never respond, regardless of whether I set my custom XML to channel="1" or channel="2".
I’ve also disabled the native definition using a force- device XML, so there’s no conflict.
So the root cause is simple: the VFX-1 hardware is fixed to Channel 2, but the built-in VirtualDJ definition is hardcoded for Channel 1 LED output.
According to the ControllerDefinitionMIDI spec, the fix would just be to update the LED button entries to Channel 2. For example:
<button note="0x68" name="ON_OFF" channel="2" value="0x7F" off="0x00"/>
This would allow VirtualDJ to send LED feedback correctly, since the hardware already responds when I test those messages externally.
Could the dev team confirm if the built-in VFX-1 definition can be patched for this? I’m happy to provide full MIDI logs and test a beta mapping, also any ideas on how to fix this would be highly appreciated !~
maybe someone has a already made definition file ? i know there was one that once existed years ago but was long deleted by VirtualDJ after a broken native mapping was added to the VFX-1.
My VFX-1 is confirmed in MIDI-OX to only send/receive on Channel 2. example: pressing the ON/OFF button sends 91 68 7F (Note On, Ch2, Note 0x68), and the LED lights when I send the same back (91 68 7F / 91 68 00). right now with the current definition file, i am not getting any input.
VDJs native VFX-1 definition has the LEDs coded on Channel 1 (90 xx), which is why input mapping works but LED feedback does not.
I’ve tested with:
-VirtualDJ 7
-The last stable public release
-The current build ive found works the best in this case (b7921)
All behave the same: the LEDs never respond, regardless of whether I set my custom XML to channel="1" or channel="2".
I’ve also disabled the native definition using a force- device XML, so there’s no conflict.
So the root cause is simple: the VFX-1 hardware is fixed to Channel 2, but the built-in VirtualDJ definition is hardcoded for Channel 1 LED output.
According to the ControllerDefinitionMIDI spec, the fix would just be to update the LED button entries to Channel 2. For example:
<button note="0x68" name="ON_OFF" channel="2" value="0x7F" off="0x00"/>
This would allow VirtualDJ to send LED feedback correctly, since the hardware already responds when I test those messages externally.
Could the dev team confirm if the built-in VFX-1 definition can be patched for this? I’m happy to provide full MIDI logs and test a beta mapping, also any ideas on how to fix this would be highly appreciated !~
maybe someone has a already made definition file ? i know there was one that once existed years ago but was long deleted by VirtualDJ after a broken native mapping was added to the VFX-1.
Posted Sat 04 Oct 25 @ 7:14 pm
old thread for the mapper/definition file for the vfx-1 seen here with working LEDs and proper definition file but unfortunately deleted by VirtualDJ team after broken definition file was made to be native/built in:
https://www.virtualdj.com/forums/135614/Old_versions/Vestax_VCI-300_MKII___VFX-1_Def___Mappers_for_Virtual_DJ_7_now_available.html
https://www.virtualdj.com/forums/135614/Old_versions/Vestax_VCI-300_MKII___VFX-1_Def___Mappers_for_Virtual_DJ_7_now_available.html
Posted Sat 04 Oct 25 @ 7:17 pm
bump
still tinkering with this, was able to rebuild the definition file from scratch, though im still running into issues with the LEDs not comming on!~
Here is the Definition File!~
<?xml version="1.0" encoding="UTF-8"?>
<device name="Vestax VFX1" author="Googie" version="850"
type="MIDI" description="Vestax VFX-1">
<init>midi_out 0x91 0x68 0x7F</init>
<exit>midi_out 0x91 0x68 0x00</exit>
<hardware>
<vendor id="0x1AA1"/>
<product id="0x0110"/>
<sysexid id="F07E0106020040021001000001010100F7"/>
</hardware>
<slider cc="0x11" name="SLIDER17" channel="1"/>
<slider cc="0x10" name="SLIDER16" channel="1"/>
<button note="0x64" name="BUTTON100" channel="1"/>
<button note="0x63" name="BUTTON99" channel="1"/>
<button note="0x69" name="BUTTON105" channel="1"/>
<button note="0x46" name="BUTTON70" channel="1"/>
<button note="0x68" name="BUTTON104" channel="1"/>
<button note="0x5B" name="BUTTON91" channel="1"/>
<button note="0x5C" name="BUTTON92" channel="1"/>
<button note="0x5D" name="BUTTON93" channel="1"/>
<button note="0x5E" name="BUTTON94" channel="1"/>
<button note="0x5F" name="BUTTON95" channel="1"/>
<button note="0x60" name="BUTTON96" channel="1"/>
<button note="0x61" name="BUTTON97" channel="1"/>
<button note="0x62" name="BUTTON98" channel="1"/>
<button note="0x57" name="BUTTON87" channel="1"/>
<button note="0x58" name="BUTTON88" channel="1"/>
<button note="0x59" name="BUTTON89" channel="1"/>
<button note="0x5A" name="BUTTON90" channel="1"/>
<button note="0x4A" name="BUTTON74" channel="1"/>
<button note="0x49" name="BUTTON73" channel="1"/>
<button note="0x48" name="BUTTON72" channel="1"/>
<button note="0x47" name="BUTTON71" channel="1"/>
<button note="0x66" name="BUTTON102" channel="1"/>
<button note="0x65" name="BUTTON101" channel="1"/>
<button note="0x50" name="BUTTON80" channel="1"/>
<button note="0x51" name="BUTTON81" channel="1"/>
<button note="0x52" name="BUTTON82" channel="1"/>
<button note="0x53" name="BUTTON83" channel="1"/>
<button note="0x54" name="BUTTON84" channel="1"/>
<button note="0x55" name="BUTTON85" channel="1"/>
<button note="0x56" name="BUTTON86" channel="1"/>
<button note="0x4B" name="BUTTON75" channel="1"/>
<button note="0x4C" name="BUTTON76" channel="1"/>
<button note="0x4D" name="BUTTON77" channel="1"/>
<button note="0x4E" name="BUTTON78" channel="1"/>
<button note="0x4F" name="BUTTON79" channel="1"/>
<jog cc="0x11" name="JOG17" channel="1"/>
<jog cc="0x10" name="JOG16" channel="1"/>
<button note="0x45" name="BUTTON69" channel="1"/>
<button note="0x43" name="BUTTON67" channel="1"/>
<button note="0x40" name="BUTTON64" channel="1"/>
<button note="0x41" name="BUTTON65" channel="1"/>
<button note="0x2E" name="BUTTON46" channel="1"/>
<button note="0x2F" name="BUTTON47" channel="1"/>
<button note="0x30" name="BUTTON48" channel="1"/>
<button note="0x31" name="BUTTON49" channel="1"/>
<button note="0x32" name="BUTTON50" channel="1"/>
<button note="0x33" name="BUTTON51" channel="1"/>
<button note="0x28" name="BUTTON40" channel="1"/>
<button note="0x29" name="BUTTON41" channel="1"/>
<button note="0x2A" name="BUTTON42" channel="1"/>
<button note="0x2B" name="BUTTON43" channel="1"/>
<button note="0x2C" name="BUTTON44" channel="1"/>
<button note="0x2D" name="BUTTON45" channel="1"/>
<button note="0x3A" name="BUTTON58" channel="1"/>
<button note="0x3B" name="BUTTON59" channel="1"/>
<button note="0x3C" name="BUTTON60" channel="1"/>
<button note="0x3D" name="BUTTON61" channel="1"/>
<button note="0x3E" name="BUTTON62" channel="1"/>
<button note="0x3F" name="BUTTON63" channel="1"/>
<button note="0x34" name="BUTTON52" channel="1"/>
<button note="0x35" name="BUTTON53" channel="1"/>
<button note="0x36" name="BUTTON54" channel="1"/>
<button note="0x37" name="BUTTON55" channel="1"/>
<button note="0x38" name="BUTTON56" channel="1"/>
<button note="0x39" name="BUTTON57" channel="1"/>
<button note="0x27" name="BUTTON39" channel="1"/>
<button note="0x26" name="BUTTON38" channel="1"/>
<button note="0x25" name="BUTTON37" channel="1"/>
<button note="0x24" name="BUTTON36" channel="1"/>
<button note="0x42" name="BUTTON66" channel="1"/>
<init>
midi_sysex 0xF0 0x7E 0x01 0x06 0x02 0x00 0x40 0x02 0x10 0x01 0x00 0x00 0x01 0x01 0x01 0x00 0xF7
</init>
</device>
And here is the mapper!!~ (what i got so far)
<?xml version="1.0" encoding="UTF-8"?>
<mapper device="Vestax VFX1" version="850" date="2025-10-04">
<map value="BUTTON104" action="deck 1 effect_active" />
<map value="BUTTON69" action="deck 2 effect_active" />
<map value="BUTTON102" action="deck 1 tap" />
<map value="BUTTON67" action="deck 2 tap" />
<map value="SLIDER17" action="deck 1 effect_slider 1" />
<map value="SLIDER16" action="deck 2 effect_slider 1" />
<map value="BUTTON79" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON78" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON77" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON76" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON75" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON86" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON85" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON84" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON83" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON82" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON81" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON80" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON47" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON46" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON48" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON49" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON50" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON51" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON40" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON41" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON43" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON42" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON44" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON45" action="deck 2 effect_select_multi 1 -1" />
<map value="ONINIT" action="midi_sysex 0xF0 0x7E 0x01 0x06 0x02 0x00 0x40 0x02 0x10 0x01 0x00 0x00 0x01 0x01 0x01 0x00 0xF7" />
<map value="ONEXIT" action="midi_out 0x91 0x68 0x00" />
</mapper>
Any help would be appreciated!!~
still tinkering with this, was able to rebuild the definition file from scratch, though im still running into issues with the LEDs not comming on!~
Here is the Definition File!~
<?xml version="1.0" encoding="UTF-8"?>
<device name="Vestax VFX1" author="Googie" version="850"
type="MIDI" description="Vestax VFX-1">
<init>midi_out 0x91 0x68 0x7F</init>
<exit>midi_out 0x91 0x68 0x00</exit>
<hardware>
<vendor id="0x1AA1"/>
<product id="0x0110"/>
<sysexid id="F07E0106020040021001000001010100F7"/>
</hardware>
<slider cc="0x11" name="SLIDER17" channel="1"/>
<slider cc="0x10" name="SLIDER16" channel="1"/>
<button note="0x64" name="BUTTON100" channel="1"/>
<button note="0x63" name="BUTTON99" channel="1"/>
<button note="0x69" name="BUTTON105" channel="1"/>
<button note="0x46" name="BUTTON70" channel="1"/>
<button note="0x68" name="BUTTON104" channel="1"/>
<button note="0x5B" name="BUTTON91" channel="1"/>
<button note="0x5C" name="BUTTON92" channel="1"/>
<button note="0x5D" name="BUTTON93" channel="1"/>
<button note="0x5E" name="BUTTON94" channel="1"/>
<button note="0x5F" name="BUTTON95" channel="1"/>
<button note="0x60" name="BUTTON96" channel="1"/>
<button note="0x61" name="BUTTON97" channel="1"/>
<button note="0x62" name="BUTTON98" channel="1"/>
<button note="0x57" name="BUTTON87" channel="1"/>
<button note="0x58" name="BUTTON88" channel="1"/>
<button note="0x59" name="BUTTON89" channel="1"/>
<button note="0x5A" name="BUTTON90" channel="1"/>
<button note="0x4A" name="BUTTON74" channel="1"/>
<button note="0x49" name="BUTTON73" channel="1"/>
<button note="0x48" name="BUTTON72" channel="1"/>
<button note="0x47" name="BUTTON71" channel="1"/>
<button note="0x66" name="BUTTON102" channel="1"/>
<button note="0x65" name="BUTTON101" channel="1"/>
<button note="0x50" name="BUTTON80" channel="1"/>
<button note="0x51" name="BUTTON81" channel="1"/>
<button note="0x52" name="BUTTON82" channel="1"/>
<button note="0x53" name="BUTTON83" channel="1"/>
<button note="0x54" name="BUTTON84" channel="1"/>
<button note="0x55" name="BUTTON85" channel="1"/>
<button note="0x56" name="BUTTON86" channel="1"/>
<button note="0x4B" name="BUTTON75" channel="1"/>
<button note="0x4C" name="BUTTON76" channel="1"/>
<button note="0x4D" name="BUTTON77" channel="1"/>
<button note="0x4E" name="BUTTON78" channel="1"/>
<button note="0x4F" name="BUTTON79" channel="1"/>
<jog cc="0x11" name="JOG17" channel="1"/>
<jog cc="0x10" name="JOG16" channel="1"/>
<button note="0x45" name="BUTTON69" channel="1"/>
<button note="0x43" name="BUTTON67" channel="1"/>
<button note="0x40" name="BUTTON64" channel="1"/>
<button note="0x41" name="BUTTON65" channel="1"/>
<button note="0x2E" name="BUTTON46" channel="1"/>
<button note="0x2F" name="BUTTON47" channel="1"/>
<button note="0x30" name="BUTTON48" channel="1"/>
<button note="0x31" name="BUTTON49" channel="1"/>
<button note="0x32" name="BUTTON50" channel="1"/>
<button note="0x33" name="BUTTON51" channel="1"/>
<button note="0x28" name="BUTTON40" channel="1"/>
<button note="0x29" name="BUTTON41" channel="1"/>
<button note="0x2A" name="BUTTON42" channel="1"/>
<button note="0x2B" name="BUTTON43" channel="1"/>
<button note="0x2C" name="BUTTON44" channel="1"/>
<button note="0x2D" name="BUTTON45" channel="1"/>
<button note="0x3A" name="BUTTON58" channel="1"/>
<button note="0x3B" name="BUTTON59" channel="1"/>
<button note="0x3C" name="BUTTON60" channel="1"/>
<button note="0x3D" name="BUTTON61" channel="1"/>
<button note="0x3E" name="BUTTON62" channel="1"/>
<button note="0x3F" name="BUTTON63" channel="1"/>
<button note="0x34" name="BUTTON52" channel="1"/>
<button note="0x35" name="BUTTON53" channel="1"/>
<button note="0x36" name="BUTTON54" channel="1"/>
<button note="0x37" name="BUTTON55" channel="1"/>
<button note="0x38" name="BUTTON56" channel="1"/>
<button note="0x39" name="BUTTON57" channel="1"/>
<button note="0x27" name="BUTTON39" channel="1"/>
<button note="0x26" name="BUTTON38" channel="1"/>
<button note="0x25" name="BUTTON37" channel="1"/>
<button note="0x24" name="BUTTON36" channel="1"/>
<button note="0x42" name="BUTTON66" channel="1"/>
<init>
midi_sysex 0xF0 0x7E 0x01 0x06 0x02 0x00 0x40 0x02 0x10 0x01 0x00 0x00 0x01 0x01 0x01 0x00 0xF7
</init>
</device>
And here is the mapper!!~ (what i got so far)
<?xml version="1.0" encoding="UTF-8"?>
<mapper device="Vestax VFX1" version="850" date="2025-10-04">
<map value="BUTTON104" action="deck 1 effect_active" />
<map value="BUTTON69" action="deck 2 effect_active" />
<map value="BUTTON102" action="deck 1 tap" />
<map value="BUTTON67" action="deck 2 tap" />
<map value="SLIDER17" action="deck 1 effect_slider 1" />
<map value="SLIDER16" action="deck 2 effect_slider 1" />
<map value="BUTTON79" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON78" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON77" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON76" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON75" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON86" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON85" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON84" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON83" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON82" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON81" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON80" action="deck 1 effect_select_multi 1 -1" />
<map value="BUTTON47" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON46" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON48" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON49" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON50" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON51" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON40" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON41" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON43" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON42" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON44" action="deck 2 effect_select_multi 1 -1" />
<map value="BUTTON45" action="deck 2 effect_select_multi 1 -1" />
<map value="ONINIT" action="midi_sysex 0xF0 0x7E 0x01 0x06 0x02 0x00 0x40 0x02 0x10 0x01 0x00 0x00 0x01 0x01 0x01 0x00 0xF7" />
<map value="ONEXIT" action="midi_out 0x91 0x68 0x00" />
</mapper>
Any help would be appreciated!!~
Posted Sun 05 Oct 25 @ 1:31 am
pasted the definition twice!! sorry about that! fixed!
Posted Sun 05 Oct 25 @ 1:35 am
any ideas?
Posted Mon 06 Oct 25 @ 6:06 am
Honestly ?
Stop using ChatGPT (or whatever A.I. you used to compile this)
For starters you have defined CC 0x10 on Channel 1 two times.
One time as a slider, and one as a jog.
It can be one or the other. Not both.
Also, since all you use is channel 1, remove it from the definition completely. There's no need to define a channel for units that only use a SINGLE MIDI channel for their communication.
Stop using ChatGPT (or whatever A.I. you used to compile this)
For starters you have defined CC 0x10 on Channel 1 two times.
One time as a slider, and one as a jog.
It can be one or the other. Not both.
Also, since all you use is channel 1, remove it from the definition completely. There's no need to define a channel for units that only use a SINGLE MIDI channel for their communication.
Posted Mon 06 Oct 25 @ 6:36 am
@PHANYOMDEEJAY
hi! i appreciate your input! however removing the channel from the definition file did nothing for this fix! i am still dealing with the same issue of the no LEDs not coming on when a button is pressed!~ the slider and jog note are the same encoder knob , so i figured that was needed in the definition file, clearly i need help here!
as for using an A.I bot, please elaborate to me how i would obtain a definition file / mapper file for a deck that is 15 years old , lacking the understanding of .xml language code, and figuring all of this out without the help of a chat bot? im genuinely curious! because there isn't any info about this anywhere online!
this VFX panel should just work on the latest build of VDJ, i should not have to go through this trouble!~ why does it not work properly?
hi! i appreciate your input! however removing the channel from the definition file did nothing for this fix! i am still dealing with the same issue of the no LEDs not coming on when a button is pressed!~ the slider and jog note are the same encoder knob , so i figured that was needed in the definition file, clearly i need help here!
as for using an A.I bot, please elaborate to me how i would obtain a definition file / mapper file for a deck that is 15 years old , lacking the understanding of .xml language code, and figuring all of this out without the help of a chat bot? im genuinely curious! because there isn't any info about this anywhere online!
this VFX panel should just work on the latest build of VDJ, i should not have to go through this trouble!~ why does it not work properly?
Posted 7 days ago @ 5:11 pm
wake25 wrote :
there isn't any info about this anywhere online!
https://www.virtualdj.com/wiki/Controller%20Developers.html
Posted 7 days ago @ 5:56 pm
@GROOVINDJ
yup! been tediously using this resource myself, along with desperately feeding it into a chat bot to help me walk through this, and still no dice! still running into the same issue! no matter what i do or how i write the definition files! this resource doesn't help my case!
yup! been tediously using this resource myself, along with desperately feeding it into a chat bot to help me walk through this, and still no dice! still running into the same issue! no matter what i do or how i write the definition files! this resource doesn't help my case!
Posted 7 days ago @ 5:59 pm
according to the VDJ logs and ChatGPT , virtualDJ’s native Vestax VFX-1 support is incomplete, it is fully handling MIDI input but never sends the LED-enable SysEx or LED feedback messages.
The LEDs stay dark because VirtualDJ never tells the hardware to switch into LED-remote mode.
The LEDs stay dark because VirtualDJ never tells the hardware to switch into LED-remote mode.
Posted 7 days ago @ 6:15 pm
You'd rather believe ChatGPT than the Atomix staff who wrote the original mapping? OK...
Posted 7 days ago @ 7:21 pm
then why do the LEDs not work with the original mapping?
why are there missing inputs on the controller? both latches on the side have 0 input , the modification kob being pushed in has 0 input.. i do exactly what staff and everyone else here suggests and it doesn't work!!
why are there missing inputs on the controller? both latches on the side have 0 input , the modification kob being pushed in has 0 input.. i do exactly what staff and everyone else here suggests and it doesn't work!!
Posted 7 days ago @ 7:25 pm
also going off what the MIDI logs spits out!!
Posted 7 days ago @ 7:27 pm





