Csound - Csound

Csound
изначальный выпуск1986; 34 года назад (1986)[1]
Стабильный выпуск
6.15.0[2] / 13 августа 2020 г. (2020-08-13)
Репозиторий Отредактируйте это в Викиданных
Написано вC
Операционная системаКроссплатформенность
ЛицензияLGPL
Интернет сайтcsound.com

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

это свободное программное обеспечение, доступный под LGPL.

Csound изначально был написан на Массачусетский технологический институт от Барри Верко в 1985 году на основе его более ранней системы под названием Music 11, которая, в свою очередь, последовала МУЗЫКА-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 tone.wav </CsOptions>    <CsInstruments>    SR     = 96000           ; Частота дискретизации.    кр     = 9600            ; Скорость управляющего сигнала.    ksmps  = 10              ; Выборок на контрольный сигнал.    nchnls = 1               ; Количество выходных каналов.    instr 1    а1     осцил p4, p5, 1   ; Осциллятор: p4 и p5 - аргументы от счета, 1 - номер таблицы.    вне а1                   ; Вывод.    конец  </CsInstruments>  <CsScore>    ж1 0 8192 10 1           ; Таблица, содержащая синусоидальную волну. Встроенный генератор 10 выдает сумму синусоид, здесь только одну.    я1 0 1 20000 1000        ; Воспроизведите одну секунду одного кГц с амплитудой 20000.    е  </CsScore></CsoundSynthesizer>

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

Csound 5

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

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

Производительность в реальном времени благодаря MIDI был добавлен в 1990-х годах. Еще одним дополнением стала поддержка ФЛТК виджеты (компоненты графического интерфейса с ползунками, регуляторами и т. д.) для управления звуком в реальном времени и интеграция настраиваемых графических интерфейсов, написанных на Python.

Csound 6

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

  • А зубр /сгибать парсер на основе языка Csound теперь является стандартом. Это порождает абстрактное синтаксическое дерево доступный через Csound API. Затем дерево можно скомпилировать в среду выполнения Csound, используя API. Следовательно, после того, как дерево было скомпилировано, им можно управлять с помощью пользовательского кода перед его компиляцией в среду выполнения Csound. В качестве альтернативы, пользователь может создать все абстрактное синтаксическое дерево на другом языке, а затем скомпилировать дерево в среду выполнения Csound.
  • Появился новый встроенный многомерный массив типа. Массивы могут передаваться в инструменты и коды операций. Арифметика может выполняться непосредственно над массивами.
  • Существует новая система типов, которая позволяет использовать определяемые пользователем типы в языке Csound.
  • Оркестр можно перекомпилировать в любое время, или отдельные инструменты могут быть скомпилированы в любое время во время выступления. Это делает возможным настоящее "живое кодирование" в выступлениях Csound.
  • API Csound был рационализирован и упрощен.
  • Csound может использовать любое количество процессоров для одновременной обработки во время работы. Это происходит без каких-либо изменений в коде Csound. Это дает существенное ускорение обработки большей части Csound'а. Например, кусок, который отображается за 100 секунд с 1 ядром, должен отображаться примерно за 50 секунд с 4 ядрами.
  • Csound может компилировать оркестры и партитуры непосредственно из строк текста, что позволяет использовать Csound в средах, где запись в файловую систему не разрешена.
  • События партитуры, такие как заметки, могут быть запланированы для точного отсчета времени, даже если синтез выполняется блоками отсчетов.
  • Все коды операций, которые возвращают одно значение, могут использоваться как функции в языке оркестра.
  • Форматы файлов аудиоанализа могут быть независимыми от порядка следования байтов.
  • Один оператор оценки может содержать несколько строковых параметров.
  • Большинство кодов операций генератора будут использовать внутреннюю таблицу синусоидальных функций, если номер таблицы не указан.
  • Параметры командной строки можно установить программно с помощью Csound API.
  • Были рационализированы многочисленные повторяющиеся области кода в Csound.
  • Было создано приложение для Android, которое предоставляет определяемые пользователем графические пользовательские интерфейсы и алгоритмическую композицию на основе JavaScript с использованием HTML5.

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

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

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

Интерфейсы: IDE и среды для создания музыки

Окно по умолчанию CsoundQt 0.9.7, работающее на Linux Mint 20 Xfce
  • MacCsound - это интегрированная среда программирования Csound для Macintosh (без обновлений с начала 2011 года).
  • Csound Editor - это интегрированная среда программирования для Csound [Windows].
  • WinXoundPro - еще одна IDE для Csound.
  • CsoundQt - еще один интерфейс с графическим интерфейсом для CSound [Windows / Mac / * NIX]. Теперь он включен в дистрибутив CSound.
  • Dex Tracker Dex Tracker - интерфейс в стиле трекера для csound, включающий редактор сетки и инструменты генерации кода, а также возможность сохранять ваши любимые звуки и ритмы в качестве пресетов.
  • синий Среда музыкальной композиции для Csound.
  • Процессор Bol BP2. Среда для создания музыки для Csound и MIDI.
  • Автоматизированный оркестр CSound. Автоматическое построение оркестра Csound из отдельных инструментов в формате csd, преобразование midi в CSound и запись в Csound в реальном времени (программа для Windows).
  • AlgoScore Среда алгоритмической композиции, в которой работает с графической партитурой для Csound и MIDI.
  • Cecilia (в версиях 1–4) производственный интерфейс для Csound. (Cecilia 5 перешла на pyo в качестве бэкэнда.)
  • Среда производства капусты для кроссплатформенных аудио плагинов на основе Csound.
  • Салат - интерфейс / редактор Windows для Csound5.
  • Csound-x для Emacs и Emacs интерфейс для Csound.

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

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

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

использованная литература

  1. ^ Доктор Ричард Буланже - Три десятилетия с Csound'ом: корни, рождение и ранние годы
  2. ^ [1]
  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 выйдет 17 октября вики". Синтопия.
  8. ^ С. Йи и В. Лаццарини. «Csound для Android» (PDF).
  9. ^ "Csound в вики OLPC". Получено 23 ноября 2010.

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

  • Ричард Чарльз Буланже, изд. (2000). Книга Csound: перспективы синтеза программного обеспечения, звукового дизайна, обработки сигналов и программирования. MIT Press. ISBN  978-0-262-52261-8.
  • Р. Бьянкини и А. Чиприани. (2000). Виртуальный звук. Синтез звука и обработка сигналов. Теория и практика с Csound. ConTempo s.a.s. ISBN  88-900261-1-1.CS1 maint: использует параметр авторов (ссылка на сайт)
  • Ричард Чарльз Буланже и Виктор Лаццарини, изд. (2011). Книга по звуковому программированию. MIT Press. ISBN  978-0-262-01446-5. Эта книга в основном посвящена программированию звука напрямую с использованием языка C, но в ней есть пара глав о программировании кодов операций Csound.
  • Джим Айкин (2013). Csound Power! Всеобъемлющее руководство. Cengage Learning. ISBN  1-4354-6005-7.

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