![]() |
#1 |
Senior Member
|
![]()
This script is to smoothly animate an analog-style VU meter. Based on rotation of layer. The main advantage is new method of calculation of intermediate frames. There is no difference in time to turn the needle by 5 degrees or to turn it by 50 degrees. It is more close to realistic look than any method of animation using AnimatedLayer. Usage described in vu.m file. See it in the example skin attached here.
(meaningless ![]() ![]() Was also used here ![]() ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Join Date: Sep 2002
Location: BG
Posts: 265
|
Nice.
![]() I have been experimenting with visualizations that use layer rotation (the rotationlayer.m library as a base), but in my case that method turned out to be much more CPU intensive than the AnimatedLayer approach. Your test skin's CPU usage is insignificant, did you somehow improve the rotationlayer.m rotation algorithm? Latest skin: fCrcl |
![]() |
![]() |
![]() |
#3 |
Senior Member
|
May be I did. But I think that graphics optimization is more important for efficient CPU usage. There also could be some idle frames in your method (these was in old version of my method).
|
![]() |
![]() |
![]() |
#4 |
Guest
Posts: n/a
|
Very interesting! I tried the same thing once, building an analog vu with layerfx, but lost interest. I'm more into the led VUs.
Since VUs are the only reason why I once started skinning, I'm always eager to see how others build them. I like your approach. However, they miss the realistic feel and I think I know why: the direction changes are evenly fast to the left and to the right. To have a realistic feel to it, you need the needle to react almost instantaneously to the beats, but then have a slow decay. Your VU can be flipped horizontally and still look the same, or so it seems. Fix that, and you built the greatest analog vu ever. I hope you can do something with my constructive criticism. |
![]() |
![]() |
#5 |
Senior Member
|
You're right. Thanks a lot! I already thought about and will try to make it more realistic
![]() |
![]() |
![]() |
![]() |
#6 |
Guest
Posts: n/a
|
Great! Make sure to upload the improved version here.
![]() |
![]() |
![]() |
#7 |
Member
Join Date: Apr 2007
Posts: 63
|
Wow! It looks really good already, but I agree that it could me bade a little more realistic. If you could make this a vis-plugin it would be great!
|
![]() |
![]() |
![]() |
#8 |
Major Dude
Join Date: Jan 2003
Location: Washington State
Posts: 1,133
|
Sweetness! would like to use this in some skins at SC.
|
![]() |
![]() |
![]() |
#9 |
Android/UI Development
|
common quad, push a nice layout for this
![]() |
![]() |
![]() |
![]() |
#10 |
Senior Member
|
Here is an update (v1.1):
Animation code rewritten. Now more realistic, more accurate and more flexible ![]()
The only and a insignificant problem is non-true logarithmic mode. It's just emulated by another function (square root) because there are no logarithmic functions in freeform skin engine for maki. VU's modes (logarithmic is only to compare with its analogue): ![]() Last edited by E-Trance; 12th December 2007 at 15:13. |
![]() |
![]() |
![]() |
#11 |
Android/UI Development
|
lemme know which logarithmic function you'll need and i will add it for 5.51
![]() |
![]() |
![]() |
![]() |
#12 |
Senior Member
|
![]() This should be a logarithm of an arbitrary base if possible: double log(double val, double base); Or (if it's impossible) a natural logarithm (because it is almost in any library): double ln(double val); |
![]() |
![]() |
![]() |
#13 |
Android/UI Development
|
as soon 5.51 is out i will update WaSDP
and it will hold: log10 --> logarithm to base 10 ln --> logarithm to base e (logarithmus naturalis) you can creaty any log you want by using this: log(double arg, double base) = ln(double arg) / ln(double base) |
![]() |
![]() |
![]() |
#14 |
Major Dude
Join Date: Jul 2003
Location: UK
Posts: 1,316
|
looks cool with the various modes!!
I'll have to play with this idea in the rotational viz in Azenis. Although this type of analog vu meter doesnt really cope with grouping of lots of needles, thats also another method of grouping vu levels to keep lots of meters moving smoothly too. |
![]() |
![]() |
![]() |
#15 |
Senior Member
|
Thank you Martin!
Here is an another update. This is the version adapted for AnimatedLayer. Uses the same methods of animation as previously. The script can process any number of frames. Look at the example skin - both 64-frames and 13-frames animations are moving simultaneously. You can even compare 255-frames AnimatedLayer with the 10-frames one - they will have equal motion speed anyway. Screenshot of the example skin ![]() ![]() |
![]() |
![]() |
![]() |
#16 |
Guest
Posts: n/a
|
I've been away for a while, but damn this is awesome! That last 64 frame version especially.
Response to beats is great, smoothness is great, CPU usage is low=great, overall superb! |
![]() |
![]() |
#17 |
Guest
Posts: n/a
|
I found this trick the best part of the whole thing:
PHP Code:
I have a question though. Do any of you play .flac files frequently? If so, do you notice a little bit of lag on the VUs? I have the feeling that something in the flac plugin causes the timer of the VU to be disturbed. mp3s don't cause this behaviour. Just curious whether anybody noticed this too. |
![]() |
![]() |
|
Thread Tools | Search this Thread |
Display Modes | |
|
|