Impromptu (programming environment)
An editor has nominated this article for deletion. You are welcome to participate in the deletion discussion, which will decide whether or not to retain it. |
- This article is about the programming language. For other uses, see Impromptu (disambiguation).
![]() | |
Paradigm | Functional, multi-paradigm |
---|---|
Designed by | Andrew Sorensen |
First appeared | 2005 |
Stable release | 2.5
|
Typing discipline | Dynamic & static |
OS | Mac OS X |
Website | http://impromptu.moso.com.au/ |
Impromptu is a Mac OS X programming environment for live programming. Impromptu is a Scheme language environment, which is a member of the Lisp family of languages. Impromptu's Scheme Interpreter was initially built from the TinyScheme 1.35 baseline, but it has been substantially modified since.
Description
The environment allows to make changes to a program at runtime, so variables and functions may be redifined and the changes take effect immediately. A programmer can also 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 its final action.
The library allows to communicate with Audio Units for audio synthesis, and to graphics layers such as QuickTime, Quartz, Core Image, OpenGL for video composition. Code written in Objective-C can be called from the editor, and also Objective-C frameworks can perform calls to the Scheme interpreter. It includes a static type inferencing compiler for a minimal functional language similar to Scheme, but it is designed for dynamic systems programming. The compiler uses LLVM for backend compilation to x86.
References
Papers by Andrew Sorensen
- Sorensen, A (2010) "A Distributed Memory For Networked Livecoding Performance" International Computer Music Conference 2010, New York
- 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)
- Sorensen, A. "ICR - Impromptu Compiler Runtime"
Independent academic sources referencing Impromptu
- Click Nilson "Live coding practice" NIME '07, Proceedings of the 7th international conference on New interfaces for musical expression ACM New York, NY, USA ©2007
- Roger B. Dannneberg, “Live Coding Using a Visual Pattern Composition Language,” in Proceedings of the 12th Biennial Symposium on Arts and Technology, March 4-6, Ammerman Center for Art & Technology, Connecticut College, 2010
- Nick Collins "Live Coding of Consequence", Leonardo, June 2011, Vol. 44, No. 3, Pages 207-211
- Andrea Valle "GeoGraphy: a realtime, graphbased composition environment", NIME08, Genova, Italy Copyright 2008
- Thor Magnusson "ixi lang: A Constraint System for Live Coding", ISEA2010 RUHR, Conference Proceeedings, 2010.
- Dillon, Steven C. (2007) "Examining meaningful engagement: Musicology and virtual music making environments". In ISLANDS - Conference of the Australian and New Zealand Musicological Societies, 22-25 November 2007, Brisbane.
- Jason Freeman and Akito Van Troyer "Collaborative Textual Improvisation in a Laptop Ensemble" Computer Music Journal - Volume 35, Number 2, Summer 2011, pp. 8-21
- Dillon, Steven C. (2010) ‘Music is a wordless knowing of others.’ Resilience in virtual ensembles. In: Brader, Andy (Ed) Songs of Resilience. Meaningful Music Making For Life, 3. Cambridge Scholars Publishing, Newcastle upon Tyne. (In Press as of 2011-06-01)
- Ross Bencina "Creative software development: reflections on AudioMulch practice" Digital Creativity Volume 17, Issue 1, 2006, Pages 11 - 24
- Alex McLean and Geraint Wiggins (2009) "Patterns of Movements in Live Languages". In Proceedings of CHArt 2009, London.
- Thor Magnusson, "Confessions of a Live Coder", Proceedings of International Computer Music Conference, 2011.[verification needed]
Other sources
- Peter Kirn, "Thought and Performance, Live Coding Music, Explained to Anyone - Really", Create Digital Music, 2011
- Mitchell Whitelaw, "From Scratch - A Conversation with Andrew Sorensen", 2007
See also
- Comparison of audio synthesis environments
- SuperCollider
- Processing
- OpenFrameworks
- NodeBox
- ChucK
- jMax
- Max (software)
- Pure Data
- TinyScheme