Home | VST Instruments | VST effects | Audio tools | Links | Music | Search | Archive

News - March 2010


Impromptu updated to v2.3                31st March 2010

Impromptu has been updated to v2.3.

New Additions in 2.3:

  • Debugger: Impromptu now has a debugger. It has limited "public" functionality in this release, primarily providing more detailed error notifications and error highlighting in the text editor. The debugger will automatically jump to an error in the code (if found) - it will also search across multiple text buffers to try to find a give function. If you don't want this automatic error jumping you can turn it off in preferences. The debugger is a work in progress with more on the way.
  • Timing Constraints: There are some new timing constraints. Particularly there is now an upper limit on the execution time of any given function call. This "execution deadline" defaults to 1 minute. This default is at a per process level and can be set per process using (sys:set-defaulttimeout samples). Additionally, any callback (now also aliased as schedule), can have a specific timeout set for it. To set a callback execution timeout you cons a time in samples to the start time (this replaces the old tagging system which is no longer available).
  • Compiler Updates: The compiler is slowly getting there. Lots of additions for this release. Certainly not ready for real world use yet but if you're feeling brave feel free to give it a go. New additions for the compiler include lambda-lifting, recursion (with tail support), variable args, named lets, scheme vectors and lists, better local stack assignment, cond and case statements, better type checking and loads more.
  • Clock and Spaces related stuff:
    • You can now sync clocks and metros using clock:sync-adjust and clock:update-metro. The clock can also be called using "natural language" things like: (clock "16:07:35") ;; clock value at 4:07pm and 35 seconds and (clock "tomorrow 16:07") ;; clock value tomorrow at 4:07pm.
    • Added spaces:reade and spaces:takee which take an element number to return as their first argument. Using a numeric conditional in a spaces call now forces the returned tuples to be ordered (the index of the tuple to use as the numeric match is the index of the first conditional).


  • Fixed ipc remote name proc alias problem by adding optional second return process name.
  • Fixed some remote comms connection problems (problems with remote processes closing uncleanly).
  • all AudioUnit related MIDI events (i.e. direct from impromptu to AU) now run in audio thread -> primarily for East West player. You can turn this behaviour off in the impromptu preferences (although you probably shouldn't).
  • pasting text now calls colour syntax highlight.
  • Fixed an audio file loading bug.
  • Improved performance of MIDI IO.

Impromptu is a free Mac OS X programming environment for composers, sound artists, VJs and graphic artists with an interest in live or interactive programming. Impromptu is a Scheme language environment, a member of the Lisp family of languages.

Time plays a major role in the Impromptu environment allowing accurate real-time scheduling of events and code. Impromptu is a dynamic environment designed for the creation and manipulation of running programs in live performance.


Visit: Impromptu




Back ...




Koblo studio




Space drum