Из Википедии, бесплатной энциклопедии
  (Перенаправлено с CSound )
Перейти к навигации Перейти к поиску

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

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

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

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

Код Csound [ править ]

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

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

<CsoundSynthesizer>  <CsOptions> csound -W -d -o tone.wav </CsOptions>  <CsInstruments>  sr  =  96000  ; Частота дискретизации.  крон  =  9600  ; Скорость управляющего сигнала.  ksmps  =  10  ; Выборок на контрольный сигнал.  nchnls  =  1  ; Количество выходных каналов. instr  1  a 1  oscil  p4 ,  p5 ,  1  ; Осциллятор: p4 и p5 - аргументы от счета, 1 - номер таблицы.  из  более 1  ; Выход.  конец  </CsInstruments> <CsScore>  f 1  0  8192  10  1  ; Таблица, содержащая синусоидальную волну. Встроенный генератор 10 выдает сумму синусоид, здесь только одну.  i 1  0  1  20000  1000  ; Воспроизведите одну секунду одного кГц с амплитудой 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 . Для него было разработано множество интерфейсов . В дополнении к основному 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 . [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 упаковывает различные коды операций воболочки Max / MSP, подходящие для использования в Ableton Live . [6] [7] Csound также доступен для мобильных систем (iOS, Android). [8]

Интерфейсы: среды разработки и музыкальные среды [ править ]

Окно по умолчанию для 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.
  • Automated CSound Orchestra Автоматическое построение оркестра 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 Laptop . [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 Coming 17 октября вики" . Синтопия.
  8. ^ С. Йи и В. Лаццарини. «Csound для Android» (PDF) .
  9. ^ "Csound в вики OLPC" . Проверено 23 ноября 2010 года .

Дальнейшее чтение [ править ]

  • Ричард Чарльз Буланже, изд. (2000). Книга Csound: Перспективы синтеза программного обеспечения, звукового дизайна, обработки сигналов и программирования . MIT Press. ISBN 978-0-262-52261-8.
  • Р. Бьянкини и А. Чиприани. (2000). Виртуальный звук. Синтез звука и обработка сигналов. Теория и практика с Csound . ConTempo sas 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.

Внешние ссылки [ править ]

  • Официальный веб-сайт