Первоначальный выпуск | 1986; 34 года назад (1986) |
---|---|
Стабильный выпуск | 6.15.0 / 13 августа 2020 г. (2020-08-13) |
Репозиторий | |
Написано на | C |
Операционная система | Кросс-платформенная |
Лицензия | LGPL |
Веб-сайт | csound.com |
Csound - это Специфический для предметной области язык программирования для аудиопрограммирования. Он называется Csound, потому что он написан на C, в отличие от некоторых из его предшественников.
Это бесплатное программное обеспечение, доступное под LGPL.
Csound был первоначально написан в MIT Барри Верко в 1985 году., основанный на его более ранней системе под названием Music 11, которая, в свою очередь, следовала модели MUSIC-N, инициированной Максом Мэтьюзом в Bell Labs. Его разработка продолжалась на протяжении 1990-х и 2000-х годов под руководством Джона Фитча из Университета Бата. Первым документированным выпуском версии 5 является версия 5.01 от 18 марта 2006 г. Многие разработчики внесли в нее свой вклад, в первую очередь Иштван Варга, Габриэль Мальдонадо, Робин Уиттл, Ричард Карпен, Иэн МакКарди, Майкл Гогинс, Мэтт Ингаллс, Стивен Йи, Ричард Буланже, Виктор Лаццарини и Иоахим Хайнц.
Разрабатывался на протяжении многих лет, в настоящее время насчитывается около 1700 генераторов. Одна из его самых сильных сторон состоит в том, что он полностью модульный и расширяемый пользователем. Csound тесно связан с языком, лежащим в основе расширений Structured Audio для MPEG-4, SAOL.
Csound принимает в качестве входных данных два специально отформатированных текстовых файла. Оркестр описывает природу инструментов, а партитура описывает ноты и другие параметры на временной шкале. Csound обрабатывает инструкции в этих файлах и выводит аудиофайл или аудиопоток в реальном времени.
Файлы оркестра и партитуры могут быть объединены в один структурированный файл с использованием тегов языка разметки (файл CSD с расширением имени файла .csd). Вот очень простой пример унифицированного файла данных Csound, который создает файл wave, содержащий односекундный синусоидальный тон 1 кГц при частота дискретизации 96 кГц:
csound -W -d -o tone.wav sr = 96000; Частота дискретизации. крон = 9600; Скорость управляющего сигнала. ksmps = 10; Выборок на контрольный сигнал. nchnls = 1; Количество выходных каналов. instr 1 a1 oscil p4, p5, 1; Осциллятор: p4 и p5 - аргументы от счета, 1 - номер таблицы. out a1; Выход. endin f1 0 8192 10 1; Таблица, содержащая синусоидальную волну. Встроенный генератор 10 выдает сумму синусоид, здесь только одну. i1 0 1 20000 1000; Воспроизведите одну секунду одного кГц с амплитудой 20000. e
Как и во многих других языках программирования, написание длинных программ на Csound может быть упрощено за счет использования интегрированной среды для редактирования, предварительного просмотра, тестирования и отладка. Сейчас официально поддерживается CsoundQt, и он имеет множество функций, таких как автоматическая вставка кода, встроенный браузер документации, интегрированные виджеты для графического управления параметрами в реальном времени, а также кнопка для воспроизведения кода.
Версия 5.01 была выпущена 18 марта 2006 г. - через 20 лет после первого выпуска csound. Csound 5 доступен в виде двоичного кода и исходного кода для Linux, Microsoft Windows и Mac OS X из проекта SourceForge Csound. Он значительно улучшен и расширен по сравнению с исходным программным обеспечением, фактически преобразованным в программную библиотеку с API. Для него были разработаны различные внешние интерфейсы. Помимо базового C API, существуют также Python, Java, Lisp, Tcl и C ++ среди других привязок, таких как привязка из Haskell, которая позволяет управлять Csound из чисто функциональной среды.
Использование подключаемых модулей обеспечивает дополнительные возможности без модификации кода Csound, поскольку есть возможность писать определяемые пользователем коды операций как расширения к исходному языку. LADSPA и DSSI поддерживаются, но поддержка VST была удалена.
Воспроизведение в реальном времени через MIDI было добавлено в 1990-х годах. Другим дополнением стала поддержка виджетов FLTK (компоненты графического интерфейса с ползунками, регуляторами и т. Д.) Для управления звуком в реальном времени и интеграция пользовательских графических интерфейсов, написанных на Python.
Csound 6 находится в разработке с момента обсуждения его функций на конференции Csound Conference, состоявшейся в 2011 году в Ганновере. Csound 6 был выпущен в июле 2013 года и теперь доступен на GitHub. Csound 6 также доступен для Android. Основные новые функции Csound 6 включают: синтаксический анализатор на основе
Разработкой Csound 6 руководили Джон Ффич, Стивен Йи и Виктор Лаззарини.
В настоящее время в реальном времени могут быть сгенерированы только партитуры или ноты Csound (в отличие от инструментов, которые можно определить только во время компиляции, когда csound впервые запускается; в Csound 6 это ограничение снято). Набор звуковых процессоров определяется и компилируется во время загрузки, но отдельные объекты обработки могут быть порождены или уничтожены в реальном времени, входной аудиосигнал обрабатывается в реальном времени, а выходной сигнал генерируется также в реальном времени. События нот могут быть инициированы на основе связи OSC в экземпляре инструмента, порождены MIDI или введены в стандартный ввод (путем ввода в терминал или отправки текстовых операторов из другой программы). Использование Csound 5 в качестве инструмента для живого выступления может быть расширено с помощью различных сторонних программ. Лист Live Event в CsoundQt можно использовать для изменения счета в реальном времени. Кроме того, для написания сценария Csound можно использовать интерфейсы к другим языкам программирования. Документ, подробно описывающий использование Csound с Qt или Pure Data в музыкальном синтезе в реальном времени, был представлен на Linux Audio Conference 2012. Проект Ounk пытается интегрировать Python с Csound, а CsoundAC предоставляет способ алгоритмической композиции из Python с использованием Csound в качестве бэкэнда. Csound for Live от Audivation упаковывает различные коды операций в оболочки Max / MSP, подходящие для использования в Ableton Live. Csound также доступен для мобильных систем (iOS, Android).
Csound5 был выбран в качестве системы разработки аудио / музыки для Проект OLPC на платформе XO-1 Laptop.