CSOUND

♦July 2013 ♦

CSound — это язык звукового программирования, также известный как звуковой компилятор или язык аудиопрограммирования. Название обусловлено средой разработки — это язык С. Распространяется бесплатно под свободной лицензией, cоздатель — Барри Веркоу (Barry Vercoe), сотрудник Массачусетского технологического института и композитор.

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

пример программы в Сsound, выполняющей непрерывное воспроизведение звука колокола

пример программы в Сsound, выполняющей непрерывное воспроизведение звука колокола

В качестве входных аргументов используются два специальным образом отформатированных текстовых файла — оркестр (orchestra) описывает природу инструментов, а партитура (score) — ноты и их параметры относительно временной линии. Csound обрабатывает инструкции, содержащиеся в этих файлах и производит рендеринг выходного аудиофайла или аудиопоток в реальном времени.

Описание стандартных функций Сsound в рамках данной статьи не имеет смысла, так как полный список занимает 3000 страниц текста.

Пример текстового файла для создания wav–файла, содержащего синусоидальную волну 1 кГц частотой дискретизации 96 кГц продолжительностью в одну секунду

Пример текстового файла для создания wav–файла, содержащего синусоидальную волну 1 кГц частотой дискретизации 96 кГц продолжительностью в одну секунду

Помимо самой оболочки–компилятора, программа имеет дополнительную программу Cabbage, в которой программист может создать собственные аудиоэффекты или Vst–плагины.

Что касается использования Сsound в качестве инструмента для алгоритмической композиции, то в данном случае лучше использовать специальное расширение Майкла Гогинса, написанное на языке программирования Python — СsoundAC.

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

В музыкальных графах только один примитивный объект — событие, обычно это просто музыкальная нота, расположенная в 12–мерном музыкальном пространстве. Список пространств:

  • TIME — время начала события в секундах.
  • DURATION — продолжительность события в секундах.
  • STATUS — соответствует полубайту MIDI.
  • INSTRUMENT — соответствует MIDI каналу.
  • KEY — высота в midi формате, средняя до=60.
  • VELOCITY — громкость в MIDI.
  • PHASE — фаза в радианах.
  • PAN — панорамирование ноты, 0–центр.
  • DEPTH — глубина ноты по сцене.
  • HEIGHT — расположение верх\низ.
  • PITCHES — звуковысотный набор (интервал, аккорд и т.д.).
  • HOMOGENITY — делает событие однородным вектором.
  • В целом, Csound можно назвать одним из самых тонких инструментов для генерации алгоритмической композиции, однако людям, не знакомым с высокоуровневым программированием, разобраться в нем будет довольно сложно.

    ♦ ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: ♦

  • Граф сцены (Scene graph) — дерево, узлы которого являются объектами сцены, организованные в своеобразную иерархию. Эти узлы могут быть реальными физическими объектами, или просто “абстрактными” объектами.