Cзвук
![]() | Эта статья включает список общих ссылок , но в ней отсутствуют достаточные соответствующие встроенные цитаты . ( Ноябрь 2010 г. ) |
Первоначальный выпуск | 1986 год [1] |
---|---|
Стабильная версия | 6.18.1
/ 24 ноября 2022 г [2] |
Репозиторий | |
Написано в | С |
Операционная система | Кросс-платформенный |
Лицензия | LGPL-2.1 или более поздняя версия |
Веб-сайт | 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 обрабатывает инструкции в этих файлах и отображает аудиофайл или аудиопоток в реальном времени в качестве вывода.
Файлы оркестра и партитуры могут быть объединены в один структурированный файл с помощью тегов языка разметки (файл CSD с расширением имени файла .csd). Вот очень простой пример унифицированного файла данных Csound, который создает волновой файл , содержащий односекундный синусоидальный тон частотой 1 кГц с частотой дискретизации 96 кГц:
<CsoundSynthesizer>
<CsOptions>
csound -W -d -o tone.wav
</CsOptions>
<CsInstruments>
sr = 96000 ; Sample rate.
kr = 9600 ; Control signal rate.
ksmps = 10 ; Samples per control signal.
nchnls = 1 ; Number of output channels.
instr 1
a1 oscil p4, p5, 1 ; Oscillator: p4 and p5 are the arguments from the score, 1 is the table number.
out a1 ; Output.
endin
</CsInstruments>
<CsScore>
f1 0 8192 10 1 ; Table containing a sine wave. Built-in generator 10 produces a sum of sinusoids, here only one.
i1 0 1 20000 1000 ; Play one second of one kHz at amplitude 20000.
e
</CsScore>
</CsoundSynthesizer>
Как и во многих других языках программирования, написание длинных программ на Csound можно упростить, используя интегрированную среду для редактирования, предварительного просмотра, тестирования и отладки . Сейчас официально поддерживается CsoundQt, который имеет множество функций, таких как автоматическая вставка кода, встроенный браузер документации, встроенные виджеты для графического управления параметрами в реальном времени, а также кнопка для воспроизведения кода.
Csound 5 [ править ]
Версия 5.01 была выпущена 18 марта 2006 г., через 20 лет после первого выпуска csound. Csound 5 доступен в двоичном виде и исходном коде для Linux, Microsoft Windows и Mac OS X из проекта SourceForge Csound. [3] Оно значительно улучшено и расширено по сравнению с исходным программным обеспечением и фактически превращено в программную библиотеку с API . разнообразные интерфейсы Для него были разработаны . В дополнение к базовому API C есть также Python , Java , Lisp , Tcl и C++ , среди других привязок , например, одна из Haskell , которая позволяет управлять Csound из чисто функциональной среды.
Использование плагинов позволяет получить дополнительные возможности без изменений кода Csound, поскольку существует возможность записи пользовательских кодов операций как расширений исходного языка. LADSPA и DSSI Поддерживаются , но поддержка VST удалена.
Исполнение в реальном времени через MIDI было добавлено в 1990-х годах. Еще одним дополнением стала поддержка виджетов FLTK (компоненты графического интерфейса с ползунками, ручками и т. д.) для управления звуком в реальном времени, а также интеграция пользовательских графических интерфейсов, написанных на Python.
Звук 6 [ править ]
Csound 6 находится в разработке с тех пор, как его особенности были обсуждены на конференции Csound, состоявшейся в 2011 году в Ганновере. Csound 6 был выпущен в июле 2013 года и теперь доступен на GitHub . [4] Csound 6 также доступен для Android . Основные новые функции Csound 6 включают в себя:
- bison теперь является / flex Синтаксический анализатор языка Csound на основе стандартным. Он генерирует абстрактное синтаксическое дерево , доступное через Csound API. Затем дерево можно скомпилировать в среду выполнения Csound с использованием API. Таким образом, после компиляции дерева им можно манипулировать с помощью пользовательского кода перед его компиляцией в среду выполнения Csound. В качестве альтернативы пользователь может создать полное абстрактное синтаксическое дерево на другом языке, а затем скомпилировать это дерево в среду выполнения Csound.
- Появился новый встроенный тип многомерного массива. Массивы можно передавать в инструменты и коды операций. Арифметические операции могут выполняться непосредственно с массивами.
- Существует новая система типов, которая позволяет использовать определяемые пользователем типы в языке Csound.
- Оркестр можно пересобрать в любой момент, а отдельные инструменты можно собрать в любой момент во время звучания. Это обеспечивает настоящее «живое кодирование» в выступлениях Csound.
- API Csound был рационализирован и упрощен.
- Csound может использовать любое количество процессоров для одновременной обработки во время работы. Это происходит без каких-либо изменений в коде Csound. Это приводит к существенному ускорению большей части обработки Csound. Например, фрагмент, который рендерится за 100 секунд на одном ядре, должен рендериться примерно за 50 секунд на четырех ядрах.
- Csound может компилировать оркестры и партитуры непосредственно из текстовых строк, что позволяет использовать Csound в средах, где запись в файловую систему не разрешена.
- События партитуры, такие как примечания, можно запланировать с точным временем семплирования, даже если синтез обрабатывается блоками сэмплов.
- Все коды операций, возвращающие одно значение, могут использоваться как функции языка оркестра.
- Форматы файлов аудиоанализа могут быть независимыми от порядка байтов.
- Один оператор оценки может содержать несколько строковых параметров.
- Большинство кодов операций генератора будут использовать внутреннюю таблицу синусоидальных функций, если номер таблицы опущен.
- Параметры командной строки можно установить программно с помощью Csound API.
- Многочисленные повторяющиеся области кода в Csound были рационализированы.
- Было создано приложение для Android, которое предоставляет определяемые пользователем графические пользовательские интерфейсы и алгоритмическую композицию на основе JavaScript с использованием HTML5.
Разработку Csound 6 возглавляли Джон Фитч , Стивен Йи и Виктор Лаззарини .
Csound для живых выступлений [ править ]
В настоящее время в реальном времени могут генерироваться только партитуры или ноты Csound (в отличие от инструментов, которые можно определить только во время компиляции, при первом запуске csound; в Csound 6 это ограничение снято). Набор звуковых процессоров определяется и компилируется во время загрузки, но отдельные объекты обработки могут создаваться или уничтожаться в реальном времени, входной звук обрабатывается в реальном времени, а выходные данные также формируются в реальном времени. События нот могут запускаться на основе связи OSC внутри экземпляра инструмента, создаваться через MIDI или вводиться в стандартный ввод (путем ввода в терминал или отправки текстовых операторов из другой программы). Использование Csound 5 в качестве инструмента для живых выступлений можно дополнить разнообразным программным обеспечением сторонних производителей. Лист событий Live в 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]
См. также [ править ]
- Обработка аудиосигнала
- Программный синтезатор
- Компьютерная музыка
- Сравнение сред синтеза звука
- Список музыкального программного обеспечения
Ссылки [ править ]
- ^ Доктор Ричард Буланже - Три десятилетия с Csound: корни, рождение и ранние годы
- ^ «Релиз · csound/csound» . github.com . Проверено 11 февраля 2023 г.
- ^ «Csound | SourceForge.net» .
- ^ «Csound | GitHub.com» .
- ^ Йоахим Хайнц. «Csound как приложение реального времени» (PDF) . Институт новой музыки.
- ^ Питер Кирн (15 октября 2011 г.). «Csound For Live вики» . Создавайте цифровую музыку.
- ^ Synthhead (15 октября 2011 г.). «Csound For Live выйдет 17 октября, вики» . Синтотопия.
- ^ С. Йи и В. Лаццарини. «Csound для Android» (PDF) .
- ^ «Csound на вики OLPC» . Проверено 23 ноября 2010 г.
Дальнейшее чтение [ править ]
- Ричард Чарльз Буланже, изд. (2000). Книга Csound: перспективы синтеза программного обеспечения, звукового дизайна, обработки сигналов и программирования . МТИ Пресс. ISBN 978-0-262-52261-8 .
- Р. Бьянкини; Чиприани. (2000). Виртуальный звук. Синтез звука и обработка сигналов. Теория и практика с Csound . Соответствует темпу ISBN 88-900261-1-1 .
- Ричард Чарльз Буланже и Виктор Лаццарини, изд. (2011). Книга по аудиопрограммированию . МТИ Пресс. ISBN 978-0-262-01446-5 . В основном эта книга посвящена программированию звука непосредственно с использованием языка C, но в ней есть пара глав, посвященных программированию опкодов Csound.
- Джим Эйкин (2013). Cзвуковая сила! Комплексное руководство . Cengage Обучение. ISBN 1-4354-6005-7 .