Impromptu es un entorno de programación Mac OS X para codificación en vivo . Impromptu se basa en el lenguaje Scheme , que es miembro de la familia de lenguajes Lisp . El código fuente de su núcleo se ha abierto como proyecto Extempore .
Paradigma | Funcional , multi-paradigma |
---|---|
Diseñada por | Andrew Sorensen |
Apareció por primera vez | 2005 |
Lanzamiento estable | 2.5 |
Disciplina de mecanografía | Dinámico y estático |
SO | Mac OS X |
Sitio web | improvisado |
Influenciado por | |
Influenciado | |
Improvisado |
Descripción
El entorno permite realizar cambios en un programa en tiempo de ejecución , por lo que las variables y funciones pueden redefinirse y los cambios entran en vigencia de inmediato. Un programador también puede crear y programar código para ejecución futura, así como eventos de datos como notas y objetos gráficos. Una vez que se programa un evento, la ejecución continúa. El bucle se realiza utilizando un modismo llamado "recursividad temporal" que funciona haciendo que una función programe asincrónicamente una llamada futura a sí misma como su acción final.
La biblioteca permite comunicarse con Audio Units para síntesis de audio y con capas de gráficos como QuickTime , Quartz , Core Image , OpenGL para composición de video . El código escrito en Objective-C se puede llamar desde el editor, y también los frameworks de Objective-C pueden realizar llamadas al intérprete de Scheme.
El intérprete de Scheme de Impromptu se construyó inicialmente a partir de la línea de base TinyScheme 1.35, pero se ha modificado sustancialmente desde entonces para adaptarse mejor al contexto de codificación en vivo. Se agregaron un recolector de basura en tiempo real y la integración de Objective-C . Además, se ha integrado al sistema un nuevo lenguaje escrito estáticamente llamado Extempore Language . Este lenguaje es sintácticamente similar a Scheme, pero semánticamente más cercano a C, y está diseñado para síntesis de sonido en tiempo real y otras tareas computacionalmente pesadas. Proporciona la inferencia de tipos y se compila a lenguaje de máquina por LLVM .
Rendimiento de muestra
Un estudio en Keith es una actuación de codificación en vivo en Impromptu por Andrew Sorensen. Los dos primeros minutos (1:56) son silenciosos, mientras el intérprete escribe el programa que producirá la introducción de la pieza. A partir de ahí, modifica el código sobre la marcha para evolucionar la composición.
Improvisado
El núcleo de Impromptu se ha lanzado como Extempore bajo una licencia de estilo BSD. Se ejecuta tanto en Linux como en Mac OS X. Incluye el intérprete Scheme, el compilador Extempore Language y el programador. Los enlaces a las bibliotecas de Apple están ausentes, pero el entorno puede interactuar con bibliotecas dinámicas.
Ver también
Referencias
Papeles academicos
- Sorensen, A (2010) " Una memoria distribuida para el rendimiento de codificación en vivo en red " International Computer Music Conference 2010, Nueva York
- Sorensen, A & Brown, A (2008) " Un modelo computacional para la generación de música orquestal en la tradición sinfónica germánica: un informe de progreso " documento presentado en la Conferencia de Música por Computadora de Australia 2008, Sydney
- Sorensen, A & Brown, A (2007) " aa-cell in Practice: An Approach to Musical Live Coding " documento presentado en la International Computer Music Conference 2007, Copenhague
- Sorensen, A. (2005) " Impromptu: Un entorno de programación interactivo para la composición y la interpretación " un documento presentado en la Conferencia de Música por Computadora de Australasia 2005, Brisbane: ACMA, págs. 149-153. (Nota: la versión de Impromptu discutida es obsoleta)
- Sorensen, A. " ICR - Tiempo de ejecución del compilador improvisado "
- Thor Magnusson, " Confessions of a Live Coder ", Actas de la Conferencia Internacional de Música por Computadora, 2011.
Otras fuentes
- Peter Kirn, " Pensamiento e interpretación, música de codificación en vivo, explicada a cualquiera - Realmente ", Create Digital Music, 2011
- Mitchell Whitelaw, " Desde cero: una conversación con Andrew Sorensen ", 2007
enlaces externos
- Página web oficial