Экспромт (среда программирования) - Impromptu (programming environment)
Парадигма | Функциональный, мультипарадигма |
---|---|
Разработано | Эндрю Соренсен |
Впервые появился | 2005 |
Стабильный выпуск | 2.5 |
Печатная дисциплина | Динамический & статический |
Операционные системы | Mac OS X |
Интернет сайт | импровизированный |
Под влиянием | |
Под влиянием | |
Экспромтом |
Экспромт это Mac OS X программирование среда для живое кодирование. Экспромт строится вокруг Схема язык, входящий в Лисп семья языков. Исходный код его ядра был открыт как Extempore проект.
Описание
Среда позволяет вносить изменения в программу на время выполнения, поэтому переменные и функции могут быть переопределены, и изменения вступят в силу немедленно. Программист также может создавать и планировать код для будущего выполнения, а также события данных, такие как заметки и графические объекты. После того, как событие запланировано, выполнение продолжается. Цикл выполняется с использованием идиомы, называемой «временная рекурсия», которая работает, когда функция асинхронно планирует будущий вызов самой себе в качестве своего последнего действия.
Библиотека позволяет общаться с Аудиоустройства для синтеза звука и с графическими слоями, такими как QuickTime, Кварцевый, Основной образ, OpenGL для видео композиция. Код написан на Цель-C может быть вызван из редактора, а также платформы Objective-C могут выполнять вызовы интерпретатора схемы.
Интерпретатор Impromptu's Scheme изначально был построен на основе TinyScheme 1.35 baseline, но с тех пор он был существенно изменен, чтобы лучше соответствовать контексту живого кодирования. В реальном времени уборщик мусора, и Цель-C добавлена интеграция. Также появился новый статически типизированный язык, названный Импровизированный язык был интегрирован в систему. Этот язык синтаксически подобен схеме, но семантически ближе к C и предназначен для синтеза звука в реальном времени и других вычислительно тяжелых задач. Это обеспечивает вывод типа и скомпилирован в машинный язык от LLVM.
Образец производительности
Исследование в Ките это живое исполнение кода в экспромте Эндрю Соренсена. Первые две минуты (1:56) молчат, пока исполнитель пишет программу, которая произведет вступление пьесы. С этого момента он изменяет код на лету, чтобы развивать композицию.
Экспромтом
Ядро Impromptu было выпущено как Экспромтом под лицензией стиля BSD. Он работает под обоими Linux и Mac OS X. Он включает интерпретатор схемы, компилятор языка Extempore и планировщик. Привязки к яблоко библиотеки отсутствуют, но среда может взаимодействовать с динамическими библиотеками.
Смотрите также
- Csound
- Сравнение сред синтеза звука
- Суперколлайдер
- Обработка (язык программирования)
- OpenFrameworks
- ChucK
- Список музыкального программного обеспечения
- Макс (программное обеспечение)
- Чистые данные
использованная литература
Академические работы
- Соренсен, А (2010) "Распределенная память для сетевой производительности Livecoding "Международная конференция компьютерной музыки 2010, Нью-Йорк
- Соренсен, А и Браун, А (2008) "Вычислительная модель для создания оркестровой музыки в германской симфонической традиции: отчет о ходе работы "доклад, представленный на Австралазийской конференции компьютерной музыки 2008 г., Сидней
- Соренсен, А и Браун, А (2007) "aa-cell на практике: подход к живому музыкальному кодированию "доклад, представленный на Международной конференции компьютерной музыки 2007 г., Копенгаген.
- Соренсен, А. (2005) "Экспромт: интерактивная среда программирования для композиции и исполнения "доклад, представленный на Австралазийской конференции компьютерной музыки 2005 г., Брисбен: ACMA, стр. 149–153. (Примечание: обсуждаемая импровизированная версия устарела)
- Соренсен, А. "ICR - импровизированная среда выполнения компилятора "
- Тор Магнуссон "Признания живого кодера ", Материалы Международной компьютерной музыкальной конференции, 2011.
Другие источники
- Питер Кирн "Мысль и производительность, живое программирование музыки, объяснение любому - действительно ", Create Digital Music, 2011 г.
- Митчелл Уайтлоу "С нуля - Разговор с Эндрю Соренсеном ", 2007