HimeraSearchDB
Carding_EbayThief
triada
CrackerTuch
JustinSun

НОВОСТИ Взять и влиться в музыкальное программирование — языки, которые помогут это сделать

BDFpromo
Оффлайн

BDFpromo

.
.
Регистрация
23.09.18
Сообщения
12.347
Реакции
176
Репутация
0
В одном из предыдущих материалов о ЯП Sporth, разработанном для проведения музыкальных live-сессий. Сегодня расскажем еще об одном инструменте для «музыкального программирования» — языке Csound. И поговорим о его аналогах — SuperCollider и Pure Data.


[SUP]Фото / Unsplash[/SUP]

Как появился Csound


Этот язык позволяет решать задачи обработки звуковых сигналов и является популярным инструментом « ». Под этим термином понимают процесс написания треков с помощью электронных устройств: секвенсоров, синтезаторов и ПО.

История Csound еще в середине прошлого века. Он является прямым наследником семейства языков , первую версию которого в 1957 году представил инженер Макс Мэтьюс (Max Mathews) из Bell Labs. MUSIC считается одним из первых решений для генерации цифровых звуковых волн. С его помощью были написаны композиции « » и « ». Обе работы инженеру-акустику и лингвисту Ньюману Гуттману (Newman Guttman), который был первым музыкальным программистом в истории.


Со временем возможности MUSIC расширялись: появлялись новые версии языка, а пользовательская база увеличивалась. В середине 80-х возможности системы привлекли специалиста из MIT Media Labs Барри Верко (Barry Vercoe). Используя наработки коллег из Bell Labs, он свой язык и назвал его Csound. Компилятор он написал на C и решил распространять все по лицензии GNU LGPL. Систему и расширяют модулями для обработки сигналов.

Особенности языка


Для генерации звука здесь специальные коды операций (opcodes). Эти коды нужны для определения инструментов в файле цифрового оркестра (orchestra). Например, чтобы включить в оркестр осциллятор, достаточно написать следующую команду:


a1 oscil 10000, 440, 1

Три аргумента — это амплитуда, частота и форма волны соответственно.

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

При желании файлы orchestra и score можно объединить в один специальными тегами. На wiki пример содержимого такого документа — он генерирует синусоиду длительностью в одну секунду с частотой 1 кГц.





csound -W -d -o tone.wav



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



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





Если вы хотите поближе познакомиться с этим языком, то, по резидентов Hacker News, сделать это довольно легко. Можно начать с подробной или обратиться к .

Кто использует


С Csound работает американский диджей (Brian Transeau), который писал музыку к «Need for Speed: Underground» и фильмам «Блэйд 2», «Форсаж». С помощью этого ЯП он трек « » с альбома «This Binary Universe».


Этот ЯП и шведский композитор Тобиас Энхус (Tobias Enhus), чьи работы можно услышать в фильме «Черный ястреб». С помощью этой системы он написал трек « ».

Язык также пригодился для реализации научных и исследовательских проектов. Специалисты из Норвежского университета естественных и технических наук разработали кастомные эффекты с целью новые методы написания музыки.

Альтернативные решения


Семейство ЯП MUSIC не только для Csound, но и других систем генерации звуков. Среди них можно выделить SuperCollider и Pure Data.

SuperCollider — это виртуальная среда для аудиосинтеза в реальном времени. В 1996 году её разработал Джеймс Маккартни (James McCartney) и . Со временем к проекту присоединилось еще несколько инженеров, которые поддерживают его до сих пор, — на GitHub у SuperCollider .

SuperCollider обладает широкими возможностями для самовыражения, поэтому его использует довольно большое количество . Например, американский музыкант Джереми ван Бускирк ( ) на SuperCollider написал « », а профессор музыкальной школы при Пенсильванском университете Марк Баллора (Mark Ballora) представил трек « ».

Считается, что на полное освоение SuperCollider уйдет много времени. Хотя с этой задачей определенно помогут официальные и .​

mn49olydqkcjab3ooozhsd3dwso.jpeg

[SUP]Фото / Unsplash[/SUP]

Что касается , то он представляет собой визуальный язык программирования для реализации интерактивных мультимедийных произведений. Это — открытый аналог утилиты . В его основе лежат потоки данных (dataflow), проходящие через объекты и соединения между ними. По этой причине программа на Pure Data называется патчем (patch) — по аналогии с модульными синтезаторами, где соединения выполнялись патч-кордами.

Примеры произведений, реализованных с помощью Pure Data, можно найти на YouTube. Например, работу Рино Петрочелло (Rino Petrozziello), которая называется « ». Больше примеров есть .


Материалы по теме из нашего «Мира Hi-Fi»:

1osf72wkwrjhzpl2bwl5hcmwnbq.png

1osf72wkwrjhzpl2bwl5hcmwnbq.png

1osf72wkwrjhzpl2bwl5hcmwnbq.png

1osf72wkwrjhzpl2bwl5hcmwnbq.png

1osf72wkwrjhzpl2bwl5hcmwnbq.png



Что у нас нового на Хабре:

 
Сверху Снизу