Quick Sign In:  

Forum: VirtualDJ Technical Support

Topic: S4 MK3 support - How could I contribute to making this a reality?
Before I begin, let me be clear that this isn't me asking when the team at VDJ will make it. They are busy with more important matters.

I'm a longtime S4 mk3 user, and I've never used VDJ before. However, I'm willing to pay and contribute to the community because I see VDJ as potentially the best DJ software on the market.

I've been using Traktor Pro for many years. Even though the developers at NI are working on gaining users again and making updates and possible changes, they are still quite slow in addressing things that I would like to see. Additionally, the S4 mk3 is extremely closed in terms of software.

While the S2 mk3 and S3 have MIDI support, the S4 lacks proper MIDI support and is only built as an HID controller for Traktor Pro 3. I would assume that NI themselves need the S4 mk3 to remain closed source for now so that they can retain a hold on users who want to switch.

If Traktor or NI were to go out of business, the S4 mk3 would become a genuine paperweight, aside from the very basic (yet appreciated) mapping for VDJ.

From what I understand, VDJ has a robust scripting language for controller support. I'm interested in reverse engineering the controller to add support for at least the basic information on the screens and moving jogs.

Where should I start in understanding this? For the scripting aspect, I can explore the good support available here, but when it comes to delving into the control of the S4 mk3, where should I look?

If anyone has any advice on how to approach reverse engineering controllers, HID/MIDI devices, or even chip clipping, please let me know.
 

geposted Thu 10 Aug 23 @ 8:08 pm
You can use Wireshark to capture the USB traffic. Right after plugging in the controller it will send a report (HID message) descriptor. That contains a description of the report values.

Next you need to write a controller definition in vdj https://www.virtualdj.com/wiki/ControllerDefinitionHIDv8.html

That one will define how the report is decoded into input variables for vdj, and how vdj composes the report send back to the controller.

Those variables can then be mapped to actions in the mapping for the controller.

I'm making a custom moving platter controller with a HID interface and am actually curious to see the S4 MK3 output. If you can capture the trace I can take a look and get you going with the definition file.
 

geposted Tue 15 Aug 23 @ 10:17 am
user20549076 wrote :
You can use Wireshark to capture the USB traffic. Right after plugging in the controller it will send a report (HID message) descriptor. That contains a description of the report values.

Next you need to write a controller definition in vdj https://www.virtualdj.com/wiki/ControllerDefinitionHIDv8.html

That one will define how the report is decoded into input variables for vdj, and how vdj composes the report send back to the controller.

Those variables can then be mapped to actions in the mapping for the controller.

I'm making a custom moving platter controller with a HID interface and am actually curious to see the S4 MK3 output. If you can capture the trace I can take a look and get you going with the definition file.


There is a ready Controller Devinition File and Mapping at Virtual DJ long time in Downloads .
But this works only without Displays and Moving Platters .
This is because Native Instruments will not give Special Code for this Haptic Drives , they will that only works with Traktor ;-(
Look at early Post at Forum ...
All other Funktions are work fine ..
 

geposted Tue 15 Aug 23 @ 2:28 pm
 

geposted Tue 15 Aug 23 @ 4:30 pm