Generative wave

Markh's picture

This is something I've been playing around with, using the GL line tool, it basically use's interference patters between two sine wave - and then I've got the parameter for each wave constantly changing to create a generative animation.... Thing is its kind of slow and I would like to get a smoother curve / and I would like more lines - but doing this slows it wayyyyy down... Could anyone suggest a fix??

PreviewAttachmentSize
wave02_09.qtz27.59 KB

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

cybero's picture
Re: Generative wave

sweet wave structure example :-)

rinboku's picture
Re: Generative wave

Another way

PreviewAttachmentSize
wave01.qtz8.02 KB

jersmi's picture
Re: Generative wave

rinboku, that's an excellent suggestion. the idea was already interesting, slow as it was.

toneburst's picture
Re: Generative wave

I like 'the guy behind tone-burst' ;) Makes me sound like some kind of James Bond-style megalomaniacal villain...

a|x the guy behind toneburst

cybero's picture
Re: Generative wave

really nice use of the line expression patch, rinboku

cwright's picture
Re: Generative wave

No kidding! I think this is the first use of Line Expression I've seen "in the wild" (other than my silly tests and demonstrations) -- glad it's a fantastic one :)

gtoledo3's picture
Re: Generative wave

Hmmm, I just realized I never posted any line expression stuff!

The structure maker can be replaced with javascript for more portability.

I think this is my favorite thing of yours Rinboku! You really have a vertex shader glsl feel going on, but totally different too.

toneburst's picture
Re: Generative wave

Verrry nice...

a|x

cybero's picture
Re: Generative wave

Neither had I, :-).

Here's a music visualizer re-versioning of the example rinboku posted up earlier last week.

PreviewAttachmentSize
wave02audio.qtz440.32 KB

cybero's picture
Re: Generative wave

Line Expression wise, is it already a known bug that you can't get two Line Expression patches to render together in the same iteration patch and when they are set to Alpha, they just disappear, or is that just me ? :-)

cwright's picture
Re: Generative wave

Are you using GLTools 1.2 (public), not a beta build? there were some bugs with blend ports when using some of the betas.

If you upgrade GLTools, and the problem persists, please email me the offending composition (or a similar offending sample composition) immediately -- a few people are going to be shipping GLTools 1.2 with their products shortly, and I'd rather catch the bug before if goes out.

dust's picture
Re: Generative wave

cool, if you look at from the top it looks kind of like a striped bed sheet being tossed on the bed, obviously there is no collision etc... but i think i can have some fun with these examples. kind of like the tb_sunflower. this could be some cool audio reactive. i need to learn some more of this expression stuff, i understand it. i have been checking out some of paul bourkes processing stuff and also have been looking at the matlab spherical harmonic implementation. i just need to brush up some of algorithms. so i appreciate the examples you guys share.

cybero's picture
Re: Generative wave

Quote:
Are you using GLTools 1.2 (public), not a beta build?

Was using Release: GL Tools, v20090205 (1.2)

Now upgraded to the most recent Alpha and thus far all seems well.

See attached the composition that was failing to render all items despite what the Performance Inspector had to say :-)

PreviewAttachmentSize
wave03audio.qtz42.25 KB

toneburst's picture
Re: Generative wave

Nice work- wish I'd thought of that!

Nice one,

a|x

cwright's picture
Re: Generative wave

They were in fact all rendering, it was just that the blend port was silently corrupting GL state, which has undefined behaviour. On my test machine, it probably didn't crop up (but it probably did pump out an error message to the console), but on yours it might have abandoned rendering all together until something made the state sane again.

Essentially, what happens is we're re-implementing the blend port to add the Alpha stuff. in the name of speed, we were doing some pointer tricks to speed up blending (to meet or exceed apple's default implementation), but I mis-cast a variable, and chopped off the top 24 bits. For many blend modes that was ok (Replace and Add were untouched), but for others (Over, and definitely Alpha) the truncated value wasn't valid for GL. the 1.2 public (non alpha) addressed this problem.

cybero's picture
Re: Generative wave

just got back to the list after a well tossed salad.

thanks for the feedback.

very informative.

all patches are now rendering quite nicely using the latest beta posting.

now to create an input capable string writer script to modify colours and positional expression values on the fly, possibly serving them up through a set of multiplexers. also similarly tweaking the structure maker inputs and I could have the beginnings of an interesting line expression visualizer.

Markh's picture
Re: Generative wave

Thanks Rinboku, Which patch do I need to install, I seam to be missing the line expression patch, I can see it anywhere in the downloads?

Thanks Mark

cwright's picture
Re: Generative wave

Line Expression is part of GLTools -- version 1.2 was just released a couple days ago, so it's near the top of the front page.

rinboku's picture
Re: Generative wave

Thank you everyone. I will try more in the range I can.

usefuldesign.au's picture
Re: Generative wave

From Beta Releases Page of this site:

Release: GL Tools, v20090205 (1.2) 2009-02-06 04:55

On the zip and GLTools.plugin file all the dates are 2009-02-06

So I'm confused by the above comment.

Also on the comment revisions for the beta dowload page: Revision Operations 2009-06-10 14:02 by smokris current revision noted Leopard compatibility.

This adds to my confusion.

Q. What's the latest version, 1.2(beta)? Are there multiple builds with this title?

cwright's picture
Re: Generative wave

Betas are typically referenced by their build date (20090206 -> 2009, 02 (february), 06 (sixth)). Sometimes they get a "public" version number (e.g. 1.2) as well, to indicate what public release version they're working towards (1.2 in this case) -- so, in other words, GLTools 1.2 was "started" in february (or earlier), as a beta. It eventually stabilized into the public release (named 1.2, with a build date of 20090610 or so).

No plugins will have identical build/public version numbers -- they'll share release version numbers (1.2, 0.5, whatever), but the build date will indicate their newness (larger build date numbers indicate newer builds -> 20090101 is older than 20090201, for example). There have been a few GLTools 1.2 betas (with varying dates), a few Kineme3D 1.2 betas (no official release yet), etc.

This probably sounds confusing -- I can't think of a more concise way to explain it though.

dust's picture
Re: Generative feedback wave

here is a audio reactive version with out protocol conformity. looks cool with some tb_feedback. i can't say it works really well as a visualizer like cybero s version but it works ok with voice. stock 4 band eq spectrum or well 3 band, hi mid, low, + peak and some smoothing for some extra bounce. i have actually been trying to do some of this with apples line family as well.

PreviewAttachmentSize
waveGenReact.qtz20.28 KB

leegrosbauer's picture
Re: Generative feedback wave

... 'but it works ok with voice' ...

It works exceptionally well with voice, actually. Very nice.

cybero's picture
Re: Generative feedback wave

very nice indeed,

works fine as a visualizer, lots of possibilities

Markh's picture
Re: Generative feedback wave

Here my rewired version of rinboku post, I've got four sine wave combined. One question how can increase / reduce the delay between each wave????

PreviewAttachmentSize
wave02_12.qtz20.02 KB

rinboku's picture
Re: Generative feedback wave

Do you mean the speed of wave? This is a simple example of controlling speed of wave.

PreviewAttachmentSize
wave02_speed.qtz4.16 KB

Markh's picture
Re: Generative feedback wave

ininteresting.... I'll have a go implementing that in what I've done. When I say delay i mean the delay between each duplication of the wave. So the last duplication is further "back in time" that the first on in the foreground - I want to be able to increase or decrease this variable. What alters this?

dust's picture
Re: Generative feedback wave

you could try placing another copy of the iterator inside itself and offset the z depth plus shorten or lengthen the iterations.

there is a track ball so you just move the lines to be horizontal thus giving you more depth, click on the view port and move the mouse around.

the variables can be changed with the kineme structure inputs not the keys you need to keep them the same.

it works like this..

so this is the expression....

"asin(360bt+c)+dsin(360et+f)"

so i guess in math terms this is advanced calculus or inverse trigonometry, which i unfortunately am teaching myself. i took a class in logic to fill my math requirements.

basically you need to look at this like a grid. you have your x and y axis. your y axis has your sin(x) function on it. 0 is in the middle. the top or sin(x) function is = 1 and the bottom of the y axis is = -1 or sin^-1(x)

so you got that now lets just assume that the sinewave has a constant flow of energy without decay on the y axis starting from the deviation center it goes pi/2, pi, 2pi and the reverse of that into the negative going in the other direction. computers have a hard time calculating the arcsin(x) because it has multiple values and the calculator always gives back 1 value but lets say arcsin(1) = pi/2, 3pi/2, and so on.

so arcsin(x)=y or returns -> -pi/2 < y > pi/2 so your arcsin is just returning the pi/2 range or sin(1) so all the trig functions are like this with different constants i believe, don't hold me to that never taken a class in trig.

so in this function

"asin(360bt+c)+dsin(360et+f)"

now im just guessing at this you'll have to ask rinboku what his expression is doing.

a=amplitude b=frequency*spatial position t=angular frequency or radians per second c=phase

the rest is just repeat i think.

if you want to delay a negative value for the phase may be what your looking for. i didn't make this so thats only my guess.

rinboku's picture
Re: Generative feedback wave

If delay means the gap of the phase... For example...

PreviewAttachmentSize
wave02_speed&delay.qtz8.22 KB

dust's picture
Re: Generative feedback wave

nice colors on this one. a rinboku have you tried doing radian spherical calculations yet ? you don't need to use 3.24.

360*R/2=AreaCircle * 4 = Surface Area of Circle * 1/3 R = Volume of Sphere cool no TWOPI

Markh's picture
Re: Generative feedback wave

Ah! Simple when you know how... Thanks again for your help

cybero's picture
Re: Generative feedback wave

dust, sorry to have to tell you, but although when protocolised it renders in QC Viewer window with iTunes running, however,as a Visualizer in iTunes it hardly seems to function. I hadn't even noticed this and it is the first time I've seen this happening [or rather - not happening at all].

Works brilliantly outside of iTunes, though wonder if it will fail to render properly if put to Quartz Crystal or Builder if left to be audio reactive?

dust's picture
Re: Generative feedback wave

well that sucks, its not really much of a visualizer any ways. it is beautiful rinbokus spherical harmonic alone just thought i would mess around with it as reactive audio. i usually don't do much as far as the qc hosting goes. although i have been messing with some protocols lately particularly to get feedback and what not to work in some hosts. the tb_feedback seems to work pretty good as a visualizer on some of my systems.

why don't you have mess with some of these examples i made as well they are 3d spherical particle waves. im not sure if the feedback will work properly as a visualizer but you can try. i spent all day yesterday making lines of spheres wave like rinboku's example. then last night i tried a little inversion and wow makes for some pretty cool visualizer stuff you might want to try and or mod to a reactive piece or protocol it.

i dunno know let me know if it works right now its just generative, but shows how 3d particles or 3d gl spheres can be made into particle waves, maybe even volumetric particle waves, im not there yet but, you could add a shader to these if you want. maybe today i will try that. glsl seems to be a C language which ironically i got a C in C Class. im a bit slow writing functions but have a van der waal equations made that might be interesting to mess with in QC.

so yeah cybero have a try with one of these, screen saver maybe, itunes visualizer i don't know but you can sure add protocol.

PreviewAttachmentSize
sphereParticalWaves.zip29.31 KB

cybero's picture
Re: Generative feedback wave

Think it was the Line Expression patch. Could put anything else in its place and all worked just fine, particles, structures , splines, lines and primitives.

Nice wavey spheres. Will try 'em out a little later.