Listen To Music | Advertise | About Synthtopia | RSS News Feeds | Submit Items For Review | Feedback



http://www.vimeo.com/2735394

Have you been dying to get your regex on when you’re laptop jamming?

If so, and you’re on MacTel, you’ll want to check out Impromptu 2.0.

Impromptu is an OSX programming environment for composers, sound artists, VJ’s and graphic artists with an interest in live or interactive programming.

I’ve embedded an example of Andrew Sorensen’s freestyle Impromptu hacking above.

In the screencast, Sorensen uses an earlier version of Impromptu’s analysis Audio Unit to retrieve FFT data which is then loaded into an image. The image is then blurred using a Gaussian filter. The image data is then pulled from the image and converted for use in vertex and color arrays in OpenGL, such that rgba is xyzw and rbga.

I only understand half of that, but Sorensen makes a compelling argument that Code=Music.

Give Sorensen’s video several minutes so you can see all hell break loose as he live edits a concise coded ambient techno jam.

Details on Impromptu 2.0 below.

If you’re using Impromptu, leave a comment and let us know what you’re doing with it.

Here’s what’s new in Impromptu 2.0:

  • 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.
  • New garbage collector. Musicians shouldn’t have to worry about their heap sizes or their garbage collection, so Impromptu’s new garbage collector provides greater performance with larger heap sizes.

Related Posts

 

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.


    Search

      Translator

      something to think about

      I’ve been telling synthesizer manufacturers for years that the issue is not increasing the number of internal options. The issue is increasing rapport, making a thing that relates to you physically in a better way. Of course the easy course is to add options, since absolutely no conceptual rethink is required. But the relationship between user and machine might be better achieved by reducing options. — Brian Eno

      Latest Comments


      Got Free Music?

      dj-dog

      Check out the Synthtopia music sharing group, where you can share your electronic music and download great tracks from Synthtopia readers!

      Follow Me on Twitter

      TwitterCounter for @podcasting_news

      News Feed

      • Any Feed Reader

      New Photos From The Synthtopia Flickr Group

      www.flickr.com
      items in Synthtopia More in Synthtopia pool
    • Site Admin