Archive: I made a Spectrum Analyzer...


13th January 2004 06:12 UTC

I made a Spectrum Analyzer...
... with texer II, before anyone else? :)

Anyway, haven't posted much "forum exclusives" so i decided to post this 'preview' (although i consider it as the final version) of Extra Dimension: the winamp5 update :)

Im especially hoping this will hit certain nerves (in a good way) of people around here, the forums ;)


13th January 2004 07:02 UTC

Cool, but a bit plane. It somehow looks like a forest?!

Perhaps some background filling movement could make it more dynamic.

It feels even better to see you back in action! Trust me, you'll never stop making presets, I just know it ;)


13th January 2004 07:06 UTC

Blame it on the maximum blending :p
I just can't make it like UnConeD in Goldie.

Im just updating ED and testing out the new avs version, i think i owe that to myself. I did made the quitting desicission before i even heard about the new avs version. Still i wouldn't talk about "coming back" :|


13th January 2004 07:51 UTC

that looks great! Although, I think if you change reg03 from 6 to 3, it makes it look even better.


13th January 2004 07:58 UTC

That's the whole point of those reg values ;) You can easily customize it for your taste.


13th January 2004 11:49 UTC

Hahha very stylish. Just a couple of things:

- Instead of making every scope the same n, you could make n depend on the height of the bar. That way you can make all bars look like cones (the large ones are very dotted now) and you'll probably get some extra speed (though you'll probably want to make it frame-rate independent then)

- The fading adjustable blend adds a sort of shadow effect. Why not add real shadows? If you put the light or sun at infinite distance, all shadows are parallel and it's very easy to fake. If you pick the right blending it should look great with this.

- Because of the way our music sounds, most info is kept in the lowest frequencies, and the only bars that move a lot are the ones in one corner. Perhaps a better arrangement of the frequency across the bars would be better? Also, usually it can't hurt to only use the lower 75% of the spectrum.

- Here's a tip for making scopes like this: try to have one initialization scope that draws nothing, and write the scope for every bar so that each is identical. E.g. instead of having "bnd=(reg07/reg16)*71" in your scope, you just do "regxx=regxx+reg07/16" and set regxx to 0 in your initialization scope. You could put a sort of grid-code in per-frame to generate the grid one texer at a time as well.
If you need to make a change, then you just change the first real scope and copy it 'n' times again.


14th January 2004 06:34 UTC

Thanks UnConeD i did a couple of things you suggested like:

- All the texers are now identical so you only need to make the changes in the control scope or in one texer and then multiply it :) Define X-rows & Y-rows in the control scope for your desired ammount of bands, but you still need to manually adjust the "number of specs" value (i'll change that, just didn't remember to do it now :) anyway it only is meaningful in the spectrum band picking, not in any critical way)

- Added a reg value "Starting band of spectrum" which just defines the 'zero value' in the getspec function. So instead of just spectrum range you make the starting band for example 0.25 and range 0.25 and it will show you the bands between 0.25 and 0.5.

- I tried to make n depend on the band height, but atleast not yet it isn't working that well... I might try to tweak this right or use a static value for future versions, but right now it kinda sucks :p



Things i couldn't do or didn't understand what you ment:

- Frame rate independency (didn't read the post you made about it :))
- Infinity sun shadow realistic WHAT? (didn't quite understand what you wanted me to do :p)


14th January 2004 12:12 UTC

Like this ;) (tweaked it a bit to my preference too)

What I meant is, if the sun or light is very far/at infinite distance, all the shadows are parallel and you don't need complicated projecting routines. I just copied your entire setup, and projected the bars onto the floor:

// Regular bar
x1=xpos ;
y1=ypos ;
z1=i*spec*reg45 ;
// Project
x1=x1+reg41*z1; y1=y1+reg42*z1; z1=zpos;
(reg41/reg42 are the cosine/sine of the direction angle)


22nd January 2004 06:03 UTC

Very stylush indeed.

Ucd's remix goes straight in the fav folder. :)

Higher camera angles would be nice.


22nd January 2004 13:27 UTC

Ack, I was going to say "just change the angles", but seems Tug used a weird rotation order... (first scope: change yr=0.5*$pi.... into yr=1.0*$pi to see... up is no longer up).

Guess it needs changes to allow it to look down on the spectrum.


22nd January 2004 13:44 UTC

Here's a version with correct angles. The problem was that the spectrum base was in (x,y) (parallel to the screen) rather than (x,z) (a floor). So I changed that around and made it move slightly more upwards.


23rd January 2004 07:12 UTC

Hehe, well none of my works never are technically correct, so they might be icky to change :) I really don't know what i was doing...

Anyway, there is a little problem with the zooming aspect, because when it zooms very close to the screen, the fps drops drasticly and then again rises up when it zooms out. This might not seem like such a big problem, but so big fps changes all the time makes it less enjoyable. Might also be the numpoint changes that causes them, or both in combination.

Anyway i think that low-steady speed would be better than a jumping speed :) So any way to fix this?


23rd January 2004 13:59 UTC

The problem is that when you get close, the texer bitmaps get bigger, and texer needs to do more work...

You could either make all movement/decays framerate independent, or just restrict the zooming. However, the biggest slowdown is when it gets close to the bass-area, because those spikes are the biggest. Maybe you could prevent the distance from getting small in that area only.