Quick Sign In:  

Forum: VirtualDJ Technical Support

Topic: Correct VDJ Script procedure for changing skins
grennoPRO InfinityMember since 2012
Can someone tell me the correct way to use VDJ script to change skins? Nothing I do seems to work.

i.e. Change to :

- default 4 skin PRO layout
- default 4 skin Performance layout

If there is a way to change the racks and deck layout also, that'd be great
 

Posted Wed 02 Oct 19 @ 11:45 pm
load_skin "nameOfSkin:Variant"

load_skin "Default:Pro"
--

Or just :

load_skin ":Pro"
load_skin ":Performance"

If you switch skin variant from within a "group" (like if you are already using one of the new defaults), you can drop the name part before the colon, and only use variant..
 

Posted Thu 03 Oct 19 @ 12:05 am
grennoPRO InfinityMember since 2012
Great, cheers.

How about switching racks/number of decks. Is that possible?
 

Posted Thu 03 Oct 19 @ 12:52 am
RanikiPRO InfinityMember since 2018
Yes, - sorry to bump this - but is there a script for changing the skin options such as the number of decks, or whether there are two or four waveforms showing?

Rather than having 4 waveforms showing all the time I would like to have two but be able to easily shift to 4 when needed without using a mouse and menus!

Thanks for any help....
 

Posted Mon 27 Jan 20 @ 10:23 pm
locoDogPRO InfinityModeratorMember since 2013
Pretty much everything that can be set on the skin is either a variable [some require a skin reload]
Or a persistent skin panel.

looking at var_list will give you hints what is variable driven [hopefully skinners will move to PSPs now it's an option as the var_list gets awkward to read]

most are pretty well described

toggle '@$4decks' & load_skin
toggle '@$4waveforms'

toggle '$fx_rack' & load_skin
toggle '$mixer_rack' & load_skin
toggle '$video_rack' & load_skin

compact
set '@$decklayout' 0 & load_skin
full
set '@$deck_layout' 1 & load_skin
small
set '@$deck_layout' 0 & load_skin

colour scheme is in there, so it wave type, postion, jog type



skin_panel '@pads16_deck1' 1
skin_panel '@fxknobs_deck1' 1


List of skin panels

@fxsingle_deck1
@fxsliders_deck1
@fxknobs_deck1
@pads16_deck1
@fxknobs_deck2
@fxsliders_deck2
@pads16_deck2
@loopadjust_deck1
@loopdefault_deck1
@savedloops_deck1
@looprec_deck1
@loopbuttons_deck1
@loopadjust_deck2_compact
@loopdefault_deck2_compact
@savedloops_deck2_compact
@looprec_deck2_compact
@customs_deck2_compact
@timecode_deck2_compact
@fxknobs_deck2_compact
@padparams_deck2_compact
@padfavorite_deck2_compact
@hotcues_2row_deck2_compact
@loopadjust_deck1_compact
@loopdefault_deck1_compact
@savedloops_deck1_compact
@looprec_deck1_compact
@customs_deck1_compact
@timecode_deck1_compact
@hotcues_2row_deck1
@padparams_deck1
@padfavorite_deck1
@hotcues_2row_deck1_compact
@padparams_deck1_compact
@padfavorite_deck1_compact
@fxknobs_deck1_compact
@fxsingle_deck2
@hotcues_deck2
@custom_deck2
@pads16_deck1
@fxsliders_deck1
@fxknobs_deck1
@fxsingle_deck1
@padfavorite_deck1
@padfavorite_deck2
@fxknobs_deck2
@fxsliders_deck2
@fxsingle_deck2
@pads16_deck2
@loopadjust_deck1
@loopdefault_deck1
@savedloops_deck1
@looprec_deck1
@loopbuttons_deck1
@savedloops_deck2
@loopdefault_deck2
@loopadjust_deck2
@looprec_deck2
@loopbuttons_deck2
@hotcues_deck2
@custom_deck2
@hotcues_deck22
@savedloops_top_deck2
@timecode_deck2
leftdeck1
leftdeck3
@pads16_deck3
@fxsliders_deck3
@fxknobs_deck3
@fxsingle_deck3
@padfavorite_deck3
@savedloops_deck3
@loopdefault_deck3
rightdeck2
rightdeck4
@savedloops_deck4
@loopdefault_deck4
@padfavorite_deck4
@pads16_deck4
@fxsliders_deck4
@fxknobs_deck4
@fxsingle_deck4
 

Posted Mon 27 Jan 20 @ 11:04 pm
RanikiPRO InfinityMember since 2018
Is there a way to get a list of panels in a similar way as getting variables using var_list.... or do you just have to work your way through the skin xml file?
(I really haven't got my head around skins yet so please excuse if this is a real dumb newb question!)

And is there a difference between a variable and a panel, or was it just the older way of doing things?
 

Posted Tue 28 Jan 20 @ 7:46 pm
locoDogPRO InfinityModeratorMember since 2013
Well I listed the default skin, skin panels above, I pulled them from settings "skinPanels" side note in that list ! means available but not chosen, and !! means hidden by the user and can't be chosen until unhidden.
I'm not sure on other skins if they list there.

my knowledge is shaky on the history but panels are either true or false and the skin decides that onload, so previously if skin maker wanted panel changes to stick between sessions they set the visibility with persistent variables [ones starting @]
that did the trick, but super sized skins ended up filling the var list and the stuff I'm trying work on those vars ended up low in the list. so I really went off custom super size skins and grew to love my tweaked default skin.
Panels are also grouped so only 1 of the group can be visible.

With the 2k2x release they moved to persistent skin panels, which in as far as I figure is more or less a var list just for skins.

Why they changed, I'm not sure, must be better.
Hopefully skinners switch to PSPs, but this is vdj and there's usually several ways to do the same thing.

as for a panel list of other skins, I think you'll be digging through the xml but some skins you might need to poke variables
 

Posted Tue 28 Jan 20 @ 8:37 pm
Panels were always persistent.
What have changed in 2020 is that now you can hide some panels from a group of panels when before you couldn't.
In other words a group of panels can have 5 panels, but the user can select to "cycle" only 3 of them when before he had to cycle between all 5

The use of variables to control panels came for another reason. It came because with one variable you can control the behavior of many elements & panels, while with "native" panel commands you could control only one group.

So, with variables you can have 5 panels from 5 different groups toggle on/off with just one action: toggle '@$somevar'

With "native" panel actions you need to write something like: skin_panel 'OnePanelVar' on ? skin_panel 'OnePanelVar' off & skin_panel 'TwoPanelVar' off & skin_panel 'ThreePanelVar' off & skin_panel 'FourPanelVar off' & skin_panel 'FivePanelVar' off : skin_panel 'OnePanelVar' on & skin_panel 'TwoPanelVar' on & skin_panel 'ThreePanelVar' on & skin_panel 'FourPanelVar on' & skin_panel 'FivePanelVar' on

This is just for a toggle of 5 panel groups. Now imagine the chaos if you want to control 6 variations of 5 panel groups...

The new actions added for panels on version 2020 are not there to substitute the previous ways of handling panels. They are there to add more functionality and complement the already existing tools.
 

Posted Wed 29 Jan 20 @ 11:39 am
locoDogPRO InfinityModeratorMember since 2013
Thanks for the info, I never got too deep with panel groups, in fact any panels I added were crudely draw over the top of everything else.
I can see how vars are sensible now, but I still like how you can arrange to your own custom look with skin_panel scripts.
 

Posted Wed 29 Jan 20 @ 12:19 pm
RanikiPRO InfinityMember since 2018
I'm probably being a bit dim, but I've never quite got the hang of the various elements Groups/Panels/PanelGroups/Split Panels etc

I tried looking it up in the SDK WIki and:

Group : "The group elements allows you to group elements together."
Panel : "A panel is a zone that groups together several other elements"
SplitPanels : "The <split> element is used to define 2 panels that share the same area in a skin.... Split panels can be nested."

Could someone explain in really simple language what the difference is? As you can see I've tried looking up in the SDK wiki..... but.... :-D

 

Posted Thu 30 Jan 20 @ 9:39 am
locoDogPRO InfinityModeratorMember since 2013
Split panels are like the browser
so the parent [top of the split panel nesting] is the folders list, the left side of it is fixed and if you want you can span the whole screen. it is split with the songs list, whatever space isn't taken by folders is taken up by songs. But songs is split with sidelist, whatever space is left after songs is taken by the sidelist. But sidelist is split with info etc.etc
 

Posted Thu 30 Jan 20 @ 11:16 am
RanikiPRO InfinityMember since 2018
Thanks Locodog, that's much clearer :-)

Panels and PanelGroups/Groups?
 

Posted Thu 30 Jan 20 @ 11:44 am
locoDogPRO InfinityModeratorMember since 2013
Big question and I don't think I could answer accurately.

probably best you study the starter skin mixer [starts line 798 ends 959]
if panels have the same group="" element then only one of those panels can be visible at one time, like the audiomixer & videomixer 806 871
panels can be a child of a group, but might or might not have a panel group element
groups can be a child of a panel
panels can be a child of a panel
groups can be a child of a group

They're just ways of collecting elements, and child elements inherit something from their parents [be it the base x y co-ords, visibility or something.

I'm not going to get into <stack> as I get it but can't explain it well, and nobody has used it in a skin [other than video skins]
 

Posted Thu 30 Jan 20 @ 12:29 pm
NicotuxHome userMember since 2014
If i understand correctly :

GROUPS;
groups can have up to 5 selectable panels wich will individually display one at a time in a predefined order
- tooltips are sometime a problem here

RACK:
racks can have any units and can display up to 4 panels at a time 1 using up to 3 versions of the panels in any combination
sizes: 1 panel, 1/2 +1/2 two panels, 1/4+1/4+1/2 three panels, or 1/4+1/4+1/4+1/4 for 4 panels
the 3 versions of a panel are bundle in a unit
in 3 panels mode user can select which one of the panels will take the biggest place
if none or selected one is not visible, the first displayed one will be priorized
- Rack with some bad panel in units can crash VDJ

STACK:
stacks can have any items which can display individualy with transition fade effect if needed
they can be selected in a menu by using visibility
- Badly effects are instable in many systems and prevent items from appearing

SPLIT:
split panels are 2 or more panels sharing the same area with variable size, all always filling the full area
there are 2 types of splits vertical with <top> and <bottom> childs and with horizontal <left> and <right> childs
every area needs to define the "fixed" border and the moving one using attachX= or attachY= parameters
a separator is needed between areas in a way to get a handle to close/open/resize the area
- splits can be nested... but it seems they must be the same type
 

Posted Thu 30 Jan 20 @ 5:00 pm
RanikiPRO InfinityMember since 2018
Glad it's looks like it's not just me then - it IS complicated! :-D

So 'Groups' can contain 'Panels'.... and 'Panels' can contain ''Groups'....
(and I'm assuming 'PanelGroups' = 'Groups'?)

and presumably a 'Panel' could contain a 'group' that contained a 'group' that contained a 'panel'..... :-O
...
 

Posted Fri 31 Jan 20 @ 8:46 am
locoDogPRO InfinityModeratorMember since 2013
Yep, turtles all the way down.
 

Posted Fri 31 Jan 20 @ 11:09 am
Am I missing something with the skin switching? I'm trying to get one button to swap between Default Pro and Performance skins. Tried several variation like the following ...

load_skin "Default:Pro" var ? load_skin "Default:Performance"
load_skin "Default:Pro" ? load_skin "Default:Performance"
load_skin "Default:Pro" : load_skin "Default:Performance"

What am I missing?
 

Posted Wed 15 Dec 21 @ 9:26 pm
this works for me, give it a try.


load_skin 'Default:Pro' ? load_skin 'Default:Performance' : load_skin 'Default:Pro'

Pete
 

Posted Wed 15 Dec 21 @ 10:56 pm
I tested this on a keyboard shortcut, but I suppose it should work on a button.
 

Posted Wed 15 Dec 21 @ 11:01 pm
Thank you so much. I was totally missing that last part. You rock!
 

Posted Wed 15 Dec 21 @ 11:17 pm