Impromptu (programming environment): Difference between revisions

Content deleted Content added
Dexbot (talk | contribs)
m Bot: Remove redundant paramter in official template, handled by Wikidata
Bender the Bot (talk | contribs)
m Other sources: HTTP to HTTPS for Blogspot
 
(11 intermediate revisions by 10 users not shown)
Line 1:
: ''This article is {{about |the programming language. For other uses, see [[||Impromptu (disambiguation)]].''}}
{{Infobox programming language
| name = Impromptu
| logo = [[File:Splash smaller.jpg]]
| caption =
| file_ext =
Line 16:
| implementations =
| dialects =
| influenced by = {{hlist |[[Lisp programming language|Lisp]] |[[Scheme_Scheme (programming_languageprogramming language)|Scheme]]}}
| influenced = [[Extempore (software)|Extempore]]
| operating_system = [[Mac OS X]]
Line 30:
The environment allows to make changes to a program at [[run time (program lifecycle phase)|runtime]], so variables and functions may be redefined 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 communicating with [[Audio Units]] for audio synthesis, and with graphics layers such as [[QuickTime]], [[Quartz (graphics layer)|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.
 
Impromptu's Scheme interpreter was initially built from the [[TinyScheme]] 1.35 baseline, but it has been substantially modified since to better suit the live coding context. A real-time [[garbage collection (computer science)|garbage collector]], and [[Objective-C]] integration were added. Also, a new statically typed language called the ''Extempore Language'' has been integrated to the system. This language is syntactically Scheme-like, but semantically closer to C, and is designed for real-time sound synthesis and other computationally heavy tasks. It provides [[type inference]] and is compiled to [[machine language]] by [[LLVM]].
Line 45:
 
==See also==
*[[Csound]]
* [[Extempore (software)|Extempore]]
* [[Comparison of audio synthesis environments]]
* [[SuperCollider]]
* [[Processing (programming language)]]
* [[OpenFrameworks]]
* [[NodeBox]]
* [[ChucK]]
* [[jMaxList of music software]]
* [[Max (software)]]
* [[Pure Data]]
* [[TinyScheme]]
 
== References ==
 
<references />
 
=== Academic papers ===
 
* Sorensen, A (2010) "[http://impromptu.moso.com.au/extras/icmc2010.pdf A Distributed Memory For Networked Livecoding Performance] {{Webarchive|url=https://web.archive.org/web/20210226081451/http://impromptu.moso.com.au/extras/icmc2010.pdf |date=2021-02-26 }}" International Computer Music Conference 2010, New York
* Sorensen, A & Brown, A (2008) "[http://impromptu.moso.com.au/extras/acmc08_orchestral.pdf 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) "[http://impromptu.moso.com.au/extras/aa-cell-icmc07.pdf aa-cell in Practice: An Approach to Musical Live Coding]" paper presented to the International Computer Music Conference 2007, Copenhagen
* Sorensen, A. (2005) "[http://impromptu.moso.com.au/extras/sorensen_acmc_05.pdf Impromptu: An interactive programming environment for composition and performance]" a paper presented to the Australasian Computer Music Conference 2005, Brisbane: ACMA, pp. &nbsp;149–153. (Note: Impromptu version discussed is obsolete)
* Sorensen, A. "[http://impromptu.moso.com.au/extras/ICR.html ICR - Impromptu Compiler Runtime]"
* Thor Magnusson, "[http://eprints.brighton.ac.uk/10110/ Confessions of a Live Coder]", Proceedings of International Computer Music Conference, 2011.
Line 73 ⟶ 69:
 
* Peter Kirn, "[http://createdigitalmusic.com/2010/07/thought-and-performance-live-coding-music-explained-to-anyone-really/ Thought and Performance, Live Coding Music, Explained to Anyone - Really]", Create Digital Music, 2011
* Mitchell Whitelaw, "[httphttps://teemingvoid.blogspot.com/2007/12/from-scratch-conversation-with-andrew.html From Scratch - A Conversation with Andrew Sorensen]", 2007
 
==External links==
* {{Official website}}
* http://improgramming.wordpress.com/ - a blog about Impromptu by [http://www.cogs.susx.ac.uk/users/thm21/ Thor Magnusson]
* http://vimeo.com/impromptu/videos/sort:plays - Live performances by Andrew Sorensen.
 
[[Category:Audio programming languages]]
[[Category:Live coding]]
[[Category:Articles containing video clips]]