Skip to content
Forum Archive

is it possible to control SS by any determined pitch?

11 posts

greatWho#

is it possible to control SS by any determined pitch?

i want to say that SS is changing maybe the direction by any Beat in a determined pitch, by any other pitch it should change the size and and and...

ist this possible? and if yes, how?

GreatWho
Montana#
do you mean like the bass does "x=x+sin(a+.001)"
and the midrange does "y=abs(x)"
and the treble does "a=cos(a*1.5)"?
greatWho#
what is a?
and how should i use this to see what it does? can you show me a example how it works?

another example what i want is that if the song has more bass, the colour is maybe a deep blue, if there's more treble, the color is yellow..

i hope you can help


GreatWho
Montana#
first of all, a is a variable
and that i wrote was just a example
but i just wanted to know what you meant?

but i don't know actually how to do it
geozop#
I assume you have a SS that is moving around by some means, and that you want it to change it's direction of movement every low-pitch beat; and, that you want it to change size every high-pitch beat, correct?
UnConeD#
You can use getspec() to grab sound data. You can grab individual spectrum points as well as averaged areas (using the width parameter) to get a general 'bass' or 'treble'.
greatWho#
Geozop, your assume is the right kind.
UnConeD, i didn't really know, how to use the getspec the right way, to become the SS i want.. i will make an example...

i make a simple SS

init: n=400
frame: t=t-0.05
point: x=cos(t);y=sin(t) 
that will draw a circle

now i want that it's smaller by a low-pitched beat and bigger by a high-pitched beat (lowest, the size is 0.5, highest, te size is 1)
as second, by a low-pitched beat, the direction will change, a high-pitched beat will do nothing...

can you show me the way?

thanx
T-CUT#
init:
n=400

frame:
s will control the size of the ring
s=if(above((getspec(0.1,0.2,0)),0.4),0.5,0.9)
s is 0.5 if the specdata at the specified point is higher than 0.4 otherwise it will be 0.9

per point:
t=t-0.05;
x=cos(t)*s;
y=sin(t)*s;

PS:
if you use
x=(cos(t)*s)/(w/h);
the ring will apear as a ring even when the display is a rectangle(but only until w>h)
UnConeD#
Because a division is an expensive operation, it's best to save a var "af=w/h" in OnFrame and use y=y*af instead of y=y/af (multiply is faster).
greatWho#
thanx for help

thanx to T-Cut and UnConeD, that was very helpfull, so i can use it. is it also possible that the ring walks between the outer and the inner rig?

you can ses the preview of my new work with this codes

Attachments

  • 8.zip(485 Bytes, 172 views)
  • 8.zip(485 Bytes, 172 views)
Montana#
i did a remix of the preset

here ya go