Csound

редактировать
Csound
Первоначальный выпуск1986; 34 года назад (1986)
Стабильный выпуск 6.15.0 / 13 августа 2020 г. (2020-08-13)
Репозиторий Измените это в Wikidata
Написано на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.

Contents
  • 1 Csound code
  • 2 Csound 5
  • 3 Csound 6
  • 4 Csound для живых выступлений
  • 5 Интерфейсы: среды разработки и музыкальные среды
  • 6 Один ноутбук на ребенка (OLPC)
  • 7 См. Также
  • 8 Ссылки
  • 9 Дополнительная литература
  • 10 Внешние ссылки
Csound-код

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

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

csound -W -d -o tone.wavsr = 96000; Частота дискретизации. крон = 9600; Скорость управляющего сигнала. ksmps = 10; Выборок на контрольный сигнал. nchnls = 1; Количество выходных каналов. instr 1 a1 oscil p4, p5, 1; Осциллятор: p4 и p5 - аргументы от счета, 1 - номер таблицы. out a1; Выход. endinf1 0 8192 10 1; Таблица, содержащая синусоидальную волну. Встроенный генератор 10 выдает сумму синусоид, здесь только одну. i1 0 1 20000 1000; Воспроизведите одну секунду одного кГц с амплитудой 20000. e

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

Csound 5

Версия 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 6 находится в разработке с момента обсуждения его функций на конференции Csound Conference, состоявшейся в 2011 году в Ганновере. Csound 6 был выпущен в июле 2013 года и теперь доступен на GitHub. Csound 6 также доступен для Android. Основные новые функции Csound 6 включают: синтаксический анализатор на основе

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

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

Csound для живых выступлений

В настоящее время в реальном времени могут быть сгенерированы только партитуры или ноты 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).

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

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

См. Также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки
Дополнительная литература
  • Ричард Чарльз Буланже, изд. (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.
Внешние ссылки
Последняя правка сделана 2021-05-16 10:35:27
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте