stringtranslate.com

Csound

Csound — это предметно-ориентированный язык программирования для аудио. Он называется Csound, потому что написан на языке C , в отличие от некоторых своих предшественников.

Это бесплатное программное обеспечение , доступное по лицензии LGPL-2.1 или более поздней версии .

Csound был изначально написан в Массачусетском технологическом институте Барри Верко в 1985 году на основе его более ранней системы под названием Music 11, которая, в свою очередь, следовала модели MUSIC-N, инициированной Максом Мэтьюзом в Bell Labs. Его разработка продолжалась в течение 1990-х и 2000-х годов под руководством Джона Фитча в Университете Бата. Первый задокументированный выпуск версии 5 — это версия 5.01 от 18 марта 2006 года. В него внесли свой вклад многие разработчики, в частности, Иштван Варга, Габриэль Мальдонадо, Робин Уиттл, Ричард Карпен, Иэн МакКерди, Майкл Гогинс, Мэтт Ингаллс, Стивен Йи, Ричард Буланже , Виктор Лаццарини и Иоахим Хайнц.

Разрабатываемый в течение многих лет, в настоящее время он имеет около 1700 генераторов единиц . Одной из его самых сильных сторон является то, что он полностью модульный и расширяемый пользователем. Csound тесно связан с базовым языком для расширений структурированного звука MPEG-4 , SAOL .

Код Csound

Csound принимает два специально отформатированных текстовых файла в качестве входных данных. Оркестр описывает природу инструментов, а партитура описывает ноты и другие параметры по временной шкале. Csound обрабатывает инструкции в этих файлах и выводит аудиофайл или аудиопоток в реальном времени в качестве выходных данных.

Файлы оркестра и партитуры могут быть объединены в один структурированный файл с использованием тегов языка разметки (файл CSD с расширением имени файла .csd). Вот очень простой пример унифицированного файла данных Csound, который создает файл волны , содержащий односекундный синусоидальный тон 1 кГц с частотой дискретизации 96 кГц:

<CsoundSynthesizer>  <CsOptions> csound -W -d -o тон.wav </CsOptions>  <CsInstruments> sr = 96000 ; Частота дискретизации. kr = 9600 ; Скорость управляющего сигнала. ksmps = 10 ; Выборок на управляющий сигнал. nchnls = 1 ; Количество выходных каналов.                 instr 1 a 1 oscil p4 , p5 , 1 ; Осциллятор: p4 и p5 — аргументы из счета, 1 — номер таблицы. out a 1 ; Выход. endin </CsInstruments>             <CsScore> f 1 0 8192 10 1 ; Таблица, содержащая синусоиду. Встроенный генератор 10 выдает сумму синусоид, здесь только одну. i 1 0 1 20000 1000 ; Воспроизвести одну секунду одного кГц с амплитудой 20000. e </CsScore>              </CsoundSynthesizer>

Как и во многих других языках программирования, написание длинных программ в Csound можно облегчить, используя интегрированную среду для редактирования, предварительного просмотра, тестирования и отладки . Сейчас официально поддерживается CsoundQt, и он имеет множество функций, таких как автоматическая вставка кода, интегрированный браузер документации, интегрированные виджеты для графического управления параметрами в реальном времени, а также кнопка для воспроизведения кода.

Звук 5

Версия 5.01 была выпущена 18 марта 2006 года — через 20 лет после первого релиза csound. Csound 5 доступен в двоичном и исходном коде для Linux, Microsoft Windows и Mac OS X из проекта SourceForge Csound. [3] Он значительно улучшен и расширен по сравнению с оригинальным программным обеспечением, фактически превращен в программную библиотеку с API . Для него были разработаны различные интерфейсы . В дополнение к базовому C API, есть также Python , Java , Lisp , Tcl и C++ среди других привязок, например, одна из Haskell , которая позволяет управлять Csound из чисто функциональной среды.

Использование плагинов обеспечивает дополнительные возможности без внесения изменений в код Csound, поскольку есть возможность писать пользовательские коды операций как расширения исходного языка. Поддерживаются LADSPA и DSSI , но поддержка VST была удалена.

В 1990-х годах было добавлено исполнение в реальном времени через MIDI . Другим дополнением стала поддержка виджетов FLTK (компоненты графического интерфейса с ползунками, ручками и т. д.) для управления звуком в реальном времени и интеграция пользовательских графических интерфейсов, написанных на Python.

Звук 6

Csound 6 находится в разработке с тех пор, как его функции были обсуждены на конференции Csound, состоявшейся в 2011 году в Ганновере. Csound 6 был выпущен в июле 2013 года и теперь доступен на GitHub . [4] Csound 6 также доступен для Android . Основные новые функции Csound 6 включают в себя:

Разработкой Csound 6 руководили Джон Фитч , Стивен Йи и Виктор Лаццарини .

Csound для живого выступления

В настоящее время только события нот или партитуры Csound могут быть сгенерированы в реальном времени (в отличие от инструментов, которые определяются только во время компиляции, когда csound впервые запускается; в Csound 6 это ограничение снято). Набор звуковых процессоров определяется и компилируется во время загрузки, но отдельные объекты обработки могут быть созданы или уничтожены в реальном времени, входной звук может быть обработан в реальном времени, а выходные данные также могут быть сгенерированы в реальном времени. События нот могут быть вызваны на основе OSC-сообщений внутри экземпляра инструмента, созданы по MIDI или введены в stdin (путем ввода в терминал или отправки текстовых операторов из другой программы). Использование Csound 5 в качестве инструмента для живого исполнения может быть дополнено разнообразным сторонним программным обеспечением. Live Event Sheet в CsoundQt может использоваться для изменения партитуры в реальном времени. Кроме того, для написания сценариев Csound могут использоваться интерфейсы к другим языкам программирования. Документ, в котором подробно описывается использование Csound с Qt или Pure Data в музыкальном синтезе в реальном времени, был представлен на конференции Linux Audio Conference 2012 года [5]. Проект Ounk пытается интегрировать Python с Csound, в то время как CsoundAC предоставляет способ создания алгоритмической композиции из Python с использованием Csound в качестве бэкэнда. Csound for Live от Audivation упаковывает различные опкоды в оболочки Max/MSP, подходящие для использования в Ableton Live . [6] [7] Csound также доступен для мобильных систем (iOS, Android). [8]

Один ноутбук на ребенка (OLPC)

Csound5 был выбран в качестве системы разработки аудио/музыки для проекта OLPC на платформе ноутбука XO-1 . [9]

Смотрите также

Ссылки

  1. ^ Доктор Ричард Буланже - Три десятилетия с Csound: корни, рождение и ранние годы
  2. ^ "Выпуски · csound/csound". github.com . Получено 2023-02-11 .
  3. ^ "Csound | SourceForge.net".
  4. ^ "Csound | GitHub.com".
  5. ^ Иоахим Хайнц. "Csound как приложение реального времени" (PDF) . Институт новой музыки.
  6. ^ Питер Кирн (15 октября 2011 г.). "Csound For Live wiki". Создание цифровой музыки.
  7. Synthhead (15 октября 2011 г.). "Csound For Live Coming October 17th wiki". Synthtopia.
  8. ^ С. Йи и В. Лаццарини. «Csound для Android» (PDF) .
  9. ^ "Csound на OLPC wiki" . Получено 23 ноября 2010 г.

Дальнейшее чтение

Внешние ссылки