Impromptu version 0.96 (Mac/Universal/Free)

Impromptu is an OSX programming environment for composers, sound artists, VJ's 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 blocks. Impromptu is a dynamic environment designed specifically for the creation and manipulation of running programs in live performance.

Impromptu is a programmable AudioUnit host. A powerful environment for creating AudioUnit graphs of arbitrary complexity with precise programmatic control over individual AU nodes. Musical material can be precisely scheduled for performance by any AudioUnit instrument node and parameters, program changes and presets can be programmatically changed on-the-fly as well as directly via the AU's user interface.

Quartz drawing routines can be applied with the same temporal accuracy as audio material allowing composers to tightly integrate audio and visual components. Quicktime movies, bezier paths, images, CoreImage filters and beautiful text rendering are a few of the graphics features available for artists to play with.

Impromptu has been developed for use in live sonic/visual performance. Live, real-time or on-the-fly programming is a performance paradigm stemming from laptop performance, but with an emphasis on the crafting of algorithms in real-time. Impromptu is designed to provide a dynamic, real-time, multi-user runtime capable of supporting the creation, modification, distribution and evaluation of source code in live performance.

These notes outline some of the major changes from version 0.95 to 0.96.

There are many new functions in 0.96 and many existing functions have been changed so please look to impromptu's new help system for more information on any impromptu function (for example: play-note now takes a duration in samples and not in seconds). I also strongly encourage people to look at the example files as these have all been updated and in many cases provide the best possible source of information.

Universal Binary
Impromptu flies on Intel :)

Impromptu has a new help system.

There is a new help macro that prints help on any given function to the log view. Try this (help play-note #t).
Impromptu's help has also been updated and provides a complete function index with help for each item.

Impromptu will now dynamically display function definitions in the message bar for whichever function is currently being edited (including any functions defined by the user at runtime).
All globally defined symbols are now highlighted.
Syntax highlighting is now more efficient.
Tab completion is now available for all globally defined symbols. Partial completions are displayed in the log view and can be selected in turn by continuing to tab.
More keyboard shortcuts added
You can now save a buffer with the file extension .html (saving as html) or .rft (saving as rtf) as well as the previous .scm (which saves as a text file)

... and much more.

It is now possible to capture both audio and graphics.

... type (help start-audio-capture #t) :)

There are now two forms of midi output
midi-out for sending midi to external devices
au-midi-out for sending midi to audiounits

Vector Functions
There is a completely new set of vector and matrix functions available. These functions allow for slicing and masking. Please read the potpuri.scm and evelope.scm examples to see how these can be used. (note: the old 0.95 vector functions have been removed)
... etc.

Unfortunately Impromptu 0.96 will replace any existing preferences files that might have been saved with previous versions of impromptu.