Sign In:     


Forum: VirtualDJ Skins

Topic: Code for selection knob
I want to create a knob that has 360 degree freedom for selecting color FX. I cannot find an example in the defaults, and I cannot recreate the current knobs from the skin documentation.

Example of what I want it to look like (but with the color fx options): https://imgur.com/a/4nGwXlQ

Has anybody accomplished something like this? It's very hard to see the other skins to know if there is an example of it elsewhere.
 

Posted 4 days ago @ 7:55 pm
No, current skin tools don't allow for such a skin element to be created with ease and IMHO it's also not practical.
Trying to "move" a little circle knob on screen to select an effect is quite harder than clicking an arrow and then selecting the effect you want from a drop down menu.
 

Hmm.. I wonder if something similar could be done with a simple shapes line with markers to the separate fx.

I don't know why it would be so much more difficult to control than any other knob, but in my case, I'm not touching the keyboard, I'm controlling everything with a midi controller. My problem right now is that I press a button to change the fx, but don't know how far away the one I want is. It makes it a very cumbersome process that requires me staring at the screen. But, if I could at a glance see that I'm 3 effects away, I could simply tap the button three times while my attention is on other things. Or, quickly seeing that if I press the left selection instead of the right I'm 1 away instead of 10, would save a heap of frustration.
 

You could use effect_select_popup +1 on the button on your controller to move to the next effect. This will open the effect selection drop-down, making it easier to see where in the list you are
 

Oh, that is a great idea! Unfortunately for me, I only see the popup command for fx, and not color fx, which is what I'm trying to get to work.

I was playing around with it today and created the following.

<panel class="knob" x="+0" y="+55+55+80+60" textleft="-15" textwidth="72">
<slider action="filter_selectcolorfx" orientation="round">
<fader move="circ"/>
<fill color="none" backcolor="none"/>
</slider>
<textzone>
<text text="vox" align="right"/>
<pos x="+16-26" y="+16+22"/>
<size width="16" height="8"/>
</textzone>
<textzone>
<text text="cut"/>
<pos x="+16-26" y="+16+4"/>
<size width="16" height="8"/>
</textzone>
</panel>


Moving the knob around with the mouse does change the color fx, but I hit two issues. The first, was I couldn't get more than one textarea to display. The second, and more likely to not have a solution, was changing the color fx external to the knob does not actually change the slider position, and there is no way to say `if filter_selectcolorfx=='loop roll' then angle="45"`, or something like that.

I think my next attempt will be to imitate the popup by writing out the color fx options in the ui. I assume I could highlight the selected color fx. If I took this a step more, I could put the text around a circle knob, and then maybe add my own indicator line to see what is selected using multiple line shapes and visibility. Somewhat of a mess, but possibly worth. I'll need to figure out the issue with displaying multiple textareas..
 

effect_select_popup colorfx +1 should also work I think
 

Thanks! This worked - kinda. My original code was:

shift ? action_deck 1 ? deck all filter_selectcolorfx -1 : deck all filter_selectcolorfx +1 : filter_activate

which switched it for both decks. Apparently you cannot use "deck all" with the popup, so I attempted to do both:

shift ? action_deck 1 ? deck 1 filter_selectcolorfx -1 & deck 2 effect_select_popup colorfx -1 : deck 1 filter_selectcolorfx +1 & deck 2 effect_select_popup colorfx +1 : filter_activate

but the problem is that when I do this, the initial press for the popup does not actually change the fx, it opens the popup and subsequent calls change it. Thus, the effects get out of sync between the decks, so I cannot use the single popup.

I think one solution would be to switch the buttons from doing forward & back for both decks, to only doing forward with each deck individually with the popup. I'll have to think about this. It's really nice having a back button when I inevitably pass what I want, but maybe I'll pass a lot less if I can see the list..

ps. My previous idea of using visibility and faking a rotary knob looks like it could've worked, but I quickly ran into an issue where lines can only be horizontal or vertical, not at an angle..
 

For the skin, you could use a slider that's defined by an image strip. A bit of work, but allows you to have an image for each position of the slider