Jump to content

Impromptu (programming environment)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Digego (talk | contribs) at 00:34, 20 February 2009. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
This article is about the programming language. For other uses, see Impromptu.
Impromptu
Operating systemOSX
Websitehttp://impromptu.moso.com.au/

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. Impromptu is a dynamic environment designed for the creation and manipulation of running programs in live performance. Impromptu is a programmable AudioUnit host. A powerful environment for creating signal processing 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.

Graphics routines can be applied with the same temporal accuracy as audio material allowing artists to tightly integrate audio and visual components. OpenGL, live video processing, vector drawing routines, image rendering, CoreImage filters, text rendering and quicktime movie support are a few of the graphics features available for artists to play with.

Impromptu also includes a bidirectional ObjC-Bridge allowing Scheme to instantiate and call ObjC objects and ObjC objects to call back into the Scheme interpreter. For those times when only C will do.

Impromptu uses a modified version of TinyScheme-based programming environment that runs on Mac OS X, intended for musical and graphical live coding performances.

It's key features are :

  • A fully dynamic Scheme environment. You can evaluate any portion of code in the builtin editor while the program is running, which means you can (re)define variables or function live, the changes take effect immediately.
  • Asynchronous timing. Impromptu allows a programmer to create and schedule code for future execution as well as data events such as notes and graphics objects. Once an event is scheduled, execution continues (unless there is nothing left do do while waiting for the next scheduled task). Looping is performed by using an idiom called "temporal recursion" which works by delaying the next evaluation of a recursive function.
  • Extensive library based on a tight integration with Mac OS X. Audio synthesis is done via Audio Units and graphics are drawn using either Core Image or OpenGL. You can also call Objective C code from the editor if the necessity arises.
  • Free to use, but not open-source.

See Also

http://impromptu.moso.com.au/

References