Jump to content

Impromptu (programming environment)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Pygy (talk | contribs) at 23:02, 19 February 2009 (First version.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Impromptu is a TinyScheme-based programming environment that runs on Mac OS X, intended for musical and graphical live coding performances. It is written by Andrew Sorensen.

It's key features are :

  • A fully dynamic Scheme environment. You can evaluate any portion of code 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.
  • 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.

See Also

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

References

Sorensen, A & Brown, A (2008) "A Computational Model For The Generation Of Orchestral Music In The Germanic Symphonic Tradition: A progress report" paper presented to the Australasian Computer Music Conference 2008, Sydney Sorensen, A & Brown, A (2007) "aa-cell in Practice: An Approach to Musical Live Coding" paper presented to the International Computer Music Conference 2007, Copenhagen Sorensen, A. (2005) "Impromptu: An interactive programming environment for composition and performance" a paper presented to the Australasian Computer Music Conference 2005, Brisbane: ACMA, pp. 149-153. (NOTE: Impromptu version discussed is obsolete)