Xion Audio Player

[Fixed: 155] Transvolumers - toggle animation - performance

Discuss potential bugs with other users or try to find out a solution to an existing bug

Postby Freerun » June 30th, 2013, 9:44 am

This is an issue seen in previous versions and exists in the newest build as well.
When toggling trough animation that switches between different transvolumers will not "hide"/disable previous transvolumers completely, they will be hidden but for some reason they still use cpu. Depending on the size and count of those transvolumers Xion will consume more and more cpu power as you toggle trough them.

I've noticed that hiding ALL transvolumers before activating next one will actually turn previous off and Xion won't grow on cpu usage.

old scenario(cpu usage increased on each stop):
animation animtype(0) id(toggle_volumers) svst
{
modify(transvol1) aclashow
modify(toggle_volumers) acanstop
modify(transvol1) aclahide
modify(transvol2) aclashow
modify(toggle_volumers) acanstop
modify(transvol2) aclahide
modify(transvol3) aclashow
modify(toggle_volumers) acanstop
modify(transvol3) aclahide
modify(toggle_volumers) acanstop
}

new scenario(cpu usage not increasing):
animation animtype(0) id(toggle_volumers) svst
{
modify(transvol1) aclashow
modify(toggle_volumers) acanstop
modify(transvol1,transvol2,transvol3) aclahide
modify(transvol2) aclashow
modify(toggle_volumers) acanstop
modify(transvol1,transvol2,transvol3) aclahide
modify(transvol3) aclashow
modify(toggle_volumers) acanstop
modify(transvol1,transvol2,transvol3) aclahide
modify(toggle_volumers) acanstop
}

also sliders behave very strange when toggling
to make it work i need to deactivate them all in one stop and in another activate one then in third stop i need to deactivate all and in forth activate one
this causes a pattern when sliding where it shows one slider, then non, then next, then non, then next therefore i skipped slider method for transvolumers
Freerun
Xion Supporter
 
Posts: 32
Joined: January 11th, 2013, 3:41 am

Postby Cliff Cawley » January 3rd, 2014, 9:03 pm

Hi Freerun,

Sooo, it's been ages since I last looked at this, but it's been on my list.

First of all, I just wanted to say that if you don't care about the animation speed, then you should set delay(0), otherwise there's a 100ms pause between each frame change, which is probably why you say you see slider, then none, then next, etc. With delay(0), you won't see this anymore.

Next, do you have an example PSD with just the above so I can quickly reproduce?

Cliff :)
Cliff Cawley
Creator of Xion
r2 Studios
http://www.r2.com.au
http://xion.r2.com.au
User avatar
Cliff Cawley
Creator of Xion
 
Posts: 1955
Joined: September 3rd, 2006, 11:33 am
Location: Brisbane, Australia

Postby Freerun » January 4th, 2014, 7:55 am

Cliff Cawley Wrote:Hi Freerun,

Sooo, it's been ages since I last looked at this, but it's been on my list.

First of all, I just wanted to say that if you don't care about the animation speed, then you should set delay(0), otherwise there's a 100ms pause between each frame change, which is probably why you say you see slider, then none, then next, etc. With delay(0), you won't see this anymore.

Next, do you have an example PSD with just the above so I can quickly reproduce?

Cliff :)


Ok so here are 2 skins

Those are my old versions of TECH-A skin

TECH-A3Z2 - hide last transvolumer
https://copy.com/xJbJLuwdgFr7

and

TECH-A3Z3 - hide all transvolumers
https://copy.com/qzu0uIchAzqE

important groups:
animation animtype(0) id(toggle_volumers) svst
volumers_group

I will try delay(0) with slider when I get time it might be more convenient than toggling trough with button
Freerun
Xion Supporter
 
Posts: 32
Joined: January 11th, 2013, 3:41 am

Postby Lance » January 4th, 2014, 12:42 pm

Just checked out your PSDs.

I'm a little confused as to why you're using an animation to toggle between the various "tv" layers. It's a very long way around of achieving a simple toggle of layers.

I suggest you do it all in one command by using a blank button with modify(tv1,tv2,tv3,etc) aclaswch applied. This will automatically parse through the list of IDs and hide/show the layers in order accordingly with each click of the button. No need for tons of layers of commands. I can't see any reason at all in the PSD why you specifically need to use an animation group to do this.

Apologies if I'm missing a bigger problem. I admit I haven't given myself enough time to let everything you said sink in.


EDIT:


I also want to share a feature which was added per my request in the 1.5 build, but I'm unsure if it's documented yet (I could be wrong, don't bit me, Cliff)

You can now apply IDs to groups (not just animations, but regular layer groups) which will automatically assign the same ID name to all of the layers contained within it. This will come in handy if say you want to toggle between showing 3 layers in one go and hiding another 3 layers. Have 3 in one group and 3 in another, each with an ID, then use modify(group1,group2) aclaswch as normal.

In a working example for your skin, one of the frames in your id(toggle_sliders) group says modify(vb,pb,cb) aclahide which could instead be a single group with those 3 items within it, so you can call just one group ID name instead of 3 individuals. Then it's a case of creating as many group variations as you wish from there and using modify() aclaswch instead of animations. It's a much simpler and more versatile way of toggling. What's more, it's instant as it's only one command versus many.
I made the Xion Default skin. Ask me questions and stuff.

DeviantArt
User avatar
Lance
Xion Fan
 
Posts: 402
Joined: April 10th, 2008, 12:07 pm
Location: East Yorkshire, England

Postby Cliff Cawley » January 4th, 2014, 9:15 pm

Just looking into this at the moment.

I've pulled apart your skin to get something small that I can reproduce.

In doing so, I noticed you use trans_volumer but as far as I can tell that's it?

You're using the volume from the Right channel. If you're just using the one, I'd suggest switching to using trans_volumec which takes the center channel (which is a mix of both Left and Right Channels).

Will let you know once the CPU usage is fixed.

Cliff :)
Cliff Cawley
Creator of Xion
r2 Studios
http://www.r2.com.au
http://xion.r2.com.au
User avatar
Cliff Cawley
Creator of Xion
 
Posts: 1955
Joined: September 3rd, 2006, 11:33 am
Location: Brisbane, Australia

Postby Cliff Cawley » January 4th, 2014, 9:22 pm

Ok, this performance issue has been fixed in build 155 :)

Cliff :)
Cliff Cawley
Creator of Xion
r2 Studios
http://www.r2.com.au
http://xion.r2.com.au
User avatar
Cliff Cawley
Creator of Xion
 
Posts: 1955
Joined: September 3rd, 2006, 11:33 am
Location: Brisbane, Australia

Postby Freerun » January 11th, 2014, 7:07 am

Lance Wrote:Just checked out your PSDs.

I'm a little confused as to why you're using an animation to toggle between the various "tv" layers. It's a very long way around of achieving a simple toggle of layers.

I suggest you do it all in one command by using a blank button with modify(tv1,tv2,tv3,etc) aclaswch applied. This will automatically parse through the list of IDs and hide/show the layers in order accordingly with each click of the button. No need for tons of layers of commands. I can't see any reason at all in the PSD why you specifically need to use an animation group to do this.

...


Thanks for the input Lance, once I get some free time I will try those things out and implement if possible, I can imagine it would be much cleaner.

Cliff Cawley Wrote:Just looking into this at the moment.

I've pulled apart your skin to get something small that I can reproduce.

In doing so, I noticed you use trans_volumer but as far as I can tell that's it?

You're using the volume from the Right channel. If you're just using the one, I'd suggest switching to using trans_volumec which takes the center channel (which is a mix of both Left and Right Channels).

Will let you know once the CPU usage is fixed.

Cliff :)



Yes yes it was best visible on large transvolumers toggled one after another.

As for the right channel it was more aesthetic choice than precision, I don't like how trans_volumec behaves/animates because of mixed/merged channels.

The distinction between stronger and mid beats becomes blurred/minimized, center works best for slow music and/or with weak and strong beat variation but it's not the case for most music.

I understand possible issues if track is using channel transitions or if it's mono track. I will definitely consider it :)

Cliff Cawley Wrote:Ok, this performance issue has been fixed in build 155 :)

Cliff :)


Great to know you managed to fix this :)
Is the fix meant for all animations that toggle layers so the previously hidden layers don't eat resources or it's only for transvolumers?

edit:
I was in a rush and didn't notice that in example I provided my volume and progress sliders were all hiding at next slider toggle. I will prepare another example specifically for sliders so you can test if it works for other animations as well.

edit2:
I've made two versions and scrapped them to the minimum

hide previous sliders on toggle:
https://copy.com/xyojYF0A3i3b

hide all layers on toggle:
https://copy.com/Ect81Lr9uzCL

I can't see myself any difference in performance while toggling in either of them, but I don't have a slow machine to test currently, sliders aren't as dynamic as trans_volumers. Anyway I've posted them for your testing. I will post my test results as soon I get on older(like 2 core) machine.
Freerun
Xion Supporter
 
Posts: 32
Joined: January 11th, 2013, 3:41 am

Postby Cliff Cawley » January 11th, 2014, 12:42 pm

Freerun Wrote:Great to know you managed to fix this :)
Is the fix meant for all animations that toggle layers so the previously hidden layers don't eat resources or it's only for transvolumers?


Fixed for all animations that toggle layers :)
Cliff Cawley
Creator of Xion
r2 Studios
http://www.r2.com.au
http://xion.r2.com.au
User avatar
Cliff Cawley
Creator of Xion
 
Posts: 1955
Joined: September 3rd, 2006, 11:33 am
Location: Brisbane, Australia

Return to Bugs (Release Build)

Who is online

Users browsing this forum: Bing [Bot] and 1 guest

cron