Введение

Язык программирования аудио MUSIC N относится к семейству компьютерных музыкальных программ и языков программирования, произошедших от или находящихся под влиянием MUSIC – программы, написанной Максом Мэтьюсом в 1957 году в Bell Labs. MUSIC была первой компьютерной программой для генерации цифровых звуковых волн посредством прямого синтеза. Она стала одной из первых программ для создания музыки (фактически, звука) на цифровом компьютере и, безусловно, первой программой, получившей широкое признание в музыкальном исследовательском сообществе как подходящая для этой задачи. Первая в мире музыка, сгенерированная компьютером, была создана в Австралии программистом Джеффом Хиллом на компьютере CSIRAC, разработанном и построенном Тревором Пирси и Мастоном Бердом. Однако CSIRAC производил звук, отправляя необработанные импульсы на динамик, и не генерировал стандартное цифровое аудио с использованием PCM-семплов, в отличие от программ серии MUSIC.

Дизайн

Все производные программы MUSIC N имеют (в большей или меньшей степени) общий дизайн, состоящий из библиотеки функций, построенных вокруг простых процедур обработки и синтеза сигналов (написанных как "опкоды" или генераторы элементарных единиц). Эти простые опкоды затем используются пользователем для создания инструмента (обычно через текстовый файл инструкций, но все чаще через графический интерфейс), который определяет звук, который затем "воспроизводится" вторым файлом (называемым партитурой), определяющим ноты, длительности, высоты, амплитуды и другие параметры, релевантные для музыкальной информатики композиции. Некоторые варианты языка объединяют инструмент и партитуру, хотя большинство по-прежнему различают функции управления (которые оперируют с музыкой) и функции, работающие с частотой дискретизации генерируемого аудио (которые оперируют со звуком). Примечательным исключением является ChucK, который объединяет синхронизацию аудио- и управляющих процессов в единую структуру, обеспечивая произвольно тонкое разрешение по времени и единый механизм управления обоими. Это дает преимущество в виде более гибкого и читаемого кода, но также имеет недостатки в виде снижения производительности системы. MUSIC N и производные программы в основном доступны как полные автономные программы, которые могут иметь различные типы пользовательских интерфейсов – от текстовых до графических. В этом отношении Csound и RTcmix с тех пор эволюционировали, чтобы эффективно функционировать как программные библиотеки, к которым можно получить доступ через различные интерфейсы и языки программирования, такие как C, C++, Java, Python, Tcl, Lua, Lisp, Scheme и другие, а также другие музыкальные системы, такие как Pure Data, Max/MSP и плагин-фреймворки LADSPA и VST. В MUSIC и его потомках реализован ряд весьма оригинальных (и до сих пор во многом неоспоримых) предположений о наилучшем способе создания звука на компьютере. Многие из разработок Мэтьюса (такие как использование предварительно вычисленных массивов для хранения формы волны и огибающей, использование планировщика, работающего в музыкальном времени, а не с частотой дискретизации) стали нормой для большинства современных аппаратных и программных систем синтеза и аудио-DSP.