Connexion rapide:  

Forum: VirtualDJ Technical Support

Sujet Advice on viewing panels in XML files
Hello everyone,
I ask for advice to understand if what I would like to do is possible. I assigned these different panels in the new Vrtual DJ live skin, written in this order, only the last 3 panels (Vocal, Melody, Rhythm) will be displayed correctly when I press the pad of the relative stem, the first 5 will display incorrect names and added to the names of the other pads dedicated to stems. If I reverse the order in the XML file by placing the Vocal, Melody, Rhythm and the other 5 panels first, the 5 panels will be displayed with the correct names and the first three with the wrong names. In practice, only the panels written in the second block in writing order are displayed correctly. Now since there is no "get_stem_name" function, I was wondering if it is possible to make these two panel blocks independent of each other so that they are all displayed correctly when their respective stem pads are pressed.

To reduce the post I don't write everything about the names and positioning of the panels but only what should make them visible:

<define class="stemspanel">
<group name="stems_pads" visibility="mute_stem 'vocal' ? on : off ">

<group name="stems_pads" visibility="mute_stem 'instru' ? on : off ">

<group name="stems_pads" visibility="mute_stem 'bass' ? on : off ">

<group name="stems_pads" visibility="mute_stem 'kick' ? on : off ">

<group name="stems_pads" visibility="mute_stem 'hihat' ? on : off ">

</define>

<define class="stemspanel">
<group name="stems_pads" visibility="only_stem 'vocal' ? on : off ">

<group name="stems_pads" visibility="only_stem 'melody' ? on : off ">

<group name="stems_pads" visibility="only_stem 'rhythm' ? on : off ">

</define>


<item class="stemspanel" visibility="is_using 'stems' 1000ms"></item>


Thanks to those who can give me an answer.

 

Posté Tue 02 Nov 21 @ 11:46 am
If you define two or more classes with the same name, only the latest one gets loaded by the skin engine (actually the second instance overwrites the first)

Therefore I believe you just need to rename your classes to have unique names
 

Posté Tue 02 Nov 21 @ 1:08 pm
PhantomDeejay wrote :
If you define two or more classes with the same name, only the latest one gets loaded by the skin engine (actually the second instance overwrites the first)

Therefore I believe you just need to rename your classes to have unique names



Yes, I imagined it, in fact, I did all the tests I thought possible, but, if I name the first block, for example

<define class = "stemspanel1">

and the second

<define class = "stemspanel2">

I also have to create

<item class = "stemspanel1" visibility = "is_using 'stems' 1000ms"> </item>

<item class = "stemspanel2" visibility = "is_using 'stems' 1000ms"> </item>


and in this case I will have displayed two panels at a time on the live skin because they both use is_using 'stems' and both only stem and mute stem are related functions.

Can this be solved? Thanks PhantomDeeJay

 

Posté Tue 02 Nov 21 @ 2:01 pm
Can anyone give me any other advice or tell me if what I would like to do is possible?

Thanks
 

Posté Wed 10 Nov 21 @ 12:32 am
I'm not sure after what you're trying to achieve here.
Mostly because everything can be simplified like this:
<define class="stemspanel">
<group name="stems_pads" visibility="mute_stem 'vocal' ? on : off "/>
<group name="stems_pads" visibility="mute_stem 'instru' ? on : off "/>
<group name="stems_pads" visibility="mute_stem 'bass' ? on : off "/>
<group name="stems_pads" visibility="mute_stem 'kick' ? on : off "/>
<group name="stems_pads" visibility="mute_stem 'hihat' ? on : off "/>
<group name="stems_pads" visibility="only_stem 'vocal' ? on : off "/>
<group name="stems_pads" visibility="only_stem 'melody' ? on : off "/>
<group name="stems_pads" visibility="only_stem 'rhythm' ? on : off "/>
</define>
<item class="stemspanel" visibility="is_using 'stems' 1000ms"/>

In other words, since the individual groups are not meant to be shown together they can be combined.
Another way (depending on what your skin looks like) could be this:
<define class="stemspanel">
<panel name="mute_stems" visible="mute_stem 'vocal' ? on : mute_stem 'instru' ? on : mute_stem 'bass' ? on : mute_stem 'kick' ? on : mute_stem 'hihat' ? on : off">
<group name="stems_pads" visibility="mute_stem 'vocal' ? on : off "/>
<group name="stems_pads" visibility="mute_stem 'instru' ? on : off "/>
<group name="stems_pads" visibility="mute_stem 'bass' ? on : off "/>
<group name="stems_pads" visibility="mute_stem 'kick' ? on : off "/>
<group name="stems_pads" visibility="mute_stem 'hihat' ? on : off "/>
</panel>
<panel name="only_stem" visible="only_stem 'vocal' ? on : only_stem 'melody' ? on : only_stem 'rhythm' ? on : off">
<group name="stems_pads" visibility="only_stem 'vocal' ? on : off "/>
<group name="stems_pads" visibility="only_stem 'melody' ? on : off "/>
<group name="stems_pads" visibility="only_stem 'rhythm' ? on : off "/>
</panel>
</define>
<item class="stemspanel" visibility="is_using 'stems' 1000ms"/>

 

Posté Wed 10 Nov 21 @ 9:23 am
PhantomDeejay wrote :
I'm not sure after what you're trying to achieve here.
Mostly because everything can be simplified like this:
<define class="stemspanel">
<group name="stems_pads" visibility="mute_stem 'vocal' ? on : off "/>
<group name="stems_pads" visibility="mute_stem 'instru' ? on : off "/>
<group name="stems_pads" visibility="mute_stem 'bass' ? on : off "/>
<group name="stems_pads" visibility="mute_stem 'kick' ? on : off "/>
<group name="stems_pads" visibility="mute_stem 'hihat' ? on : off "/>
<group name="stems_pads" visibility="only_stem 'vocal' ? on : off "/>
<group name="stems_pads" visibility="only_stem 'melody' ? on : off "/>
<group name="stems_pads" visibility="only_stem 'rhythm' ? on : off "/>
</define>
<item class="stemspanel" visibility="is_using 'stems' 1000ms"/>

In other words, since the individual groups are not meant to be shown together they can be combined.
Another way (depending on what your skin looks like) could be this:
<define class="stemspanel">
<panel name="mute_stems" visible="mute_stem 'vocal' ? on : mute_stem 'instru' ? on : mute_stem 'bass' ? on : mute_stem 'kick' ? on : mute_stem 'hihat' ? on : off">
<group name="stems_pads" visibility="mute_stem 'vocal' ? on : off "/>
<group name="stems_pads" visibility="mute_stem 'instru' ? on : off "/>
<group name="stems_pads" visibility="mute_stem 'bass' ? on : off "/>
<group name="stems_pads" visibility="mute_stem 'kick' ? on : off "/>
<group name="stems_pads" visibility="mute_stem 'hihat' ? on : off "/>
</panel>
<panel name="only_stem" visible="only_stem 'vocal' ? on : only_stem 'melody' ? on : only_stem 'rhythm' ? on : off">
<group name="stems_pads" visibility="only_stem 'vocal' ? on : off "/>
<group name="stems_pads" visibility="only_stem 'melody' ? on : off "/>
<group name="stems_pads" visibility="only_stem 'rhythm' ? on : off "/>
</panel>
</define>
<item class="stemspanel" visibility="is_using 'stems' 1000ms"/>



Thanks PhantomDeeJay for your time. In addition to the solutions I tried, I just tried the one you suggested, unfortunately the result does not change the names of the stems are always overlapped and this time no group (isolate, remove) appears with the correct names.

here are the complete commands:

<define class="stemspanel">
<panel name="mute_stems" visible="mute_stem 'vocal' ? on : mute_stem 'instru' ? on : mute_stem 'bass' ? on : mute_stem 'kick' ? on : mute_stem 'hihat' ? on : off">
<group name="stems_pads" visibility="mute_stem 'vocal' ? on : off ">
<size width="370" height="170"/>
<square class="panelback"></square>
<square class="bigpad"></square>
<visual>
<pos x="+25+30-15" y="+25+30-15"/>
<size width="90" height="90"/>
<off x="681" y="31" width="90" height="90"/>
</visual>
<textzone>
<pos x="+170" y="+55"/>
<size width="160" height="30"/>
<text fontsize="22" align="left" weight="bold" color="brighttext" text="VOX"/>
</textzone>
<textzone >
<pos x="+170" y="+55+25"/>
<size width="160" height="30"/>
<text fontsize="20" align="left" weight="" color="darktext" text="Remove"/>
</textzone>
</group>

following the groups instru, bass, kick and last hihat then:

<group name="stems_pads" visibility="mute_stem 'hihat' ? on : off ">
<size width="370" height="170"/>
<square class="panelback"></square>
<square class="bigpad"></square>
<visual>
<pos x="+25+30-15" y="+25+30-15"/>
<size width="90" height="90"/>
<off x="681" y="31" width="90" height="90"/>
</visual>
<textzone>
<pos x="+170" y="+55"/>
<size width="160" height="30"/>
<text fontsize="20" align="left" weight="bold" color="brighttext" text="HIHATS"/>
</textzone>
<textzone >
<pos x="+170" y="+55+25"/>
<size width="160" height="30"/>
<text fontsize="20" align="left" weight="" color="darktext" text="Remove"/>
</textzone>


</group>

</panel>

then continuing with the groups of isolated stems:

<panel name="only_stem" visible="only_stem 'vocal' ? on : only_stem 'melody' ? on : only_stem 'rhythm' ? on : off"
<group name="stems_pads" visibility="only_stem 'vocal' ? on : off ">
<size width="370" height="170"/>
<square class="panelback"></square>
<square class="bigpad"></square>
<visual>
<pos x="+25+30-15" y="+25+30-15"/>
<size width="90" height="90"/>
<off x="681" y="31" width="90" height="90"/>
</visual>
<textzone>
<pos x="+170" y="+55"/>
<size width="160" height="30"/>
<text fontsize="20" align="left" weight="bold" color="brighttext" text="VOX"/>
</textzone>
<textzone >
<pos x="+170" y="+55+25"/>
<size width="160" height="30"/>
<text fontsize="20" align="left" weight="" color="darktext" text="Isolate"/>
</textzone>

</group>

following the groups melody, and last rhythm then:

<group name="stems_pads" visibility="only_stem 'rhythm' ? on : off ">
<size width="370" height="170"/>
<square class="panelback"></square>
<square class="bigpad"></square>
<visual>
<pos x="+25+30-15" y="+25+30-15"/>
<size width="90" height="90"/>
<off x="681" y="31" width="90" height="90"/>
</visual>
<textzone>
<pos x="+170" y="+55"/>
<size width="160" height="30"/>
<text fontsize="22" align="left" weight="bold" color="brighttext" text="RHYTHM"/>
</textzone>
<textzone >
<pos x="+170" y="+55+25"/>
<size width="160" height="30"/>
<text fontsize="20" align="left" weight="" color="darktext" text="Isolate"/>
</textzone>

</group>

</panel>

</define>

Here are some examples of how stem names appear in the live skin panel:





 

Posté Thu 11 Nov 21 @ 11:05 am
NicotuxHome userMember since 2014
It look like you wanna display independently things that depends on each other
only stem mutes/unmutes other, but stems are not switches only they are levels
MeloVocal, Melody, Rhythm are multiple stems at a time

what you may try is to use pad to detect which one was pressed and test stem to get status after that
pad_pushed 1 ? mute_stem 'vocal' ? on : off
pad_pushed 2 ? mute_stem 'instru' ? on : off
...

and for umute
pad_pushed 1 ? mute_stem 'vocal' ? off :on
pad_pushed 2 ? mute_stem 'instru' ? off : on

same apply to only_stem

this won't work with sliders
 

Posté Thu 11 Nov 21 @ 3:51 pm
Nicotux wrote :
It look like you wanna display independently things that depends on each other
only stem mutes/unmutes other, but stems are not switches only they are levels
MeloVocal, Melody, Rhythm are multiple stems at a time

what you may try is to use pad to detect which one was pressed and test stem to get status after that
pad_pushed 1 ? mute_stem 'vocal' ? on : off
pad_pushed 2 ? mute_stem 'instru' ? on : off
...

and for umute
pad_pushed 1 ? mute_stem 'vocal' ? off :on
pad_pushed 2 ? mute_stem 'instru' ? off : on

same apply to only_stem

this won't work with sliders


That's right, that's why I was trying to understand if it is possible to make the display of the two stem panels independent. I will also try your advice. Thanks
 

Posté Thu 11 Nov 21 @ 9:52 pm