What is the preferred technical way to transport your vdj skin to a diy midi controller with one usb connection (like the denon and Pioneer controllers)?
Gr Marcel
Gr Marcel
Posted Sat 06 Sep 25 @ 5:05 pm
There's no preferred way.
The "easiest" way would be for that controller to contain a screen that's shown as a display under windows/mac os.
Now the way AlphaTheta (Pioneer) and InMusic (Numark, Denon, Rane e.t.c.) does it is different:
They have a microcontroller that draws graphics on the screen based on the MIDI data they receive.
So, for instance, they "read" the value of let's say MIDI note 0x30 at channel 0 that can take up to 128 values (o to 127) and then, based on that value they set the JOG Rotation Disc at an angle.
They follow pretty much the same logic for all the elements they show up on screen.
For more complex displays, they follow exactly the same logic, but they use HID protocol instead which has some advantages over MIDI at sending big chunks of data / complex data.
The "easiest" way would be for that controller to contain a screen that's shown as a display under windows/mac os.
Now the way AlphaTheta (Pioneer) and InMusic (Numark, Denon, Rane e.t.c.) does it is different:
They have a microcontroller that draws graphics on the screen based on the MIDI data they receive.
So, for instance, they "read" the value of let's say MIDI note 0x30 at channel 0 that can take up to 128 values (o to 127) and then, based on that value they set the JOG Rotation Disc at an angle.
They follow pretty much the same logic for all the elements they show up on screen.
For more complex displays, they follow exactly the same logic, but they use HID protocol instead which has some advantages over MIDI at sending big chunks of data / complex data.
Posted Mon 08 Sep 25 @ 9:02 am
Hi thnx for your reply.
For instance how does the main computer, where vdj is running, see the screen of a Denon Prime, as its only have an usb connection.
I have seen vdj had a skin for this controller. Is this transported via HID?
Mvg Marcel
For instance how does the main computer, where vdj is running, see the screen of a Denon Prime, as its only have an usb connection.
I have seen vdj had a skin for this controller. Is this transported via HID?
Mvg Marcel
Posted Mon 08 Sep 25 @ 11:01 am
Denon Prime is one of the few exceptions where the screen does not have a predefined layout and is not controlled via predefined messages. Instead VirtualDJ uses an API provided by Denon to draw graphics in the display. The API is made by Denon and it's proprietary. VirtualDJ only knows what data to send (and how) in order for the API to draw pixels on screen. Of course the data structure for this case is the one the API requires, and it's not up to VirtualDJ to decide how to do it.
So, VirtualDJ makes some API calls to the drivers of Prime and sends the data for the screen.
Then the drivers of the device transfer those data on the screen, and the firmware of the device transforms the data to pixels on the screen.
Somewhere among this process (on the driver, or on the firmware of the device, or on both) a transformation is done so that the data corresponds to an image.
So, VirtualDJ makes some API calls to the drivers of Prime and sends the data for the screen.
Then the drivers of the device transfer those data on the screen, and the firmware of the device transforms the data to pixels on the screen.
Somewhere among this process (on the driver, or on the firmware of the device, or on both) a transformation is done so that the data corresponds to an image.
Posted Tue 09 Sep 25 @ 10:55 am
A,h, i see. So it`s i some sort of closed protocol not availble for the public. Also in the case of the Traktor Kontrol S8?
Is there an option to minimize the main window when opening a second window inside the main. Just like the floating browser from the Blocks Skin. This way it can be easy to switch between multiple floating windows on a second (remote) display.
Of course this remote screen have to be connected to your display adapter port, but the laptop display can be closed during the virtual dj sesion and still use the floating windows.
I found that switching between skins is to slow for live performance.
gr. Marcel
gr .Marcel
Is there an option to minimize the main window when opening a second window inside the main. Just like the floating browser from the Blocks Skin. This way it can be easy to switch between multiple floating windows on a second (remote) display.
Of course this remote screen have to be connected to your display adapter port, but the laptop display can be closed during the virtual dj sesion and still use the floating windows.
I found that switching between skins is to slow for live performance.
gr. Marcel
gr .Marcel

Posted Tue 09 Sep 25 @ 6:02 pm
Marcel mdg wrote :
A,h, i see. So it`s i some sort of closed protocol not availble for the public.
No, it's not. If it was you wouldn't know /be told about it.
It's just that there's no much need for it that it fall into obscurity.
Marcel mdg wrote :
Also in the case of the Traktor Kontrol S8?
Traktor screens follow the same approach as Denon Prime screens. They are not understood as displays by the OS as the screen on Reloop Touch mentioned above.
Traktor screens require VirtualDJ to send data to an API and the API does the rest.
As I mentioned above, those APIs are proprietary and closed.
Marcel mdg wrote :
Is there an option to minimize the main window when opening a second window inside the main. Just like the floating browser from the Blocks Skin. This way it can be easy to switch between multiple floating windows on a second (remote) display.
Depending on what you're after there's the minimize action, but also you can hide windows by the same action you used to show them.
So you can use show_window 'alpha' & show_window 'beta' and if let's say window 'alpha' is visible, it will hide it, while showing window 'beta'
Marcel mdg wrote :
I found that switching between skins is to slow for live performance.
Yes, because you shouldn't have to.
BUT (and that's a big but)
What you're after is not common nor consisted "average" user case.
The tools to do it exist. But your' looking at the wrong tools IMHO.
You don't change skins/windows in order to change "views"
You change panels.
This means that eventually you need to get your hands dirty and design your own skin / skin window.
Even if you just have to "copy" elements from others and other skins and put all this together in one package.
Posted Wed 10 Sep 25 @ 6:40 am
Thnx. Indeed panels are the way quick visualize elements.
I have a lot more questions, but it getting off topic than. But i see how more you dig into skin design you realize that the possibiltiy`s are endless. But you have to take the time, step for step. (the blocks skin is a more than 7500 rule XML file!!!)
I have a lot more questions, but it getting off topic than. But i see how more you dig into skin design you realize that the possibiltiy`s are endless. But you have to take the time, step for step. (the blocks skin is a more than 7500 rule XML file!!!)
Posted Sat 13 Sep 25 @ 6:18 pm
Yes, skins can quickly get out of hand when you try to squeeze many options in them.
As a reference, a skin I'm going to release in a few weeks is more than 10.000 lines.
HOWEVER:
Depending on what you are after, it's most likely preferable to start making your own "simple" interface and add only the things you need on it, rather than editing a complex skin with thousands of lines.
That being said, after creating your own "small personal skin" it is possible that you'll be in a position that you'll be able to understand the logic of complex skins and be able to edit them. At least for the basics!
As a reference, a skin I'm going to release in a few weeks is more than 10.000 lines.
HOWEVER:
Depending on what you are after, it's most likely preferable to start making your own "simple" interface and add only the things you need on it, rather than editing a complex skin with thousands of lines.
That being said, after creating your own "small personal skin" it is possible that you'll be in a position that you'll be able to understand the logic of complex skins and be able to edit them. At least for the basics!
Posted Mon 15 Sep 25 @ 9:06 am