Ingreso rápido:  

Forum: VirtualDJ Technical Support

Tema: Live update encoder on Special Waves Mine-S - Page: 1
I spent a couple of hours researching, but I failed to solve it myself - can you please help?
I have the Special-waves Mine-S controller with encoders. I can assign any midi note on the controller in their MineApp Configuration app:

When I connect the controller configured in this way to VDJ, I see the name of the controller.

When I turn an encoder or press a button, I already get names for each slider/button etc.

Therefore I believe the XML Definition File for the MIDI controller is included inside VDJ already - correct?
Now my question: I want to use the encoders for stems. I am able to map them, but I would like the encoders to immediately pick up the value that has been set/updated in Virtual DJ (i.e. when changing it with the mouse or when some of "Fullxxx" stems, such as FullVocal, also mute other stems).

I have read this thread: https://virtualdj.com/forums/244530/VirtualDJ_Technical_Support/Live_update_encoder_value_on_midi_fighter_twister.html
I believe the XML is built in to VDJ, but I even tried to define new XML (to overwrite the built-in, or simply in case I am wrong and no built-in definition exists), but I am not able to create the file, as I do not know how to find out the below values and which of them are mandatory:
type (I guess it should be "MIDI")
vid (WIndows USB device vendor ID?)
pid (WIndows USB device product ID?)
decks (is it mandatory?)
padColumns (no idea)
padRows (no idea)
padSides (no idea)

Can you please help?
 

Mensajes Thu 07 Apr 22 @ 1:47 pm
OK, so I was able to create the XML definition file successfully and now I am able to map the controller. The XML file was not built-in. All works now as described in the post I linked above.
The values should be:
type="MIDI"
vid= (WIndows USB device vendor ID?)
pid= (WIndows USB device product ID?)
decks (do not use it unless you want it to be the main EQ controller)
padColumns (no idea)
padRows (no idea)
padSides (no idea)

Watch out for one strange thing: What the MineApp calls Channel 1 is Channel 0 in Virtual DJ
 

Mensajes Thu 07 Apr 22 @ 2:30 pm
Glad you have your controller working :)

Bowie Groove wrote :
Watch out for one strange thing: What the MineApp calls Channel 1 is Channel 0 in Virtual DJ


For some reason .. this is standard confusion with all midi controllers I have seen. The manual or app will use channel 1 for the same channel that Midi-Ox shows as channel 0, and channel 0, is used in the definitions..

Ie one system, the descriptions, numbers channels, starting with 1
and at the hardware level, channels are numbered, starting from 0

Yes would be much less confusing if only one system was used..
 

Mensajes Thu 07 Apr 22 @ 2:54 pm
I am happy I managed to get all my encoders and pads working. I am struggling now with Pads colour. The Pads are RGB, but when I map the LED_x to pad x, the Pad colour is white. When I try to map it to pad_color or pad_button_color, the pad stays dim.

I meanwhile found the great VDJdocumentation on MAPPING controllers, but I am struggling with how the colour information is sent to the button. I can configure it as a midi note, but only one note. Can someone advise on how the colours are usually mapped on one note? I assume you wouldn't know the actual special-waves implementation...
 

Mensajes Thu 07 Apr 22 @ 5:28 pm
OK, so now I understood how to set a colour using a single note on an RGB Pad, but Special-waves are using a different Color MIDI scheme from what Virtual DJ is using. Is it some kind of a standard I could find a reference for?
 

Mensajes Thu 07 Apr 22 @ 9:05 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
We were in contact with and we thought that they were creating an option in their app to export to a VDJ definition, including buttons, faders, rgb leds etc ?
There is no option to do that inside their app, and you had to create one on your own ?

They use a custom Color table, so you have to put the values inside a table, define the table in just one color led and then use values="table" for the rest.

Here is what i had sent them...
<color note="0x09" name="LED_PAD_01" default="PAD_01" values="table" channel="0" defaultvalue="white" fullRGB="yes" table="0x00=#000000,0x01=#000040,0x02=#000080,0x03=#0000C0,0x04=#0000FF,0x05=#004000,0x06=#004040,0x07=#004080,0x08=#0040C0,0x09=#0040FF,0x0A=#008000,0x0B=#008040,0x0C=#008080,0x0D=#0080C0,0x0E=#0080FF,0x0F=#00C000,0x10=#00C040,0x11=#00C080,0x12=#00C0C0,0x13=#00C0FF,0x14=#00FF00,0x15=#00FF40,0x16=#00FF80,0x17=#00FFC0,0x18=#00FFFF,0x19=#400000,0x1A=#400040,0x1B=#400080,0x1C=#4000C0,0x1D=#4000FF,0x1E=#404000,0x1F=#404040,0x20=#404080,0x21=#4040C0,0x22=#4040FF,0x23=#408000,0x24=#408040,0x25=#408080,0x26=#4080C0,0x27=#4080FF,0x28=#40C000,0x29=#40C040,0x2A=#40C080,0x2B=#40C0C0,0x2C=#40C0FF,0x2D=#40FF00,0x2E=#40FF40,0x2F=#40FF80,0x30=#40FFC0,0x31=#40FFFF,0x32=#800000,0x33=#800040,0x34=#800080,0x35=#8000C0,0x36=#8000FF,0x37=#804000,0x38=#804040,0x39=#804080,0x3A=#8040C0,0x3B=#8040FF,0x3C=#808000,0x3D=#808040,0x3E=#808080,0x3F=#8080C0,0x40=#8080FF,0x41=#80C000,0x42=#80C040,0x43=#80C080,0x44=#00C0C0,0x45=#80C0FF,0x46=#80FF00,0x47=#80FF40,0x48=#80FF80,0x49=#80FFC0,0x4A=#80FFFF,0x4B=#C00000,0x4C=#C00040,0x4D=#C00080,0x4E=#C000C0,0x4F=#C000FF,0x50=#C04000,0x51=#C04040,0x52=#C04080,0x53=#C040C0,0x54=#C040FF,0x55=#C08000,0x56=#C08040,0x57=#C08080,0x58=#C080C0,0x59=#C080FF,0x5A=#C0C000,0x5B=#C0C040,0x5C=#C0C080,0x5D=#C0C0C0,0x5E=#C0C0FF,0x5F=#C0FF00,0x60=#C0FF40,0x61=#C0FF80,0x62=#C0FFC0,0x63=#C0FFFF,0x64=#FF0000,0x65=#FF0040,0x66=#FF0080,0x67=#FF00C0,0x68=#FF00FF,0x69=#FF4000,0x6A=#FF4040,0x6B=#FF4080,0x6C=#FF40C0,0x6D=#FF40FF,0x6E=#FF8000,0x6F=#FF8040,0x70=#FF8080,0x71=#FF80C0,0x72=#FF80FF,0x73=#FFC000,0x74=#FFC040,0x75=#FFC080,0x76=#FFC0C0,0x77=#FFC0FF,0x78=#FFFF00,0x79=#FFFF40,0x7A=#FFFF80,0x7B=#FFFFC0,0x7F=#FFFFFF"/>
<color note="0x0B" name="LED_PAD_02" default="PAD_02" values="table" channel="0" defaultvalue="white" fullRGB="yes" />
<color note="0x0D" name="LED_PAD_03" default="PAD_03" values="table" channel="0" defaultvalue="white" fullRGB="yes" />
<color note="0x0F" name="LED_PAD_04" default="PAD_04" values="table" channel="0" defaultvalue="white" fullRGB="yes" />
<color note="0x13" name="LED_PAD_05" default="PAD_05" values="table" channel="0" defaultvalue="white" fullRGB="yes" />
<color note="0x15" name="LED_PAD_06" default="PAD_06" values="table" channel="0" defaultvalue="white" fullRGB="yes" />
<color note="0x17" name="LED_PAD_07" default="PAD_07" values="table" channel="0" defaultvalue="white" fullRGB="yes" />



The note="" values may be different in your case, probably they have the same values as the PAD <button>s, channels may be different too, but the values, table and all others should help you.
Please post the definition you have done already if you need further assistance

Once you have the <color> defined for LED_PADx , you can use .. pad_button_color x in your mapping

PS. How is the quality of the parts (knobs, pads,etc) ? Do the pads feel like touch pads or more like push buttons ?
 

Mensajes Thu 07 Apr 22 @ 10:03 pm
I need to define everything myself. The only profile in their app is MIDI. There is a YouTube video that shows that they have a profile for Virtual DJ, but that is not in the current version of the app. The table you posted is great, it is exactly what I expected from Special Waves (so far no response from them), however it does not work. If I use it in the XML definition file and then map the LED_PAD_01 as color "#00FF00" (= green, to test, I know I need to map it to the actual colour later), the PAD shows a kind of yellow-ish colour, not green :(

So your table is not corresponding to the midi velocity notes of the PAD.

Using your table, I achieve green when I set colour "#FF0000" (= red). I will try to modify your table later. Instead of #RRGGBB, I will swap the RR and GG values so the colour would be defined as #GGRRBB and post the results here. I know it is not sufficient, because the #00FF00 is yelow-ish (not red), but maybe it would get me somewhere (I can try to add transparency).
 

Mensajes Fri 08 Apr 22 @ 1:33 pm
Here are my files (I am defining only one Pad and one Encoder and I plan to copy it for all encoders and Pads once all works as expected. I have the encoder defined as I wanted, but of course any comments to encoder definition are also welcome):
Definition XML
<device name="MINE-S" author="Special Waves" description="Special Waves Mine-S" version="800" type="MIDI" vid="0x04D8" pid="0x003F">
<!-- Buttons-->*
<button note="0x24" channel="0" name="PAD_01" velocity="true" />
<color note="0x25" name="LED_PAD_01" values="table" default="PAD_01" channel="0" defaultvalue="white" fullRGB="yes" table="0x00=#000000,0x01=#000040,0x02=#000080,0x03=#0000C0,0x04=#0000FF,0x05=#004000,0x06=#004040,0x07=#004080,0x08=#0040C0,0x09=#0040FF,0x0A=#008000,0x0B=#008040,0x0C=#008080,0x0D=#0080C0,0x0E=#0080FF,0x0F=#00C000,0x10=#00C040,0x11=#00C080,0x12=#00C0C0,0x13=#00C0FF,0x14=#00FF00,0x15=#00FF40,0x16=#00FF80,0x17=#00FFC0,0x18=#00FFFF,0x19=#400000,0x1A=#400040,0x1B=#400080,0x1C=#4000C0,0x1D=#4000FF,0x1E=#404000,0x1F=#404040,0x20=#404080,0x21=#4040C0,0x22=#4040FF,0x23=#408000,0x24=#408040,0x25=#408080,0x26=#4080C0,0x27=#4080FF,0x28=#40C000,0x29=#40C040,0x2A=#40C080,0x2B=#40C0C0,0x2C=#40C0FF,0x2D=#40FF00,0x2E=#40FF40,0x2F=#40FF80,0x30=#40FFC0,0x31=#40FFFF,0x32=#800000,0x33=#800040,0x34=#800080,0x35=#8000C0,0x36=#8000FF,0x37=#804000,0x38=#804040,0x39=#804080,0x3A=#8040C0,0x3B=#8040FF,0x3C=#808000,0x3D=#808040,0x3E=#808080,0x3F=#8080C0,0x40=#8080FF,0x41=#80C000,0x42=#80C040,0x43=#80C080,0x44=#00C0C0,0x45=#80C0FF,0x46=#80FF00,0x47=#80FF40,0x48=#80FF80,0x49=#80FFC0,0x4A=#80FFFF,0x4B=#C00000,0x4C=#C00040,0x4D=#C00080,0x4E=#C000C0,0x4F=#C000FF,0x50=#C04000,0x51=#C04040,0x52=#C04080,0x53=#C040C0,0x54=#C040FF,0x55=#C08000,0x56=#C08040,0x57=#C08080,0x58=#C080C0,0x59=#C080FF,0x5A=#C0C000,0x5B=#C0C040,0x5C=#C0C080,0x5D=#C0C0C0,0x5E=#C0C0FF,0x5F=#C0FF00,0x60=#C0FF40,0x61=#C0FF80,0x62=#C0FFC0,0x63=#C0FFFF,0x64=#FF0000,0x65=#FF0040,0x66=#FF0080,0x67=#FF00C0,0x68=#FF00FF,0x69=#FF4000,0x6A=#FF4040,0x6B=#FF4080,0x6C=#FF40C0,0x6D=#FF40FF,0x6E=#FF8000,0x6F=#FF8040,0x70=#FF8080,0x71=#FF80C0,0x72=#FF80FF,0x73=#FFC000,0x74=#FFC040,0x75=#FFC080,0x76=#FFC0C0,0x77=#FFC0FF,0x78=#FFFF00,0x79=#FFFF40,0x7A=#FFFF80,0x7B=#FFFFC0,0x7F=#FFFFFF"/>
<button note="0x08" channel="0" name="ENCODER_BUTTON_21" />
<!-- Encoders-->*
<encoder cc="0x76" channel="0" name="ENCODER_21" />
<bar cc="0x76" channel="0" name="LED_ENCODER_21" sendstatic="true" />
<!-- Sliders-->*
<slider aftertouch="0x24" channel="0" name="PAD_1_ATVEL" ghost="no" nozero="yes" />
</device>

Mapping
<?xml version="1.0" encoding="UTF-8"?>
<mapper device="MINE-S" version="850" date="2022-04-08">
<map value="ENCODER_21" action="deck 1 stem FullVocal" />
<map value="LED_ENCODER_21" action="param_add -0.05 & deck 1 stem FullVocal" />
<map value="ENCODER_BUTTON_21" action="deck 1 stem FullVocal 0.5" />
<map value="LED_PAD_01" action="deck 3 pad_button_color 1" />
<map value="PAD_01" action="deck 3 pad 1" />
</mapper>
 

Mensajes Fri 08 Apr 22 @ 1:54 pm
And attached are MIDI configurations of these elements from MineApp
 

Mensajes Fri 08 Apr 22 @ 2:02 pm
They have just sent me the palette.
 

Mensajes Fri 08 Apr 22 @ 4:04 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
Yes, the table was probably some example i gave them from a different controller, and definitely they dont follow any RGB pattern.

Use this ..
table="0x00=#000000,0x01=#560607,0x02=#552B05,0x03=#545507,0x04=#2A5506,0x05=#065506,0x06=#07552B,0x07=#065454,0x08=#062B55,0x09=#070656,0x0A=#2B0654,0x0B=#550655,0x0C=#54072B,0x0D=#550000,0x0E=#540300,0x0F=#550601,0x10=#550B00,0x11=#541600,0x12=#552C00,0x13=#554000,0x14=#555401,0x15=#3F5500,0x16=#2B5501,0x17=#035500,0x18=#065601,0x19=#0B5500,0x1A=#155500,0x1B=#005500,0x1C=#005502,0x1D=#015507,0x1E=#01550A,0x1F=#005516,0x20=#00552B,0x21=#005540,0x22=#015555,0x23=#004054,0x24=#002B55,0x25=#011655,0x26=#000B55,0x27=#000556,0x28=#000255,0x29=#000056,0x2A=#040055,0x2B=#050054,0x2C=#0C0056,0x2D=#160055,0x2E=#2C0055,0x2F=#400056,0x30=#550055,0x31=#550041,0x32=#55002A,0x33=#550017,0x34=#56000B,0x35=#550007,0x36=#550003,0x37=#080808,0x38=#101010,0x39=#202020,0x3A=#404040,0x3B=#808080,0x3C=#C8C8C8,0x3D=#FF2020,0x3E=#FF8021,0x3F=#FFFF21,0x40=#81FF21,0x41=#21FF20,0x42=#20FF80,0x43=#20FEFF,0x44=#2180FF,0x45=#201FFF,0x46=#8020FE,0x47=#FE20FF,0x48=#FF2080,0x49=#FF0F10,0x4A=#FF7F11,0x4B=#FFFF11,0x4C=#80FF10,0x4D=#10FF10,0x4E=#10FF80,0x4F=#11FFFF,0x50=#1080FE,0x51=#100FFF,0x52=#8110FF,0x53=#FF10FF,0x54=#FE1080,0x55=#FE0000,0x56=#FF0800,0x57=#FF1001,0x58=#FF2000,0x59=#FF4001,0x5A=#FF7F00,0x5B=#FFBE00,0x5C=#FFFF01,0x5D=#C0FF00,0x5E=#80FF00,0x5F=#08FF00,0x60=#0FFF00,0x61=#1FFF00,0x62=#40FF00,0x63=#00FF01,0x64=#01FF09,0x65=#01FF11,0x66=#00FE21,0x67=#00FF41,0x68=#00FE81,0x69=#00FEBE,0x6A=#01FFFF,0x6B=#00BFFE,0x6C=#0080FF,0x6D=#0041FF,0x6E=#0020FF,0x6F=#000FFE,0x70=#0008FF,0x71=#0000FE,0x72=#0700FE,0x73=#1000FF,0x74=#2001FF,0x75=#3F00FF,0x76=#7F00FF,0x77=#BF00FE,0x78=#FF00FE,0x79=#FF00BE,0x7A=#FF0080,0x7B=#FF0141,0x7C=#FF0020,0x7D=#FF0010,0x7E=#FF0008,0x7F=#FFFFFF"


Remember, put the table="" above only in your first <color>, then the rest should only have values="table"
 

Mensajes Fri 08 Apr 22 @ 6:12 pm
Thanks a lot, I was a bit scared of creating the table definition having to 127x capture the colours with an eyedropper and writing them down maually. I would expect Special-waves to share it as a table with hex colour codes, not as a picture... Out of curiosity - How did you do it? It works now as expected.

I will now create the XML configuration for the controller and mapping, make it maybe a bit more generic and explain some things I found out (i.e. why it is better to use the encoders as relative encoders, why do I add param_add -0.5 to the encoder LEDs etc.) and publish it here.

Would you have any advice on how to make this more generic for other people as it is a bit special situation where you can reconfigure the placement of knobs/pads/faders freely? I am thinking of defining the XML using a theoretical maximum of all possible devices to capture all configurations:
* 32 encoders
* 32 Pads
* 32 Double Pads
* 10 sliders
* 32 knobs
People would have to assign notes in the MineApp according to the XML... Is it a good idea?

I am planning to use two configurations myself and maybe I started tailoring it to my intended setup too early:
* With Pioneer XDJ-XZ + CDJ-850 as a 4 channels controller for 5 stems on each channel + Pads for CDJ (8 pads, 4x Pad function selector, shift, prev/next bank and one small button would be left to be assigned to a custom function).
* With Pioneer DDJ-800 + CDJ-850 as a 3 channel controller for 5 stems on each channel + 1 channel fader + high/low EQ + Pads for CDJ (same as above).

Any advice is welcome. Thank you again for the help.
 

Mensajes Fri 08 Apr 22 @ 9:07 pm
I see they have no full colours in the picture (#FF000, #00FF00 nor #0000FF). Do I assume correctly that VDJ picks the nearest colour automatically?

Sorry I missed this one:
djdad wrote :
PS. How is the quality of the parts (knobs, pads,etc) ? Do the pads feel like touch pads or more like push buttons ?


I can compare Special Waves with the following devices I have: Pioneer XDJ-XZ, DDJ-800, or recently had: Pioneer FLX-6, Ableton Push 1, Reloop Neon.

The Pads are a bit different to all the above:
* They are relatively hard (harder than XDJ-XZ or DDJ-800), I'd say they are similar to Reloop Neon and Ableton Push 1.
* The material is a bit more sticky (you cannot stroke the Pad while pressing it even lightly, your finger will stick to the Pad) than XDJ-XZ or DDJ-800 - again I would say it is very similar to Reloop Neon and probably identical to FLX-6. It can also be simply the age of the devices and wear - all the devices that I would call less sticky have a lot of hours on their clock.
* It is interesting that the Pads are kind of loose - you are able to move them horizontally (both in x and y direction) at least a half a millimetre. I wouldn't say it is bad, I returned Reloop neon because one of the buttons never returned to 0, here they always reliably return to 0 (I tried hard and I managed to leave it on 2 once out of 40 attempts). All the other devices have the Pads made out of one piece and therefore they feel very "locked to their position". Not here.
* No "crosstalk" - on Ableton Push 1 and on Reloop Neon I was able to trigger the neighbour button if I pressed a Pad firmly and inaccurately. But I wouldn't call them bad, they were just a little prone to this. The construction of Mine-S makes it impossible.
* The sensitivity definition in MineApp translates into the values I see in VDJ - so when it is on 1, a slight touch triggers the pad and reaching 100% means pushing relatively lightly. I kept it on 5 because that means if I just stroke the Pad it does not trigger and getting to 100% is still pleasant. On 10, you have to actually press very hard to get to 100%. But this is based on a short check, I have never used touch-sensitive pads creatively in a show, so cannot really judge.

The dual Pads (one module with two small Pads) are just buttons with a pad-like silicone cover.

Encoders are great, I really like them, I was playing a lot with them (trying to detect some exact positions) and they seem to be exact - one click is always +/- 1 (in the absolute mode). With the HW setting of LEDs, 7 or 8 clicks was always one more LED. If I did a mapping of the encoder LED via VDJ, it was anything between 6 and 14. With relative mapping, it is spot on, I just had to move the LED strip by 0.5 to get the middle LED on on 50%. As a result, the first LED is on on 0% (which is something I wanted).

The slider is definitely not magnetic, for sure not usable as a crossfader. However fast slider tricks are possible - but DDJ-800 has better vertical sliders. It is also pretty long (60mm).

I have no rotary controller, only encoders.

Overall, it feels sturdy and reliable and since I was able to configure it exactly as I wanted, I am happy with it.
 

Mensajes Fri 08 Apr 22 @ 9:26 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
Bowie Groove wrote :
Thanks a lot, I was a bit scared of creating the table definition having to 127x capture the colours with an eyedropper and writing them down maually. I would expect Special-waves to share it as a table with hex colour codes, not as a picture... Out of curiosity - How did you do it? It works now as expected.

I used an eyedropper and manually made the table for you ;)

Bowie Groove wrote :
.... why it is better to use the encoders as relative encoders, why do I add param_add -0.5 to the encoder LEDs etc.

Depends on what you want to control with. For actions that require a step by step increment like browser_scroll, effect_select etc, relative encoder is fine. But with some other actions like eq_, effect_slider etc, you probably have to twist a lot to reach from one end to the other, so in this case, you may want to define as <slider> or <fulljog> with absolute values and define full="" and min/max to make it move from one end to the other much faster.

Bowie Groove wrote :
Would you have any advice on how to make this more generic for other people as it is a bit special situation where you can reconfigure the placement of knobs/pads/faders freely? I am thinking of defining the XML using a theoretical maximum of all possible devices to capture all configurations

Hard to add all possible combinations, all possible CC/Midi values, all possible Midi Channels etc.
So my advise is to create your own custom definition+mapping, share it as an Addon here and give users some good example and comments to help them with their own setup.
 

Mensajes Fri 08 Apr 22 @ 10:28 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
Bowie Groove wrote :
With the HW setting of LEDs, 7 or 8 clicks was always one more LED. If I did a mapping of the encoder LED via VDJ, it was anything between 6 and 14. With relative mapping, it is spot on, I just had to move the LED strip by 0.5 to get the middle LED on on 50%. As a result, the first LED is on on 0% (which is something I wanted).

If you want 1st led to be on when 0%, you could add something like min="0x10" (or some other value that turns the 1st led on)
One other way is to add the values you want in the <bar> like the example below ..
<bar cc="0x75" values="0x00,0x01,0x15,0x2A,0x40,0x55,0x70,0x7F" name="LED_ENCODER_01" channel="0"/>

The values are just an example, you can check with MIDIOX what you need to send for each led to be turned on.

BTW, thanks for the feedback. I understand that the quality may not be superb (dont expect to have Pioneer quality here), but i think the lowdown is its price (not the best value for money product imo), but always good to have some customized hardware.
I hope they come up with some more user-friendly VDJ-Export option.

 

Mensajes Fri 08 Apr 22 @ 10:33 pm
locoDogPRO InfinityModeratorMember since 2013
not wanting to muddy the waters, but absolute encoders can be scripted to act as relative... If your mapping needs it.
A bit edge case but it can be done.

param_equal 1 ? browser_scroll +1 : param_equal 0 ? browser_scroll -1 : param_delta & param_bigger 0 ? browser_scroll +1 : browser_scroll -1
 

Mensajes Fri 08 Apr 22 @ 10:44 pm
As for the quality - for me, only sliders feel a bit ordinary (not bad, just not the best possible). The rest feels premium. The price is 35% above the combined price of Reloop Neon (which is a low quality product, fixed in HW to a config I do not want, but it has a few extra buttons) and Midi Fighter Twister (I never tried it, it has only 16 encoders). In my case, the main cost driver was that I bought 20 encoders. I do not think it is bad considering the flexibility. I am very happy with the encoders, they feel more precise than the ones on Ableton Push 1.

djdad wrote :
One other way is to add the values you want in the <bar> like the example below ..
<bar cc="0x75" values="0x00,0x01,0x15,0x2A,0x40,0x55,0x70,0x7F" name="LED_ENCODER_01" channel="0"/>

The values are just an example, you can check with MIDIOX what you need to send for each led to be turned on.

Thanks for the tip, I'll try it. I experimented with min, max and zero values a lot in absolute mode, but whatever I tried made VDJ go wild (the control was jumping up and down without any apparent reason). Since I also wanted to "speed up" the encoder, I switched it to relative and that works great.

Can I ask for a guidance on a script that would enable me to map the behaviour of the FullVocal stem (mute when turning left, isolate when turning right) for other basic stems (Instru, HiHat, Kick, Base)?

My understanding is that stem function is mute stem on left and emphasise stem volume on the right.

Thanks a lot.
 

Mensajes Sat 09 Apr 22 @ 9:10 am

How do I achieve having additional 4 pages (Shift-page-1...Shift-page-4) available in the drop-down for my controller? I have it there for DDJ-800 and for XDJ-XZ, but I am unable to define it for my custom controller...
I see that I am able to assign Pad pages 5-8 by the config option padsPagesChanged, but I would like to have them in the menu same as for the other controllers.
 

Mensajes Sun 10 Apr 22 @ 12:43 pm
I am mapping two of the buttons to switch Pad parameters (pad_param +/-1 and with Shift as pad_param2 +/-1) - similar to the PAGE arrows on DDJ-800.
I would like to change the colour of these buttons in some cases and I am hoping you can give me some hints on Pad pages script so I am able to query the below info...I hope I do not have to define it specifically for each function as in the first HotCue case (for some functions, such as Sampler, it would not be possible):

  • When a user reaches "the end" (there is nowhere to go further in that direction) I would like to use a brighter colour for the pad that will do nothing when clicked. I kind of achieved it by the following definition for 2 HotCues pages:
    deck 3 pad_page hotcues ? deck 3 var 'hc_page' 0 ? color "red" :  color "#330000"
    but I do not know how to do it generically, i.e. for Loop. Loop has 6 pages and I would like to show the highlighted left arrow on page 1 and highlighted right arrow on page 6. How do I query if I am on the first or last available page?
  • I would like to turn off the LEDs (or highlight both of them so they follow the logic from the previous point) when there are no pages available - such as on Loop roll. How do I detect that there are no pages at all?
  • I would like the button to give visual feedback when I click on it. I tried "down" on the LED_BUTTON_31 definition, but it does not work. I do not know what are all the possible functions (as the button is supposed to cycle through pad pages) therefore I cannot query the functions.


I see that other controllers already define the buttons not generically, but specifically for a function - i.e. these generic buttons are defined as HOTCUE_PAGE+ and HOTCUE_PAGE- and then again as i.e. BEATJUMP_PAGE+ and BEATJUMP_PAGE-.
It makes the mapping easier to read, but how can I achieve that (and shall I want to or it is a result of some HW limitation)?
 

Mensajes Sun 10 Apr 22 @ 1:21 pm
djdad wrote :
One other way is to add the values you want in the <bar> like the example below ..
<bar cc="0x75" values="0x00,0x01,0x15,0x2A,0x40,0x55,0x70,0x7F" name="LED_ENCODER_01" channel="0"/>

The values are just an example, you can check with MIDIOX what you need to send for each led to be turned on.

In the end, it works best when I define the encoder LEDs in the XML as
<bar cc="0x77" channel="0" name="LED_ENCODER_11" sendstatic="true" min="0x05" />

The middle LED is on exclusively when I am on 50%, the first LED is on when I am on 0%... Thanks for the hint.
 

Mensajes Sun 10 Apr 22 @ 1:34 pm
87%