Impromptu (programming environment)
Appearance
- This article is about the programming language. For other uses, see Impromptu_(disambiguation).
Impromptu | |
---|---|
![]() | |
Paradigm | Functional Multi-Paradigm |
Designed by | Andrew Sorensen |
First appeared | 2005 |
Stable release | 1.34
|
Typing discipline | Dynamic |
OS | OSX |
Website | http://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.
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. Looping is performed by using an idiom called "temporal recursion" which works by having a function asynchronously schedule a future call to itself as it's final action.
- 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 and call back into the Scheme interpreter from your own ObjC frameworks.
- Impromptu's Scheme Interpreter was initially built from the TinyScheme 1.35 baseline. The interpreter has been substantially modified since the initial release.
- Free to use, but not open-source.
See Also
- Comparison of audio synthesis environments
- SuperCollider
- ChucK
- jMax
- Max (software)
- Pure Data
- TinyScheme
External Links
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)