Введение
Язык программирования аудио MUSIC N относится к семейству компьютерных музыкальных программ и языков программирования, произошедших от или находящихся под влиянием MUSIC – программы, написанной Максом Мэтьюсом в 1957 году в Bell Labs. MUSIC была первой компьютерной программой для генерации цифровых звуковых волн посредством прямого синтеза. Она стала одной из первых программ для создания музыки (фактически, звука) на цифровом компьютере и, безусловно, первой программой, получившей широкое признание в музыкальном исследовательском сообществе как подходящая для этой задачи. Первая в мире музыка, сгенерированная компьютером, была создана в Австралии программистом Джеффом Хиллом на компьютере CSIRAC, разработанном и построенном Тревором Пирси и Мастоном Бердом. Однако CSIRAC производил звук, отправляя необработанные импульсы на динамик, и не генерировал стандартное цифровое аудио с использованием PCM-семплов, в отличие от программ серии MUSIC.
MUSIC N refers to a family of computer music programs and programming languages descended from or influenced by MUSIC, a program written by Max Mathews in 1957 at Bell Labs. MUSIC was the first computer program for generating digital audio waveforms through direct synthesis. It was one of the first programs for making music (in actuality, sound) on a digital computer, and was certainly the first program to gain wide acceptance in the music research community as viable for that task. The world's first computer controlled music was generated in Australia by programmer Geoff Hill on the CSIRAC computer which was designed and built by Trevor Pearcey and Maston Beard. However, CSIRAC produced sound by sending raw pulses to the speaker, it did not produce standard digital audio with PCM samples, like the MUSIC series of programs.
Дизайн
Все производные программы MUSIC N имеют (в большей или меньшей степени) общий дизайн, состоящий из библиотеки функций, построенных вокруг простых процедур обработки и синтеза сигналов (написанных как "опкоды" или генераторы элементарных единиц). Эти простые опкоды затем используются пользователем для создания инструмента (обычно через текстовый файл инструкций, но все чаще через графический интерфейс), который определяет звук, который затем "воспроизводится" вторым файлом (называемым партитурой), определяющим ноты, длительности, высоты, амплитуды и другие параметры, релевантные для музыкальной информатики композиции. Некоторые варианты языка объединяют инструмент и партитуру, хотя большинство по-прежнему различают функции управления (которые оперируют с музыкой) и функции, работающие с частотой дискретизации генерируемого аудио (которые оперируют со звуком). Примечательным исключением является ChucK, который объединяет синхронизацию аудио- и управляющих процессов в единую структуру, обеспечивая произвольно тонкое разрешение по времени и единый механизм управления обоими. Это дает преимущество в виде более гибкого и читаемого кода, но также имеет недостатки в виде снижения производительности системы. MUSIC N и производные программы в основном доступны как полные автономные программы, которые могут иметь различные типы пользовательских интерфейсов – от текстовых до графических. В этом отношении Csound и RTcmix с тех пор эволюционировали, чтобы эффективно функционировать как программные библиотеки, к которым можно получить доступ через различные интерфейсы и языки программирования, такие как C, C++, Java, Python, Tcl, Lua, Lisp, Scheme и другие, а также другие музыкальные системы, такие как Pure Data, Max/MSP и плагин-фреймворки LADSPA и VST. В MUSIC и его потомках реализован ряд весьма оригинальных (и до сих пор во многом неоспоримых) предположений о наилучшем способе создания звука на компьютере. Многие из разработок Мэтьюса (такие как использование предварительно вычисленных массивов для хранения формы волны и огибающей, использование планировщика, работающего в музыкальном времени, а не с частотой дискретизации) стали нормой для большинства современных аппаратных и программных систем синтеза и аудио-DSP.
Scheme, etc., as well as other music systems such as Pure Data, Max/MSP and plugin frameworks LADSPA and VST. A number of highly original (and to this day largely unchallenged) assumptions are implemented in MUSIC and its descendants about the best way to create sound on a computer. Many of Mathews' implementations (such as using pre calculated arrays for waveform and envelope storage, the use of a scheduler that runs in musical time rather than at audio rate) are the norm for most hardware and software synthesis and audio DSP systems today.