Old 18th January 2002, 19:50   #1
underoath403
Junior Member
 
Join Date: Jan 2002
Location: here
Posts: 17
is there a place online to learn the stuff for DM

Hey is there any web sites that will help me in learning superscope and Dynamic movment? I have looked like everywhere if U could please help.
underoath403 is offline   Reply With Quote
Old 18th January 2002, 19:56   #2
solamon
Senior Member
 
solamon's Avatar
 
Join Date: Dec 2001
Location: Terra
Posts: 118
Send a message via AIM to solamon
There really isn't a website devoted to such things. If you do a search in the forums you will probably come across a good deal of information though.
solamon is offline   Reply With Quote
Old 18th January 2002, 20:24   #3
lessthanjakeguy
Junior Member
 
Join Date: Jan 2002
Posts: 41
Send a message via AIM to lessthanjakeguy
yeah thats pretty much all i've found to....cause i have searched everywhere and theres just tutorials about skin making and stuff like that.....but as Unconed said its more fun to learn on your own even tho it takes more time.....but anyway here is a link to a few posts that explain alot of stuff about it
http://forums.winamp.com/showthread....threadid=70171

http://forums.winamp.com/showthread....threadid=71940

http://forums.winamp.com/showthread....threadid=71142

anyway im sure theres more but thats all i can find right now but that should help some.....well see ya
lessthanjakeguy is offline   Reply With Quote
Old 18th January 2002, 20:53   #4
heytud
Guest
 
Posts: n/a
If you have the math fundamentals, like from a high-school trigonometry and analytic geometry course, you'll have an easier time.
  Reply With Quote
Old 18th January 2002, 23:22   #5
ExtolFreak
Junior Member
 
ExtolFreak's Avatar
 
Join Date: Jan 2002
Posts: 3
all i know right now is some geometry and that's all. can anyone write a turoial on it.
ExtolFreak is offline   Reply With Quote
Old 19th January 2002, 01:45   #6
UnConeD
Whacked Moderator
 
UnConeD's Avatar
 
Join Date: Jun 2001
Posts: 2,104
No easy way

This has to be one of the most frequently asked questions of AVS:

"How can I make my own custom equations for the superscope/movement/etc.?"

Basically there are three steps of learning as far as I see it (The Zen of AVS?):

Learning how the AVS language is composed:
Basically you write out assignments. In their basic form they are:
a = b;
The variable on the left will be filled with the value on the right. In this case it is another variable. It can also be a constant number. The right-hand part can be a complex expression, such as: (a * (b + 3)). It can also include functions such as sin(a), cos(a), etc (click 'help' in the options for a superscope for a full list). The semi-colon means the end of the statement. You can stick another one at the end. What's also neat is that spaces or line-breaks are ignored. So you can space out your code to prevent it from being cluttered. Variable-names can be any length btw.

Knowing what variables you can use and have to fill in.

When AVS does a scriptable event (one you can program), it executes the different blocks of code. Each block is called at a particular moment:

An init block is called once at the very beginning. A frame block is called every frame. A pixel block is called for every pixel; An onbeat block is called every time there is a beat.

When your code is done, AVS pays attention to certain variables. These specific variables define the outlook of the effect and this is what makes the scripting system in AVS so powerful.

Here's a description for some common effects:

* For a superscope, the special variables are x, y, red, green, blue. The x,y pair contain the coordinates of the next point to draw or to connect a line to. They each range from -1 to 1, left to right, top to bottom.
The red, green, blue triple contains the color value of each primary color component. The resulting color will contain 'red', 'green' and 'blue' amounts of red, green and blue. They range from 0 to 1. E.g. red = 1; green = 0.5; blue = 0; will result in orange.

* For movements, the idea is to give AVS a replacement pair of coordinates for each pixel on the screen. If the distance between the new and old one is very small, a pixel will seem to move as the movement is applied several times. There are two coordinate-spaces you can use: polar or rectangular.

Polar means that you express a point as the distance to the center and the angle it makes with a vertical line. The upper Y axis is 0°. Rotation is expressed in radians. The conversion between radians and degrees is: rad = deg * pi / 180. To get the number pi in an AVS, you can use pi = acos(-1) (the arccosine of -1). Note that a movement might seem to work differently that you think:

Enter a movement of "d=d*.95". So we multiply the distance by 0.95 to achieve the new distance. However what AVS does is this: the point at d distance will receive the color that is currently at d*.95. So in other words, it's actually zooming out!

Rectangular means that you express a point like in a superscope, with an x and y coordinate. A movement of "x=x+0.01" will be a slight shift to the left (the new value for x,y is the color that is currently slightly to the right).

* The dynamic movement is a dynamic version of the movement that behaves almost exactly the same except that it's calculated over and over again every frame. While the dynamic movement is much more powerful (it can change every frame), it's also very intensive to calculate. That's why, instead of every pixel, only a limited grid of pixels is calculated. The pixels in between are averaged from the neighbouring gridpoints. If you make very fine-grained dynmovs, you'll start to notice distortions: crank up the grid-size to counter this. More grid-size means slower preset though!

Usually an effect has a little description text that tells you which variables you can use. There's too many to summarize, but these two should get you started.

Remember that on-top of all this, you can still define your own variables if you think that's useful. For example if your superscope goes like this:
x = cos(i*2*acos(-1))*(sin(v)+1);
y = sin(i*2*acos(-1))*(sin(v)+1);

You can rewrite it to:
tpi = 2*acos(-1);
rad = sin(v)+1;
x = cos(i*tpi)*rad;
y = sin(i*tpi)*rad;

The second will almost always be faster because you're calculating the acos(), the sin(v) only once instead of twice. You can even move constants such as "tpi = 2*acos(-1)" into the Init part of an effect so that it's only calculated once.

Knowing how to produce a certain effect

This is probably the hardest thing. You'll have to come up with equations that do something neat. One way to do this is to use the principles of mathematics and calculate the necessary formula. The other way is to just play around until you find something neat. The second method is accessible to everyone.


A good way to get started is to look at other people's presets and see how they achieve certain effects. I *don't* mean that you just go around and copy-paste, but rather dissect a movement/superscope and see what expressions result in what. It might seem confusing at first, so start with simple examples.
In any case, there is no definitive guide to AVS because the possibilities are endless. Play around with AVS, explore it and by all means, post your presets to this site when you've come up with something interesting and cool.

Just like a whole AVS preset, code can be bloated or optimized. Optimized means you're calculating something with the minimum time needed. If you have a cool effect, but it's very computationally intensive, try to replace certain parts with simpler equations. Usually you can remove some parts without noticing it.
UnConeD is offline   Reply With Quote
Old 19th January 2002, 21:02   #7
ExtolFreak
Junior Member
 
ExtolFreak's Avatar
 
Join Date: Jan 2002
Posts: 3
thanks alot

thanks for the turorial can you make up one on what cos and sin and tan and all those do please.
ExtolFreak is offline   Reply With Quote
Old 20th January 2002, 03:04   #8
UnConeD
Whacked Moderator
 
UnConeD's Avatar
 
Join Date: Jun 2001
Posts: 2,104
Search

Use the search feature. I remember writing an explanation earlier in a thread titled 'sin, cos, tan'. Basically, use the search feature before asking anything. Chances are it's been asked before

Note that writing tutorials takes time and is not something done in five minutes... and know that tutorials can only teach you a certain amount of things. For an explanation of each AVS function, read the AVS expression help: it has a description of each. Now if "sin(x) calculates the sine of x" is chinese to you, then I'm afraid you need more math-classes. My 'sin, cos, tan' comment explains just the basics.
It seems some people just want to learn in one tutorial what math (and other) classes teach you in a year: sorry, but it doesn't work that way, and it never will. If you wish to become a painter, you need to practice your drawing skills, learn how to use certain brushes, learn how to mix colours optimally, etc. If you wish to speak another language, you need to build up a vast vocabulary, learn the rules of grammar and be able to apply then instantly, etc.
UnConeD is offline   Reply With Quote
Old 20th January 2002, 20:43   #9
aaron595
Senior Member
 
aaron595's Avatar
 
Join Date: Jan 2002
Posts: 183
Meaning, those AVS Artists who can create good pieces really are artists!

aaron595 is offline   Reply With Quote
Old 20th January 2002, 21:52   #10
UnConeD
Whacked Moderator
 
UnConeD's Avatar
 
Join Date: Jun 2001
Posts: 2,104
I guess :)

Well maybe they are, but that depends on your definition of 'artist'. If you mean someone who has achieved a great skill in something, then you're right. But that doesn't mean that no-one else can learn to do that same thing, given enough time.
UnConeD is offline   Reply With Quote
Reply
Go Back   Winamp & Shoutcast Forums > Visualizations > AVS

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump