XML Feeds

.

[maxmsp] [ANN] lua~

apalomba at austin.rr.com apalomba at austin.rr.com
Fri Oct 26 12:00:01 MDT 2007


Sounds awesome Graham, I am really looking forward
to giving the XP version a spin. Please keep us 
posted.



Anthony



----- Original Message -----
From: Graham Wakefield <lists at grahamwakefield.net>
Date: Friday, October 26, 2007 12:45 pm
Subject: [maxmsp] [ANN] lua~
To: maxmsp at cycling74.com

> Hi all,
> 
> The lua~ external is back online:
> 
> http://www.mat.ucsb.edu/%7Ewakefield/lua%7E/lua%7E.htm
> 
> Lua~ is a Max/MSP external embedding the Lua language along with 
> some  
> DSP functions and a scheduler supporting sample-accurate function  
> calling using coroutines. A lua~ object embedded in a Max patch can 
> 
> load and interpret Lua scripts that receive, transform and produce  
> MSP signals and Max messages. Lua~ is particularly well suited to  
> granular synthesis, algorithmic microsound and accurate timing 
> needs,  
> helpfully circumventing some of the limitations of the Max/MSP  
> environment for such work by supporting highly dynamic signal  
> processing graphs in parallel processes according to timing  
> specifications below block rate. Using an interpreted scripting  
> language within a graphical programming environment such as Max  
> offers advantages of control flow, generality of data and 
> structure,  
> high precision and control, complexity of data and functional  
> interdependency and variable scoping.
> 
> Here's a very simple code example:
> 
> -- define a function
> function beep(dur)
> 	-- play a decaying sine to the signal outlet for dur seconds:
> 	play(Out, dur, Sine(440) * Decay(dur))
> end
> 
> -- repeat forever:
> while true do
> 	-- launch parallel coroutine, function beep with duration 0-200 ms
> 	go(beep, math.random() * 0.2)
> 
> 	-- wait for up to two seconds	
> 	wait(math.random() * 2)        	
> end
> 
> There are a few special advantages to using Lua - its memory  
> allocator/garbage collector and general efficiency supports  
> interpreting script code in the audio thread, which means that 
> sample- 
> accurate function calls and control logic are possible.  Lua also  
> supports coroutines (collaborative multithreading), kind of like  
> deterministic threads that are very cheap to run.  I've extended 
> them  
> to be aware of sample time, so they can be used like Routines or  
> Tasks in SuperCollider 3, but they can embed both control logic AND 
> 
> synthesis graphs like SuperCollider 2, and also like shreds in ChucK.
> 
> The nicest aspect: you can generate, execute, change and remove any 
> 
> number of any types of unit generators to the signal processing 
> with  
> sample accuracy, below the block-size, at run-time, within  
> deterministic parallel execution flows.
> 
> The not so nice aspect: Binding Lua to Max/MSP is much less simple  
> than binding to Jitter, because of the underlying object model in 
> the  
> SDK (Jitter objects have excellent reflection, while only the most  
> recently obexed' Max objects do).  The main issue is that it is not 
> 
> workable to create, connect and modify MSP objects from within a  
> script binding.  Unfortunately this means that I had to write a new 
> 
> set of elementary unit generators rather than re-using MSP object  
> code.  I'm also in the process of binding the STK library, so a  
> standard, familiar set of ugens and so on will be available.
> 
> Currently OSX only, but maybe I can get a windows box to compile 
> the  
> XP version in the next few weeks.
> 
> Graham
> 
> www.grahamwakefield.net
> _______________________________________________
> maxmsp mailing list
> maxmsp at cycling74.com
> http://www.cycling74.com/mailman/listinfo/maxmsp
> 


More information about the maxmsp mailing list