[Impromptu] impromptu v2.0 released

Andrew Sorensen andrew at moso.com.au
Mon Sep 7 08:13:23 GMT 2009


Impromptu version 2.0 is now available for download at:
http://impromptu.moso.com.au/downloads.html

Impromptu v2.0 is a major release with three significant architectural  
changes.

1) A new impromptu x86 compiler
2) Audio signal processing directly in Impromptu.
3) A new concurrent garbage collector

The new impromptu x86 compiler uses LLVM for backend code generation  
and supports runtime compilation of scheme functions to x86 machine  
code.  In particular the compiler has been added to impromptu to  
support the efficient compilation of scheme code for data processing  
tasks such as image processing, audio signal processing and OpenGL.   
The compiler is exposed at runtime through the sys:compile call which  
accepts a scheme closure and returns a foreign function which may be  
called freely from scheme.  (help sys:compile #t) will give you a  
bunch of examples.

On-the-fly audio DSP programming is now supported directly within the  
impromptu scheme environment by allowing x86 code (i.e. compiled  
scheme code) to be hot-swapped into the kernel of a custom code  
AudioUnit.  You may use one or more of these custom code audiounits  
anywhere in your audiounit chain - as both generators and or effects.   
Code is hot-swapped into an AU kernel by passing a given scheme  
closure to the au:code:load function.  There is also a mechanism for  
sharing memory between the AU and the scheme runtime. (help  
au:code:load #t) will give you a bunch of examples.

The primary motivation for the new GC is to provide greater  
performance with larger heap sizes.

v2.0 also adds support for Snow Leopard but is no longer provided as a  
Universal Binary.  Intel only from v2.0 forward.

A brief screen-cast demonstrating the new on-the-fly audio  
functionality can be found at: http://www.vimeo.com/6096554

Cheers,
Andrew.


More information about the Impromptu mailing list