Quick Sign In:  

Forum: VirtualDJ Technical Support

Topic: Live Skin & Stems
Hello to all,
I enjoyed updating the Virtual DJ live skin even though I encountered a small bug:

When you turn off any pad dedicated to stems in the live skin, the mixer equalizer appears for milliseconds.

Right on the stems displayed in the live skin I'm trying to do a more detailed job and here comes the problem:

By copying the dedicated "stemspanel" part several times, I was able to assign a different stem for each recopied part, this applies to the stems to be removed so if, for example, I press the pad assigned to remove the voice from the song, VOCAL REMOVE appears on the live skin, if I press the pad assigned to remove the bass from the song on the live skin BASS REMOVE appears, all this also for INSTRU, HIHAT AND KICK, all this works perfectly.
The problem occurs when I try to do the same thing with the stems to be isolated, if I copy other three parts and assign the commands for viewing the isolated stems (VOCAL, MELODY, RHYTHM) the names displayed in the live skin are superimposed on those of the stem to remove, in practice you can see both. This certainly depends on the fact that by isolating the stems, the pads assigned to the stems to be removed are also activated, so the live skin displays them both.
Is there anything I can do with the VISIBILITY function to prevent the names from overlapping?
Obviously if I remove the part of the stems to be removed from the mapping, the stems to be isolated are displayed well, if I remove the stems to be isolated the stems to be removed are displayed well.
In conclusion the commands I have given work well (mute_stem to removed and only_stem to isolate) but the stems to be removed and those to be isolated cannot coexist together in the visualization.

Thanks to anyone who can give me advice!
 

geposted Sun 26 Sep 21 @ 7:36 pm
NicotuxHome userMember since 2014
What you ask for greatly depends on the way you implemented the skin parts

really difficult to give an answer in this case

but when you can have isolated (solo) stem all other stems are automatically removed
maybe in this case removed stems may not display
you can set the visibility of these panels (solo / removed) to be shown independently

again implementation depends on yours
 

geposted Sun 26 Sep 21 @ 7:55 pm
Nicotux wrote :
What you ask for greatly depends on the way you implemented the skin parts

really difficult to give an answer in this case

but when you can have isolated (solo) stem all other stems are automatically removed
maybe in this case removed stems may not display
you can set the visibility of these panels (solo / removed) to be shown independently

again implementation depends on yours


Thanks for your reply, I might try. The commands currently in the live skin are these I do only an example for the removed and one for the isolated:

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

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

How do you think I could show the panels individually with solo / removed? Thanks
 

geposted Sun 26 Sep 21 @ 8:10 pm
NicotuxHome userMember since 2014
You may try things like this
<panel visibility="only_stem ? on  :  off">
<group name="stems_pads" visibility="mute_stem ' bass' ? on : off ">
...
</panel>
<panel visibility="only_stem ? off : on">
<group name="stems_pads" visibility="only_stem 'melody' ? on : off ">
...
</panel>
 

geposted Sun 26 Sep 21 @ 8:36 pm
Nicotux wrote :
You may try things like this
<panel visibility="only_stem ? on  :  off">
<group name="stems_pads" visibility="mute_stem ' bass' ? on : off ">
...
</panel>
<panel visibility="only_stem ? off : on">
<group name="stems_pads" visibility="only_stem 'melody' ? on : off ">
...
</panel>


Unfortunately, in this way only the removed stems are displayed correctly while the isolated ones display the last name of those removed.

 

geposted Sun 26 Sep 21 @ 9:54 pm
NicotuxHome userMember since 2014
not the exact solution, just an example of alternate panels
must of course adjust to match your needs
 

geposted Sun 26 Sep 21 @ 11:40 pm
Nicotux wrote :
not the exact solution, just an example of alternate panels
must of course adjust to match your needs


Yes, in fact I did some tests by changing the Visibility but none of them are effective, it is not easy to understand how to make two independent functions that fit together.
 

geposted Mon 27 Sep 21 @ 12:12 am
None of our great team can give me a suggestion or tell me if what I would like to do is not possible? I would also like to understand if what happens between the stem pads and the mixer equalizer is normal.

Thanks always for your work and help.
 

geposted Wed 29 Sep 21 @ 11:49 am
I was able to solve the problem that was displayed by turning off any pad associated with the stems and that left the equalizer visible for a few moments. I changed the fade in / out in the live skin

fade in 200ms and fade out 500ms

have been changed to

fade in 30ms and fade out 30ms

This way it works well even if the stem pads turn on / off quickly. I think this small variation could be inserted in the next update if you don't like the problem I described and that everyone can see.

It remains to be found whether it is possible to split the panels of removed stems and isolated stems so that they are independent in display. I accept advice..thanks ^ _ ^
 

geposted Thu 30 Sep 21 @ 2:52 pm
NicotuxHome userMember since 2014
for broadcast skin and temporary appearing events ??

when I added stems to this one I only edited fixed eq labels to be actions xxx_label
and added 2 different instances of eq
<stack fadein="200ms" fadeout="500ms">
<pos x="1920-330-445" y="+160+25" />
<size width="330" height="160"/>
<slot x="+0" y="+0" />
<item class="eqpanel" visibility="is_using 'equalizer' 2000ms"/>
<item class="eqpanel" visibility="is_using 'stems' 2000ms"/>
<!-- default -->
<item class="vupanel"/>
</stack>

to make a difference between eq stemsmute and stemsolo
maybe replacing second by a dedicated panel may help, but detection of individual action is not simple because actions are not monitored

<item class="stemmutepanel" visibility="is_using 'stems' 2000ms"/>

but remember stem can be both solo and mute an not any of both too
so that only when at least one is solo it can be detected globally but mute can only detect individualy
so that muting a solo stem - giving no sound - can't be detected

IMO just adding a status led to stems may be enough so that instead of name always in gray i choose to colorize the name when on, and gray the name when muted using stem_pad

but for that to work I didn't use the label from slider but better added a button over the knob
<button action="stem_pad kick" ><tooltip /><text text="kick" localize="true"/><textselected text="kick" localize="true"/></button>
...

I also edited the knob to be resizable (somehow, because of radius missing maths :{#
to use it smaller for stems

<define class="knob" placeholders="*size=88,radius=32">
...


final result :
https://imgur.com/a/pavoznR
 

geposted Fri 01 Oct 21 @ 3:40 am
Nicotux wrote :
for broadcast skin and temporary appearing events ??

when I added stems to this one I only edited fixed eq labels to be actions xxx_label
and added 2 different instances of eq
<stack fadein="200ms" fadeout="500ms">
<pos x="1920-330-445" y="+160+25" />
<size width="330" height="160"/>
<slot x="+0" y="+0" />
<item class="eqpanel" visibility="is_using 'equalizer' 2000ms"/>
<item class="eqpanel" visibility="is_using 'stems' 2000ms"/>
<!-- default -->
<item class="vupanel"/>
</stack>

to make a difference between eq stemsmute and stemsolo
maybe replacing second by a dedicated panel may help, but detection of individual action is not simple because actions are not monitored

<item class="stemmutepanel" visibility="is_using 'stems' 2000ms"/>

but remember stem can be both solo and mute an not any of both too
so that only when at least one is solo it can be detected globally but mute can only detect individualy
so that muting a solo stem - giving no sound - can't be detected

IMO just adding a status led to stems may be enough so that instead of name always in gray i choose to colorize the name when on, and gray the name when muted using stem_pad

but for that to work I didn't use the label from slider but better added a button over the knob
<button action="stem_pad kick" ><tooltip /><text text="kick" localize="true"/><textselected text="kick" localize="true"/></button>
...

I also edited the knob to be resizable (somehow, because of radius missing maths :{#
to use it smaller for stems

<define class="knob" placeholders="*size=88,radius=32">
...


final result :
https://imgur.com/a/pavoznR


Thanks for your reply but I don't mean the broadcast skin but the live skin.

I had already tried and creating the separate panel for the block of the stems to be isolated then:

<define class = "stemmtepanel"
<panel visibility = "mute_stem? off: on">
<group name = "stems_pads" visibility = "mute_stem 'vocal'? off: on">
etc etc
then :

<item class = "stemmutepanel" visibility = "is_using 'stems' 2000ms" />

If two item classes are used but is_using is the same, in this case stems, two panels will be displayed in the live skin. In this specific case, if I press the pads of the stems to be removed, the lower panel will show the correct names of the stems while the upper panel will show erratic and overlapping names.
If, on the other hand, I use the pads of the stems to be isolated, the lower panel will show embossed and overlapping names while the upper panel will show the correct names of the stems used.
In practice it fails to split the two panels because they both use is_using "stems" I don't know if there is a way to prevent the embossed panel from not being displayed.
 

geposted Fri 01 Oct 21 @ 10:36 am
NicotuxHome userMember since 2014
I posted about broadcast because i did it

the process is exactly the same for live because they share the code

as I said, I do not show name using the knob text field and stem xxx
I better added a button reflecting stems_pad xxx to the knob in addition to textzone
(this one was made resizeable)
			<button width="[SIZE]" height="[SIZE]">
<text fontsize="[SIZE]/5" weight="bold" color="#aaaaaa" align="center"/>
<textselected fontsize="[SIZE]/5" weight="bold" color="textcolor" align="center"/>
</button>

this allows to use one is_using stems only
		<define class="stemspanel">
<panel class="knob" x="+0" y="+45" size="68" radius="23">
<slider action="stem kick" frommiddle="true"/>
<button action="stem_pad kick" ><tooltip /><text text="kick" localize="true"/><textselected text="kick" localize="true"/></button>
</panel>
...


the way I found is to use stem xxx for knob and stems_pad xxx for state in addition to stem xxx

as visible in the pic,
an isolated stem will show all isolated stems colored the other being gray
a muted stem will show all muted gray, all other will be colored
every time knob will reflect current level

As for standard pads, there is no indication of pads being both muted & solo and they appear muted
can be added by using button status on/off to change color or add a border depending on mute_stem xxx

it may be possible to add bleeds too i.e. as linear sliders if needed
 

geposted Fri 01 Oct 21 @ 12:59 pm
Cool Angel D.J. wrote :
[quote=Nicotux]for broadcast skin and temporary appearing events ??

when I added stems to this one I only edited fixed eq labels to be actions xxx_label
and added 2 different instances of eq
<stack fadein="200ms" fadeout="500ms">
<pos x="1920-330-445" y="+160+25" />
<size width="330" height="160"/>
<slot x="+0" y="+0" />
<item class="eqpanel" visibility="is_using 'equalizer' 2000ms"/>
<item class="eqpanel" visibility="is_using 'stems' 2000ms"/>
<!-- default -->
<item class="vupanel"/>
</stack>

to make a difference between eq stemsmute and stemsolo
maybe replacing second by a dedicated panel may help, but detection of individual action is not simple because actions are not monitored

<item class="stemmutepanel" visibility="is_using 'stems' 2000ms"/>

but remember stem can be both solo and mute an not any of both too
so that only when at least one is solo it can be detected globally but mute can only detect individualy
so that muting a solo stem - giving no sound - can't be detected

IMO just adding a status led to stems may be enough so that instead of name always in gray i choose to colorize the name when on, and gray the name when muted using stem_pad

but for that to work I didn't use the label from slider but better added a button over the knob
<button action="stem_pad kick" ><tooltip /><text text="kick" localize="true"/><textselected text="kick" localize="true"/></button>
...

I also edited the knob to be resizable (somehow, because of radius missing maths :{#
to use it smaller for stems

<define class="knob" placeholders="*size=88,radius=32">
...


final result :
https://imgur.com/a/pavoznR


Thanks for your reply but I don't mean the broadcast skin but the live skin.

I had already tried and creating the separate panel for the block of the stems to be isolated then:

<define class = "stemmtepanel"
<panel visibility = "mute_stem? off: on">
<group name = "stems_pads" visibility = "mute_stem 'vocal'? off: on">
etc etc
then :

<item class = "stemmutepanel" visibility = "is_using 'stems' 2000ms" />

If two item classes are used but is_using is the same, in this case stems, two panels will be displayed.

When I press the pads to remove the stems the bottom panel shows the correct names assigned by me while the top panel shows wrong names. When I press the pads to isolate the stems the top panel shows the correct names I assigned, while the bottom panel shows incorrect names.

The stem equalizer works well not what I need, my problem is only on the removed stem pads and isolated stem pads.



 

geposted Fri 01 Oct 21 @ 2:04 pm
Nicotux wrote :
I posted about broadcast because i did it

the process is exactly the same for live because they share the code

as I said, I do not show name using the knob text field and stem xxx
I better added a button reflecting stems_pad xxx to the knob in addition to textzone
(this one was made resizeable)
			<button width="[SIZE]" height="[SIZE]">
<text fontsize="[SIZE]/5" weight="bold" color="#aaaaaa" align="center"/>
<textselected fontsize="[SIZE]/5" weight="bold" color="textcolor" align="center"/>
</button>

this allows to use one is_using stems only
		<define class="stemspanel">
<panel class="knob" x="+0" y="+45" size="68" radius="23">
<slider action="stem kick" frommiddle="true"/>
<button action="stem_pad kick" ><tooltip /><text text="kick" localize="true"/><textselected text="kick" localize="true"/></button>
</panel>
...


the way I found is to use stem xxx for knob and stems_pad xxx for state in addition to stem xxx

as visible in the pic,
an isolated stem will show all isolated stems colored the other being gray
a muted stem will show all muted gray, all other will be colored
every time knob will reflect current level

As for standard pads, there is no indication of pads being both muted & solo and they appear muted
can be added by using button status on/off to change color or add a border depending on mute_stem xxx

it may be possible to add bleeds too i.e. as linear sliders if needed


Unfortunately that's not what I want to achieve. I would not want to upset the display of the original live skin, if it is not possible to modify it, I will be satisfied with the generic display of the stems. If you are a member of the official Virtual DJ facebook support group I have just uploaded a small video there to show what is happening, in the meantime thanks for your time!
 

geposted Fri 01 Oct 21 @ 2:31 pm