Procedural audio/video art in LISP

Any topic not related to ZGE.

Moderator: Moderators

Post Reply
User avatar
VilleK
Site Admin
Posts: 2277
Joined: Mon Jan 15, 2007 4:50 pm
Location: Stockholm, Sweden
Contact:

Procedural audio/video art in LISP

Post by VilleK »

This guy procedurally and incrementally programs a audiovisual performance using LISP, very interesting stuff:

http://www.imagine27.com/articles/2009- ... sound.html

Watch full screen and with audio on (the first few minutes there is just code on a screen but it builds up rather nicely).
User avatar
jph_wacheski
Posts: 1005
Joined: Sat Feb 16, 2008 8:10 pm
Location: Canada
Contact:

Post by jph_wacheski »

Wow, that was cool! Gave me some ideas for random functions and some others, I will see if I can build some library functions,. however a random(n,n1,,2n,n3...) that returns one of the number given would be nice and not sure how I could do that without hard coding the number of argument?? ideas, suggestions? supose I will just ry a random4() random8() whatever thing,. . .hummm.. nice find!
iterationGAMES.com
User avatar
VilleK
Site Admin
Posts: 2277
Joined: Mon Jan 15, 2007 4:50 pm
Location: Stockholm, Sweden
Contact:

Post by VilleK »

I found the tool that was used:

http://impromptu.moso.com.au/

It's OSX only but the site looks interesting and maybe we can find ideas to use in ZGE.
User avatar
Kjell
Posts: 1883
Joined: Sat Feb 23, 2008 11:15 pm

Post by Kjell »

Hmm,

There's a whole army of tools like that .. VSXu, VVVV, Max/MSP/Jitter, NodeBox, Processing etc. None have much to do with games though .. plain'old eye-candy :wink:

By the way, here's your Grabbelton ( Random Selector ) jph. Fill the "Integers" Array with the numbers you want to choose from, and pass the amount as argument with the Grabbel() Function. The example uses 4 numbers ( 2, 5, 7, 8 ) and chooses a random one out of those OnLoaded.

No need to hard-code these kinds of things people :)

K
Attachments
Grabbel.zgeproj
(738 Bytes) Downloaded 489 times
User avatar
jph_wacheski
Posts: 1005
Joined: Sat Feb 16, 2008 8:10 pm
Location: Canada
Contact:

Post by jph_wacheski »

Ville- indeed some quite interesting music codes in there! I will have snoop around and see what I can learn,. .

Kjell- thanks man that is very cool, I had a slightly different thing in mind,. here it is as a Grabble4() function,. easy to expand grabble16() ect,. however, what I was wundering though,. was is is possible to make a ZLibrary function with an arbitrary number of argument?? like a grabble(n1,n...) and have the function just scale to the number of arguments it is given? mostly an intelectual question, as with your help, I shall be employing grabbel4() from now on. cheers :)

oh I think there may be a bug in the arrays still,. as when I changed the name to n (as it was setup for floats) it would not recognize this, and poped some errs,. and would not let me deleat the array,. then I saved and restarted and it worked fine anyway?
Attachments
Grabbel4.zgeproj
the funky new grabble4()
(755 Bytes) Downloaded 557 times
iterationGAMES.com
User avatar
Kjell
Posts: 1883
Joined: Sat Feb 23, 2008 11:15 pm

Post by Kjell »

Hej jph,

Support for function overloading is probably not that easy to implement as it would require quite some work on the script compiler .. plus the risk of run-time errors will be far greater.

Your Grabbel4() function is actually the way I would go as well when only needing a single pool-size in a project :) But when that's not the case, I think my original approach is a bit cleaner compared to writing a separate function for each pool-size you want to use ( duplicate code you know ) ..

K
User avatar
VilleK
Site Admin
Posts: 2277
Joined: Mon Jan 15, 2007 4:50 pm
Location: Stockholm, Sweden
Contact:

Post by VilleK »

A research-paper by the author of the video describing some techniques: http://impromptu.moso.com.au/extras/aa-cell-icmc07.pdf

And apparently there is a whole scene of this "live coding" stuff: http://www.toplap.org/index.php/Frequen ... dQuestions

I wouldn't be surprised if artists like Radiohead or Aphex Twin picked up on this.
User avatar
jph_wacheski
Posts: 1005
Joined: Sat Feb 16, 2008 8:10 pm
Location: Canada
Contact:

Post by jph_wacheski »

very cool, lead me to this,. .

http://audicle.cs.princeton.edu

video of it in action,.
http://www.youtube.com/watch?v=hFAh-pgxGyc

looks very cool about to try it out,. I'll report back!

this is essentially what I was doing with BUZZ when I used to play live shows,. http://www.archive.org/details/nishi011 no codeing persay but very much the same live linking and tweeking of realtime sound generation, sample manipulation, and dsp effects and mixing,. BUZZ really is quite a performance tool,. as well as a full integrated composing mixing and produciton studio,. I have friends using pure data and MAX, etc. check out http://www.phoniq.net/
iterationGAMES.com
User avatar
jph_wacheski
Posts: 1005
Joined: Sat Feb 16, 2008 8:10 pm
Location: Canada
Contact:

Techno from the command line,. .

Post by jph_wacheski »

some more interesting live coding this time in Haskell,. found it here;

http://www.synthgear.com/2009/music/has ... -language/

or more to the source,. http://yaxu.org/
iterationGAMES.com
kattle87
Posts: 402
Joined: Wed Sep 26, 2007 9:06 am
Location: Italy

Post by kattle87 »

nice stuff! However, lisp is an evil programming language... :D
http://xkcd.com/297/

OT: Tomorrow, second exam. Out of a total of 7 + final project (I hope of giving it in september!)
In the fall of 1972 President Nixon announced that the rate of increase of inflation was decreasing. This was the first time a sitting president used the third derivative to advance his case for reelection.
-=Hugo Rossi=-
Post Reply