Impromptu (programmeringsmiljö)
Paradigm | Funktionellt , multiparadigm |
---|---|
Designad av | Andrew Sørensen |
Dök först upp | 2005 |
Stabil frisättning | 2.5 |
Maskinskrivningsdisciplin | Dynamisk & statisk |
OS | Mac OS X |
Hemsida | |
Påverkad av | |
Influerade | |
Extempore |
Impromptu är en Mac OS X- programmeringsmiljö för live-kodning . Impromptu är uppbyggt kring Scheme- språket, som är en medlem av Lisp -familjen av språk. Källkoden för dess kärna har öppnats som Extempore-projektet .
Beskrivning
Miljön tillåter att göra ändringar i ett program vid körning , så variabler och funktioner kan omdefinieras och ändringarna träder i kraft omedelbart. En programmerare kan också skapa och schemalägga kod för framtida exekvering, såväl som datahändelser som anteckningar och grafikobjekt. När en händelse är schemalagd fortsätter exekveringen. Looping utförs genom att använda ett idiom som kallas "temporal rekursion" som fungerar genom att en funktion asynkront schemalägger ett framtida anrop till sig själv som sin slutliga åtgärd.
Biblioteket tillåter kommunikation med ljudenheter för ljudsyntes och med grafiklager som QuickTime , Quartz , Core Image , OpenGL för videokomposition . Kod skriven i Objective-C kan anropas från editorn, och även Objective-C-ramverk kan utföra anrop till Scheme-tolken.
Impromptus Scheme-tolk byggdes från början från TinyScheme 1.35-baslinjen, men den har modifierats avsevärt sedan dess för att bättre passa livekodningskontexten. En sopsamlare i realtid och Objective-C- integration lades till. Dessutom har ett nytt statiskt skrivet språk som kallas Extempore Language integrerats i systemet. Det här språket är syntaktiskt Scheme-liknande, men semantiskt närmare C, och är designat för ljudsyntes i realtid och andra beräkningstunga uppgifter. Det ger typinferens och kompileras till maskinspråk av LLVM .
Exempel prestanda
A Study in Keith är ett live-kodningsframträdande i Impromptu av Andrew Sorensen. De första två minuterna (1:56) är tysta, medan artisten skriver programmet som ska producera inledningen av stycket. Från och med då modifierar han koden i farten för att utveckla kompositionen.
Extempore
Kärnan i Impromptu har släppts som Extempore under en BSD-licens. Det körs under både Linux och Mac OS X. Det inkluderar Scheme-tolken, Extempore Language-kompilatorn och schemaläggaren. Bindningarna till Apples bibliotek saknas, men miljön kan samverka med dynamiska bibliotek.
Se även
- Csound
- Jämförelse av ljudsyntesmiljöer
- SuperCollider
- Bearbetning (programmeringsspråk)
- OpenFrameworks
- Kasta
- Lista över musikprogramvara
- Max (mjukvara)
- Ren data
Akademiska uppsatser
- 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 presenterat för Australasian Computer Music Conference 2008, Sydney
- Sorensen, A & Brown, A (2007) " aa-cell in Practice: An Approach to Musical Live Coding "-uppsats presenterad för International Computer Music Conference 2007, Köpenhamn
- Sorensen, A. (2005) " Impromptu: En interaktiv programmeringsmiljö för komposition och framförande " ett dokument som presenterades för Australasian Computer Music Conference 2005, Brisbane: ACMA, s. 149–153. (Obs: den diskuterade improviserade versionen är föråldrad)
- Sorensen, A. " ICR - Impromptu Compiler Runtime "
- Thor Magnusson, " Confessions of a Live Coder ", Proceedings of International Computer Music Conference, 2011.
Andra källor
- Peter Kirn, " Tanke och prestanda, Live Coding Music, Explained to Anyone - Really ", Skapa digital musik, 2011
- Mitchell Whitelaw, " From Scratch - A Conversation with Andrew Sorensen ", 2007