Hi VirtualDj forum members,
I have a question I hope you can help me answer.
I have an old Hercules P32 DJ controller and I have been trying to remap some of the controllers buttons.
VDJ has a "driver"/mapping for it and I can mapp buttons using VDJScript.
Link to VDJ https://virtualdj.com/manuals/hardware/hercules/p32/setup.html
So far so good, but I notice that the implementation don't accounts for left and right commands sent from the controller.
E.g the controller has 2 shift buttons, a left and a right.
The left shift button is called SHIFT_A (Hercules naming convention) and sends these midi commands when pressed and released.
91 07 7F
91 07 00
The right shift button is called SHIFT_B (Hercules naming convention) and sends these midi commands when pressed and released
92 07 7F
92 07 00
When I remap buttons in VDJ I notis that (in the Activity: window) that when left and right shift buttons are pressed both register as SHIFT on and SHIFT off (not as SHIFT_A or SHIFT_B).
I found this file Application Support
Hercules P32 DJ - Custom Mapping.xml
/Users/joachim/Library/Application Support/VirtualDJ/Mappers
It contains what looks like mapping functionality.
"<mapper device="HCP32" author="Atomix Productions" version="850" date="2026-04-12">
<info>http://www.virtualdj.com/manuals/hardware/hercules/p32.html</info>
<map value="SHIFT" action="shift" />
..."
I don't know where midi commands are translated to commands e.g. SHIFT (in above code).
My question is where and how can I add SHIFT_A and SHIFT_B to the existing mapping?
Yoggi
I have a question I hope you can help me answer.
I have an old Hercules P32 DJ controller and I have been trying to remap some of the controllers buttons.
VDJ has a "driver"/mapping for it and I can mapp buttons using VDJScript.
Link to VDJ https://virtualdj.com/manuals/hardware/hercules/p32/setup.html
So far so good, but I notice that the implementation don't accounts for left and right commands sent from the controller.
E.g the controller has 2 shift buttons, a left and a right.
The left shift button is called SHIFT_A (Hercules naming convention) and sends these midi commands when pressed and released.
91 07 7F
91 07 00
The right shift button is called SHIFT_B (Hercules naming convention) and sends these midi commands when pressed and released
92 07 7F
92 07 00
When I remap buttons in VDJ I notis that (in the Activity: window) that when left and right shift buttons are pressed both register as SHIFT on and SHIFT off (not as SHIFT_A or SHIFT_B).
I found this file Application Support
Hercules P32 DJ - Custom Mapping.xml
/Users/joachim/Library/Application Support/VirtualDJ/Mappers
It contains what looks like mapping functionality.
"<mapper device="HCP32" author="Atomix Productions" version="850" date="2026-04-12">
<info>http://www.virtualdj.com/manuals/hardware/hercules/p32.html</info>
<map value="SHIFT" action="shift" />
..."
I don't know where midi commands are translated to commands e.g. SHIFT (in above code).
My question is where and how can I add SHIFT_A and SHIFT_B to the existing mapping?
Yoggi
Posted 4 hours ago
Depends on if they were assigned a default deck in the definition, probably not likely.
try this
get_deck & param_cast & debug
if assigned you should get different values, if no value or the same value then you'll need to write a definition yourself, as far as you have got already, writing your own def file wouldn't be that hard.
https://www.virtualdj.com/wiki/ControllerDefinitionMIDI
try this
get_deck & param_cast & debug
if assigned you should get different values, if no value or the same value then you'll need to write a definition yourself, as far as you have got already, writing your own def file wouldn't be that hard.
https://www.virtualdj.com/wiki/ControllerDefinitionMIDI
Posted 3 hours ago
@locoDog
Thanks for replying!
Not sure "yet" how to run the code you provide, I'll need to look into that.
Although I have a question regarding writing my own definition vs modifying an existing one.
Are the "original" definitions provided by VDJ's creators locked in some way? Can the original be copied and modified or would I need to start from scratch?
Thanks for replying!
Not sure "yet" how to run the code you provide, I'll need to look into that.
Although I have a question regarding writing my own definition vs modifying an existing one.
Are the "original" definitions provided by VDJ's creators locked in some way? Can the original be copied and modified or would I need to start from scratch?
Posted 3 hours ago
I spoke to soon...
I do get 'Int: 1' from the left shift button and 'Int: 2' from the right shift button.
OLD reply
If I try your code examples "get_deck & param_cast & debug" on the Key:SHIFT I get the same 'Bool: 1' from both left and right shift buttons.
I guess that is bad news in my case?
I do get 'Int: 1' from the left shift button and 'Int: 2' from the right shift button.
OLD reply
If I try your code examples "get_deck & param_cast & debug" on the Key:SHIFT I get the same 'Bool: 1' from both left and right shift buttons.
I guess that is bad news in my case?
Posted 3 hours ago
ok so your shift button should be mapped
action_deck 1 ? %ACTION FOR LEFT SHIFT : action_deck 2 ? %ACTION FOR RIGHT SHIFT
action_deck 1 ? %ACTION FOR LEFT SHIFT : action_deck 2 ? %ACTION FOR RIGHT SHIFT
Posted 3 hours ago
I can now test for left and right shift button pressed!
I wrote this short line to test it.
`action_deck 1 ? shift : action_deck 2 ? get_deck & param_cast & debug`
So if left shift (SHIFT_A) is pressed, shift works as normal and if right shift (SHIFT_B) is pressed I get the debug information.
Now I just need to craft my script to do what I want it to do.
locoDog, thanks for showing me the light!
I wrote this short line to test it.
`action_deck 1 ? shift : action_deck 2 ? get_deck & param_cast & debug`
So if left shift (SHIFT_A) is pressed, shift works as normal and if right shift (SHIFT_B) is pressed I get the debug information.
Now I just need to craft my script to do what I want it to do.
locoDog, thanks for showing me the light!
Posted 2 hours ago





