new year's gift / food for thought ...

gtoledo3's picture

Kineme particle/GLSL audio reactive comp ...

PreviewAttachmentSize
kineme audio reactive gift-flattened.qtz17.18 KB

gtoledo3's picture
testing something :o)

testing something :o) (edit, AHA! it worked)

dust's picture
daft topic.

cool will have a look george, in regards to editing your topic, how do you go and make a topic for discussion ???? i'm daft sometimes.

leegrosbauer's picture
Thanks!

Very nice! and Happy New Year.

How to un-flatten for study? I'm daft too. heh.

gtoledo3's picture
Here you go,

Here you go, unflattened...

But really, all you should need to do is go in and start moving the patches by grabbing them with the flattened version...

PreviewAttachmentSize
kineme audio reactive gift.qtz24.83 KB

gtoledo3's picture
Hmm, I'm not sure I

Hmm, I'm not sure I understand what you mean about that? There wasn't a "reply" field below?

leegrosbauer's picture
I performed manual

I performed manual unflattening on a different, earlier posted composition and found the procedure to be quite messy. That led me to wonder if perhaps there might be an unflatten command that I didn't know about.

Thanks for the help! Very nice.

gtoledo3's picture
For some comps, flattening,

For some comps, flattening, (which causes every patch to be laid out on top of each other like that) seems to smooth out performance... it also takes clips that you may have used (if you even use the clip function, that is), and actually puts them in the composition.

However, this one didn't really get a performance jump. (Still trying to figure out if that is placebo or not... flattening does resize the render window so maybe I just notice that effect of it "speeding" up fps).

I didn't think about the aspect of pulling apart all of the patches of the particle macro though! Daunting! Sorry :o)

leegrosbauer's picture
Well, boost or no boost ...

Well, boost or no boost ... performance seems to be excellent, regardless. I get 60 fps from both comps. Nice work. I like it a lot.

Scratchpole's picture
Thanks for sharing. Great

Thanks for sharing. Great stuff, keep it up.

gtoledo3's picture
landscape generation

This is something I thought was cool, and pretty simple....

You need the v002 Rutt Etra and Kineme Texture for this.

PreviewAttachmentSize
kineme texture plus rutt etra.qtz13.45 KB

dust's picture
interuttetrasting

i messed around with the rutt the other day. i think it might be cool if you kind of combine the two patch principles. do an audio reactive rutt etra. like use the tb audio waveform image and feed the wave form into the image of the rutt etra and then use parts of the audio spectrum to change parameters or something. might be cool or could look bad i don't know. i attached the rutt etra patch i messed with. i was getting some pretty cool abstract moray line screen patterns with a interpolate on the line angle. i actually like the thing used in reverse that is doing a negative extrude. i guess thats not really extrusion maybe intrusion ??? if thats even a word that makes since in the given context.

PreviewAttachmentSize
rut.qtz10.38 KB

leegrosbauer's picture
After observing the colorful

After observing the colorful output of the Core Image filter entitled B&W to Planar 3D, I thought perhaps grabbing the color by including a Render In Image patch might be worth trying. It seemed to work out attractively in wireframe mode and I'm attaching it for your inspection.

That said ... I've noticed that both the original composition and the modified one I'm posting here crash Quartz Composer after they've run for a while. The initial crash notification stated that it might be due to the blur patch. I tried substituting the latest blur which was just released a few days ago, but it didn't seem to help. Regardless, I'm having great fun with it. Thanks for the composition! It's cool!

PreviewAttachmentSize
kineme texture plus rutt etra wired.qtz14.59 KB

blouboy's picture
more colorful vade (and toneburst) drift

Drifting a bit further from the original topic... But since gtoledo3 swung things this way himself, I thought I would show some of what use I've been making of toneburst and vade's brilliance.

These make heavy use of the Rutt Etra plugin and toneburst's tb_superShape2D_GLSL_1.1.qtz as well as the tb CIBlend Modes clip. All I've really done is hook a few things together. The hard work was done by those guys, so I can't claim much responsibility, but I thought it was worth sharing what I had come up with.

gnomalab's picture
Another Tone Burst patch

another patch to share. Small changes and presets of the original patch of Fairlight Tone Burst Waveform 1.01.

PreviewAttachmentSize
GN Waveform PRESETS.zip23.01 KB

toneburst's picture
Nice one!

You could probably store all the presets settings in one JavaScript patch, rather than having separate Macros for each setup. Having said that, your day might be easier in the long run.

a|x

franz's picture
clear

you should add a clear patch in your render in image. this will remove the "buffer glitch" effect. or maybe was it intended ?

gnomalab's picture
that's for sure, my worst

that's for sure, my worst problem is not knowing how to write javascript. I am very used to the visual programming. Sometimes I try to change the scripts, but I understand it costs a lot. My ideal is to have a lot of presets to change rapidly in direct, without having to use an external program as Modul8 or VDMX.

gtoledo3's picture
I was in the same boat but,

I was in the same boat, but you ought to just google javascript, and you will find a ton of references. Javascript within QC is pretty simple, and I am especially digging it to imply physical forces.

leegrosbauer's picture
Done. No intention .. just

Done. No intention .. just slop. Thanks!

gtoledo3's picture
Hmmm, Franz is right, in

Hmmm, Franz is right, in yours, not having the clear in the render in image could cause your hard drive to slowly fill up! (At least that happened to me before, but only on one occasion, so I don't know if that is a rule). It can give a cool effect sometimes!

However, my orig doesn't utilize a render anywhere... and hasn't crashed my machine. I'll let it run longer.

gtoledo3's picture
Nah, this is perfect, and

Nah, this is perfect, and totally within original topic :o) I was hoping it would inspire some good back and forth!

toneburst's picture
Physics

gtoledo3 wrote:
I was in the same boat, but you ought to just google javascript, and you will find a ton of references. Javascript within QC is pretty simple, and I am especially digging it to imply physical forces.

I'm very interested to see the results of your digging in this area. Keep us in the loop!

a|x

leegrosbauer's picture
logged it.

For me, QC seizes up and then quits after 10-11 minutes or so of running the composition. I just ran the original composition again to verify. I grabbed a crash report this time, but I don't know how to read it. I'll send it on if desired.

leegrosbauer's picture
QC javascript interest

As a non-programming quartz composer user, I would consider a small repository of commonly used QC javascript examples to be a godsend for study purposes. I've googled, but much of the available literature seems to deal with creating javascript functions directed at modifying webpages. I haven't the programming savvy to understand how to convert for QC usage, so yes .. by all means please do post resources, when convenient.

cwright's picture
always always always

Even if the crash logs look completely incomprehensible, they can provide subtle clues that help refine problems and fix bugs. Please Always include/attach them.

(We're thinking of making this an automatic feature of KinemeCore 0.2 (sorta like VDMX), to help automatically collect data without harassing users too much.... thoughts on that?)

gtoledo3's picture
There is something about

There is something about this that is causing a "leak" that is slowly filling up the hard drive. Darn. I didn't let it run long enough to crash though, just long enough to generate 500mb.

Well, it is either the rutt or texture tools :o( Hopefully Chris can take a look at the error log.

leegrosbauer's picture
Crash log attached.

Crash log attached. That suggested auto-report feature might be very good. Frankly, I was too hazy to figure out to zip it up and attach it on my own. Hadda be directed. lol.

So yeah .. if you get any more of 'em in here like me, and you just might if the Mac user base continues to expand, an automated reporting option could be quite beneficial I would think.

gtoledo3's picture
The question IS... does

The question IS... does anyone have the cojones to try to pull this off with the isoRayTrace? :o) Every time I pull that qtz out, I swear my puny laptop actually groans!

leegrosbauer's picture
trop. too much

ok ... I put isoRaytrace 1.01 into a render in image and fed that into your (George) trackball macro from the kineme-texture-plus-rutt-etra composition. I bypassed the blur and re-seated the clear patch on top of everything.

Activated with several interpolation patches, I got 3 FPS on a 2.8 GHz iMac. In all honesty, it didn't seem any prettier or any more unique than those posted above. I'm suspecting perhaps that the old less-is-more concept might often be appropriate to image inputs for rutt etra.

cwright's picture
OoM-Kill

Cool, thanks for the log -- looks like an out-of-memory problem (i.e. something in there leaks -- can't tell what, mind you, but something none the less. So eventually it'll crash for everyone).

toneburst's picture
JS

JavaScript is a language designed for the Web, and has never previously really been used for anything else, to my knowledge.

In a way, it seems a strange choice of Apple's to incorporate it into QC, but I guess it was because they already had a JS interpreter they'd built for Safari, lots of people know bit and pieces of JavaScript, and it's a relatively easy language to learn, being very like C in terms of syntax.

I do wonder sometimes why Apple didn't go for Python though, since it's an established language for graphic programming. Maybe they'll add a Python patch to a future version. Or someone will (nudge-nudge) make a plugin...

It's not all that surprising though, that all the documentation you might find out there on the www about JavaScript assumes you'll be using it in web-development.

a|x

cwright's picture
lingua franca

JS is also used to drive the interface and plugins for the Mozilla suite (Firefox, Thunderbird, et. al.).

[begin vicious python rant]

Python is unusable in its current form -- there's no usable type information to bridge to QC ports, and the environment is global by default (every instance is global, so a variable named "foo" in one patch is magically present in all the others) making it useless for QC. there are modifications to make it non-global, but there are quirks that happen because of that. And if anyone says "Well, that's a feature, enjoy it!", I say "What about when 2 compositions are loaded at the same time? Can you say 'crosstalk'?".

[end rant]

So, when python grows up and becomes a language that makes real efforts to interface with other environments, it'll be a player. In the mean time, my money's on scripting languages designed for this sort of thing, like Lua.

gtoledo3's picture
Well, if we are going to

cw,tb, ... if we are going to talk "surprising", I've always been set-aback that there is no HTML.

cwright's picture
rtf

me too -- rich text would be so nice. Granted, QuickLook can do that for static stuff now, but in general having attributed strings would have been nice...

toneburst's picture
LUA

I don't know much about LUA, maybe I should investigate. I only mentioned Python because I've seen it used in several graphics-related contexts, including NodeBox, and Maya, so I assume there's a largish library of graphics-specific code out there written in the language.

a|x

cwright's picture
*nods*

I've not really seen it used much of anywhere, and know next to nothing about it. But what I do know is that it was from the ground up designed to be embedded in other environments, and cooperate with those environments however unusually structured they may be (QC qualifies as an unusual environment, because it requires rather informed type information, introspection, multiple independent instances, and relatively good performance for a useful language -- JS even almost fails the introspection and strong type criteria (and the performance criteria too ;), but they hacked in the __type junk to make it a bit more palatable.)

Python is quite handy for other environments where these requirements aren't in place (primarily typing, since most graphics stuff doesn't need detailed output objects from python, just generics that can get passed back in if necessary)

[not to be a pedant, but the Lua about page suggests not using all caps for the title ;)]

toneburst's picture
Lua

cwright wrote:
[not to be a pedant, but the Lua about page suggests not using all caps for the title ;)]

We love you for your pedantry ;) I'd always assumed it was an acronym, but apparently it means 'moon' in Portuguese (I've just read).

a|x

gtoledo3's picture
Mmmm, sorry. My reference

Mmmm, sorry. My reference was actually to the horribly poor frame-rate it would most likely get. I didn't mean to inspire that masochism!

I agree about the Rutt though, I think it shines best on live camera, with with mixes of ultra bright stuff, and shadows.

smokris's picture
VMs

cwright wrote:
In the mean time, my money's on scripting languages designed for this sort of thing, like Lua.

Lua sounds like a good option.

Something else to consider: implement a compile-and-execute-bytecode patch, using the Mono VM or Parrot VM for example. By creating a single QC patch, we'd get multiple language-syntaxes for free --- Mono provides C#, VB, Java, Python, Ruby, Eiffel; or about four dozen (mostly partially-implemented) languages in the case of Parrot.

cwright's picture
days of yore

smokris, just as in days of yore, you have once again opened my eyes to new possibilities... :)

These look rather promising. now we just need to find the time to learn their api (to see if it provides what we need), and write parsers/syntax highlighters for every language supported... :)

toneburst's picture
VMs

That looks interesting.

a|x

gtoledo3's picture
lorenz attractor and acceleration integration

lee,tb,

Anything I have been using in this arena doesn't extend much beyond the framework of the lorenzattractor.qtz and the "acceleration integration" and "quantize velocities" portion of teapotii.qtz ... so I have no real javascript revelations :o)

...the basic breakdown of these patches is that you are processing input variables (that are coming from a traditional value input source, like your mouse, a lfo, interpolation, set value, etc) through a math expression(s). You can introduce list extra values/variables at the head of the javascript patch, which you can reference in your equations.

The way I approached it was just to read through the setups/equations until I understood the basic principles that were going on, and then start tweaking variables, or building other patches based around portions.

You can certainly just start substituting other values willy nilly, changing plusses to minuses, etc., and see what happens...

leegrosbauer's picture
Good enough advice

I'll explore, then. Thanks.