Что такое Интерфейс MIDI. MIDI. Назначение и специфика

Что такое MIDI.

Вначале о том, что такое MIDI. Большинство людей знакомы с этими четырьмя буквами как с "форматом файлов" для веселых мелодий к мобильным телефонам. MIDI расшифровывается как Musical Instrument Digital Interface. Это протокол, или способ обмена данными между устройствами (либо программами), поддерживающими этот протокол. Что за данные? Эти данные называются MIDI-сообщениями. Они содержат в себе ноты, а также дополнительные сведения о них - инструмент, громкость и другие.

Допустим, проигрыватель в мобилке считывает MIDI-файл и передает из него данные на простенький синтезатор, встроенный в мобильник. А синтезатор, получая эти MIDI-команды, выполняет их.

Есть несколько стандартов MIDI, и самый распространенный - это General MIDI (GM). Он определяет, кроме прочего, таблицу инструментов. Таблица эта ни что иное, как пронумерованный список из 128 названий инструментов. Например, под номером 1 идет акустическое пианино, под 69 - гобой, на номере 20 - церковный орган. По приведенной выше ссылке вы можете получить полный пронумерованный список инструментов.

Партии в MIDI распределены между 16 каналами. У вас есть 16 каналов, чтобы посылать в них ноты. Однако, это не ограничивает количество партий в песне. Канал номер 10 канал отведен для ударных. Все ноты, посылаемые на этот канал, будут воспроизведены виртуальной ударной установкой MIDI-синтезатора. При работе с виртуальными синтезаторами (а не встроенным в звуковую карту), каналы, как правило, не имеют значения, если только синтезатор не многоканальный. Например, у Edirol Orchestra - 16 каналов, на каждом по инструменту. И можно посылать партии на тот или иной канал.

"Железные" синтезаторы поддерживают GM, равно как и мобильные телефоны (в той или иной мере). Получается так - проигрыватель в мобилке просит встроенный синтезатор - сыграй-как мне инструментом номер такой-то такую-то ноту на такой-то громкости.

Для того, чтобы записать партии в MIDI, нужна программа, называемая секвенсером (sequencer). Есть много разных секвенсеров, о них я расскажу ниже, в разделе о DAW (программе звукозаписи и сведения). Применение "чистых" секвенсеров ограниченно, обычно их функциями обладают DAW, где и вы будете работать с MIDI. В секвенсере вы можете прописывать партию нотами, а можете квадратиками на особой сетке, именуемой пианороллом (pianoroll). В некоторых DAW/секвенсерах нет нотного стана, а есть только пианоролл. Секвенсер также позволяет записывать MIDI-ноты (и другие команды), играемые с MIDI-клавиатуры или синтезатора, подключенного через MIDI-вход.

Секвенсер умеет воспроизводить MIDI-партии как через синтезатор, встроенный в звуковую карту, так и на виртуальных инструментах, подключенных к секвенсеру. Эти инструменты обычно являются плагинами формата VSTi. В сети есть бесплатные такие плагины, а есть и большие коммерческие пакеты. Об этом поведаю в свое время. Таким образом, при работе с MIDI у вас всегда под рукой целый оркестр из 128 стандартных инструментов (из "прошивки" синтезатора звуковой карты) и неограниченного количества дополнительных. И конечно же, вы можете создавать песни, где используются как MIDI, так и "живые" партии.

Отдельный разговор - качество звучания MIDI-партий. Всё зависит от того, на какой программный или железный синтезатор посылаются MIDI-сообщения. В старых звуковухах и мобилках были синтезаторы на основе FM (частотно-модуляционного) синтеза, который плох в попытках воспроизвести естественные инструменты, поэтому MIDI-файлы звучали в основном как набор писков. Сам по себе FM-синтез может давать удивительные красивые тембры, но звуковые карты с FM-синтезаторами звучали немногим лучше музыки с игровых консолей вроде NES - у нас более известен её клон "Денди". Там тоже, кстати, FM-синтезатор. Есть еще синтез на основе волновых таблиц (wavetable). Вместо попыток синтезировать тембр инструмента, воспроизводится его сэмпл. Существуют и другие виды синтеза, о которых я, вероятно, расскажу в новых редакциях книги.

Перейдем теперь к "железным" синтезаторам и MIDI-клавиатурам. Железный синтезатор нужен, чтобы ходить с ним на репетицию или играть на концерте, где нельзя использовать компьютер с секвенсером (конечно, если у вас есть такой ноутбук "на вынос"). В синтезаторе все звуки вшиты в сам синтезатор - он автономен, но ограничен в наборе инструментов. Да, в дорогие модели вы можете засовывать дополнительные инструменты, но эти "дорогие модели" стоят во много раз больше, чем навороченный компьютер. А дешевый синтезатор стоит до 100 долларов. Пригоден для квартирников.

MIDI-клавиатура - это фортепианная, "синтезаторная" клавиатура, подключаемая к компьютеру. Грубо говоря, это синтезатор без начинки. MIDI-клава просто посылает сообщения на программу-секвенсер, запущенную на компьютере. А уж секвенсер передает эти сообщения синтезатору звуковой карты или виртуальному инструменту. Кстати, и "железный" синтезатор можно использовать в качестве MIDI-клавы, если у такого синта есть MIDI-выход. MIDI-клавиатуры стОят начиная от ста с чем-то баксов.

Если вы соединили MIDI-клаву или синтезатор с секвенсером через MIDI-порты (либо USB), то секвенсер будет получать от клавиатуры играемую вами партию в виде нот, которые потом можно будет свободно понотно редактировать в секвенсере. Если вы сфальшивите - ничего страшного, исправите позже. Однако, если вы хотите сыграть партию тембрами вашего "железного" синтезатора, то его придется соединить с компьютеров уже через аналоговый вход, и запись будет сделана в формате цифрового звука, в WAV - то есть уже не ноты, и вы сможете разве что наложить какие-то эффекты, а не исправить мелодию в случае фальши.

Для домашней записи больше подходит MIDI-клавиатура, чем полновесный синтезатор. В последнем вы быстро наиграетесь со вшитыми звуками и всё равно будете использовать его как MIDI-клаву, играя виртуальными инструментами. Так стоит ли тратить деньги? С другой стороны, если вы выступаете где-то на концерте и хотите играть на клавишах, то понадобится либо "железный" синт, либо ноутбук с той же MIDI-клавой, что по цене, однако, дешевле мощного "железного" синтезатора. Я говорю о мощном.

Хотя в этой книге речь идет о любительской звукозаписи, однако давайте посмотрим на современный и, что называется - профессиональный - синтезатор KORG Oasis ценой около 8500 долларов. Что там внутри? Процессор Pentium 4 на 2.8 гигагерца, винчестер на 40 гигабайтов да 1 гигабайт оперативки, плюс сенсорный дисплей на 10.4 дюйма, ну и фортепианная клавиатура с разными дополнительными регуляторами. Всё это работает под управлением системы Linux. Конечно, есть еще звуковое сердце - сам собственно музыкальный синтезатор, основанный на уйме методов синтеза и сэмплинга. Эта звуковая начинка придет синтезатору своё, особое звучание.

А в случае использования MIDI-клавы вы вольны выбирать "начинку", используя виртуальные, программные синтезаторы, которые парой щелчков мыши подключаются к программе звукозаписи. О таких виртуальных синтезаторах речь пойдет немного позже. Выбираете нужный программный синт и играете на нем с MIDI-клавы.

MIDI-клава втыкается через кабель в MIDI-порт звуковухи или по USB. В последнем случае питание поступает тоже по USB. Синтезатор подключается через MIDI-порт - на которых звуковых картах он есть, на некоторых (встроенных) иногда отсутствует. Продаются еще кабели-переходники с MIDI на USB.

Большинство MIDI-клавиатур продаются только с USB-кабелем, без MIDI-кабеля и блока питания. Для подключения MIDI-клавы по USB нужен драйвер, прилагаемый на диске в коробке с клавиатурой. В Windows с этим трудностей нет, а под Linux такие дрова есть не ко всем клавам - спасибо производителям клавиатур за заботу! Для работы MIDI-клавы под Linux вам скорее всего понадобится блок питания и MIDI-кабель.


Такие же гнезда есть и на MIDI-переходниках звуковых плат, и на различных приборах обработки звука, и даже на цифровых микшерах и многоканальных магнитофонах. И если вы соедините все свое оборудование при помощи этого интерфейса, то сможете заставить его работать в единой системе: с одного синтезатора можно будет обращаться к звукам другого, цифровые магнитофоны будут запускаться при нажатии кнопки в компьютерной программе и т.д. То есть MIDI интерфейс – это единый стандарт передачи управляющей информации между цифровыми музыкальными инструментами и другим студийным оборудованием.

Два MIDI устройства обмениваются между собой именно управляющей информацией, например, командами вызова нужного звука из памяти, командами его воспроизведения с нужной высотой и длительностью и т.д. То есть никакой физической передачи звуков по этому интерфейсу не происходит

До 1982 года, когда была принята спецификация MIDI, синтезаторы разных производителей имели разные архитектуры и системы управления. Это было очень неудобно для музыкантов - ведь при покупке каждого нового инструмента приходилось "с нуля" изучать принципы его работы. Кроме того, секвенсеры одних производителей не могли работать с синтезаторами других – в результате для каждого синтезатора приходилось покупать отдельный секвенсер. Поэтому-то и возникла идея стандартизировать синтезаторы и другое сопутствующее оборудование и принять единую систему обмена данными между ними. В результате и появился Music Instruments Digital Interface - цифровой интерфейс музыкальных инструментов. А через некоторое время им стали оборудовать подавляющее большинство студийных устройств.

Благодаря MIDI интерфейсу, во-первых, все цифровые синтезаторы теперь имеют очень похожие системы управления, и если музыкант или звукорежиссер знает основные принципы работы MIDI, то без труда может разобраться с любым из них. Во-вторых, музыкальные инструменты разных фирм могут работать вместе и, например, с Roland"а можно получить доступ ко всем ресурсам Korg"а и даже играть "зашитыми" в него звуками. В третьих, секвенсер может управлять не только подключенными синтезаторами, но и любыми другими устройствами, имеющими MIDI-входы и выходы. Например, под управлением секвенсера процессор эффектов в нужный момент аранжировки может менять свои настройки, а цифровой микшер включать и отключать каналы, а также выставлять заранее запрограммированный уровень дорожек или автоматически плавно убирать громкость в конце композиции.

Как работает MIDI интерфейс?

"Артериями" любой MIDI-системы являются 16 информационных MIDI каналов, по которым передаются MIDI-сообщения - сигналы, несущие информацию о состоянии органов управления звуковым устройством (например, синтезатором). MIDI-сообщениями могут быть ноты, команды о смене звука, информация о положении колеса изменения высоты тона и т.д. На рисунке слева изображена

Схема Sample Playback синтезатора, который тоже является такой системой, так как в его корпусе размещены минимум два совершенно независимо работающих устройства - клавиатура и звуковой модуль. Доступ к памяти синтезатора, где хранятся оцифрованные семплы (образцы звучания), осуществляется по уже упомянутым 16 MIDI-каналам. В начале работы музыкант указывает при помощи кнопок управления какой канал с каким звуком будет работать. На рисунке первому каналу присвоено фортепиано, пятому - орган, десятому - ударные и пятнадцатому - бас. Причем эти связи устанавливаются совершенно произвольно по желанию музыканта: на любой канал может быть присвоен любой звук, находящийся в памяти.

Клавиатура синтезатора одновременно может работать только с одним MIDI-каналом (если только не включена специальная функция разделения, разбивающая клавиатуру на две или более частей, каждая из которых может обращаться к отдельному каналу). Поэтому, музыкант указывает номер канала с присвоенным звуком, которым он хочет играть (на рисунке - первый канал с установленным звуком фортепиано). Обычно это делается прямо на верхней панели синтезатора при помощи кнопок переключения канала. По умолчанию клавиатура работает с тем каналом, который указан на дисплее синтезатора. После настроек он может начинать исполнение композиции. Во время игры MIDI-клавиатура производит сообщения об условных номерах нот и о скорости нажатия клавиш, которые передаются по выбранному каналу в звуковой модуль. А он, в свою очередь, изменяет высоту и громкость выбранного звука согласно полученным MIDI-сообщениям. Результат этой работы мы с вами слышим из акустических систем.

Теперь давайте разберемся со связкой синтезатор-секвенсер. Второй рисунок изображает схему работы синтезатора, соединенного с компьютерным секвенсером. И у синтезатора, и у компьютера, в

Котором установлена звуковая плата или плата MIDI-интерфейса есть MIDI-входы и выходы. Они соединяются между собой специальными шнурами с пятиштырьковыми разъемами. По этим шнурам передаются MIDI-сообщения, рассортированные по независимым 16 каналам. Это не означает, что в шнурах используются целых 16 жил. Они обычные - трехжильные (по двум идет сигнал, а один используется для заземления), просто перед передачей сообщений по физическим проводам, вся информация кодируется особым образом, а при приеме происходит обратный процесс - раскодирование.

Итак, музыкант исполняет на клавиатуре какое-то произведение. MIDI-сообщения поступают в звуковой модуль, например, по первому каналу, и мы слышим в колонках звук. Но эти сообщения поступают по тому же первому каналу и на MIDI-выход синтезатора, а дальше - в секвенсер (см. рис.). А в секвенсере есть точно такие же параллельные дорожки, как и в многоканальных магнитофонах, только они располагаются не на магнитной ленте, а в оперативной памяти секвенсера (или компьютера, если секвенсер - это программа). Каждая дорожка должна соответствовать одному из MIDI-каналов. При записи на нее фиксируются все MIDI-сообщения, которые приходят через вход секвенсера по выбранному каналу. А при воспроизведении с нее начинают считываться все записанные данные и передаваться по тому же самому каналу, только уже через выход.

На нашем рисунке для упрощения схемы не показано, что синтезатор передает MIDI-сообщения по нескольким каналам. Но если музыкант переключается на второй канал и начинает играть другим звуком, то на MIDI-выход начинают поступать сообщения именно по второму каналу, и если в секвенсере вторая дорожка включена на запись данных с этого же канала, то все, что играется на клавиатуре, будет записано.

В целом, процедура работы с секвенсером будет выглядеть следующим образом. Музыкант на синтезаторе присваивает первому каналу звук фортепиано, а в секвенсере включает запись первой дорожки, которая предварительно тоже настраивается на первый канал. После этой операции он играет на клавиатуре партию фортепиано будущей композиции, которая записывается на первую дорожку. По окончании записи, в секвенсере включается воспроизведение, и записанные MIDI-сообщения передаются по первому каналу на его MIDI-выход, а оттуда - на MIDI-вход синтезатора. Со входа они попадают в звуковой модуль, который и проигрывает запись звуком фортепиано.

После записи первой дорожки, музыкант включает в секвенсере запись второй дорожки, присвоив ей второй MIDI-канал. На синтезаторе он выбирает звук баса и тоже присваивает его второму каналу. Теперь он снимает секвенсер с паузы и слышит партию фортепиано - ведь каналы совершенно независимы друг от друга. Под фортепиано он играет партию баса, которая записывается в секвенсер на вторую дорожку. Теперь, если он запустит воспроизведение, то услышит и фортепиано, и бас вместе. Точно таким же образом записываются партии всех остальных инструментов.

Если же вы подключите к MIDI-выходу секвенсера любое студийное устройство (например, процессор эффектов), и запишите на одну из дорожек специальные сообщения, которые это устройство "понимает", то в выбранный момент композиции оно выполнит нужные вам действия. Кстати, очень многие синтезаторы, в том числе и установленные на звуковые карты, имеют собственные процессоры эффектов, управление которыми можно осуществлять при помощи секвенсера. В нужный момент композиции процессор получит от секвенсера MIDI-сообщение и включит соответствующий эффект.
MIDI сообщения и события

MIDI сообщения – это управляющие сигналы, которые передаются по MIDI интерфейсу. Например, при нажатии клавиши на динамической MIDI-клавиатуре производятся три сообщения, которые описывают исполнение ноты: Pitch (высота ноты), Velocity (скорость нажатия клавиши) и Duration (длительность). Эти сообщения могут передаваться по одному из каналов в звуковой модуль, а могут направляться и в секвенсер, который запишет их в определенное место композиции. Такая группа сообщений, привязанная к одному из моментов времени композиции и каналу называется Event (Событие). То есть, каждая нота композиции, записанная секвенсером - это событие.

Надо четко понимать разницу между сообщением и событием. Устройства в MIDI-системе обмениваются сообщениями, но как только эти сообщения записываются в секвенсер, они получают два дополнительных параметра - время воспроизведения и номер канала - и становятся событиями.

Второй по важности после MIDI нот вид сообщений - это Controllers (контроллеры). Они управляют различными параметрами синтезаторов типа громкости или панорамы выбранного канала. Кстати, не путайте эти MIDI-сообщения и ручки управления автономным синтезатором, которые тоже иногда называются контроллерами.

Стандарт MIDI предусматривает наличие 127 контроллеров, каждый из которых может принимать значения от 0 до 127. Но реально из них используется не более 20. Самые главные из них - это Volume (громкость), Pan (панорама) и Modulation(модуляция). Они управляют параметрами воспроизведения нот по каждому из каналов. То есть, записав в секвенсер на первый канал контроллер Volume, имеющий значение 127, а на второй - значение 64, вы получите разницу в громкости этих каналов в два раза.

И, наконец, третий важный тип MIDI сообщений – это SysEx, или «системные эксклюзивные сообщения». Как и контроллеры, они предназначены для управления различными параметрами синтезаторов, или другого студийного оборудования. Однако SysEx «персонифицированы», то есть они работают только в пределах одного конкретного устройства. Их существование необходимо из-за того, что 127 контроллеров просто не хватает для управления всеми параметрами современных синтезаторов. Поэтому чаще всего контроллеры используются в стандартных ситуациях («порулить» громкость и панораму на канале, выставить уровень посыла на эффекты, изменить частоту среза и резонанс фильтра и т.д.). А вот для управления процессорами эффектов, «глубинными» параметрами синтеза или операциями по обслуживанию инструмента («сбрасывание» отредактированных звуков в компьютер, например) применяются SysEx.

MIDI-синхронизация

В студиях очень часто бывает необходимо обеспечить синхронную работу двух или нескольких устройств: секвенсера и многоканального магнитофона, двух магнитофонов одновременно и т.д. Раньше, в эпоху аналоговых магнитофонов, чаще всего использовалась SMPTE синхронизация, однако сейчас большинство студийных устройств синхронизируются по MIDI.

Делается это так. Например, у вас есть секвенсер и многоканальный магнитофон. Любой секвенсер должен равномерно "проматывать" виртуальную ленту (по аналогии с магнитофоном), на которую записываются MIDI-сообщения. Для этого во всех секвенсерах есть генератор временного кода, который производит MIDI-сообщение под названием MIDI Clock. При помощи этого временного кода и осуществляется точное управление "лентопротяжным механизмом" секвенсера, а также синхронизация со внешними устройствами. Группа MIDI-сообщений, которые используются для синхронизации называются MIDI Time Code ((MTC).

Во многих современных цифровых магнитофонах есть точно такой же генератор временного кода, который используется для точного управления механикой. Если синхронизировать генератор секвенсера и генератор магнитофона, то скорость воспроизведения MIDI-сообщений будет точно соответствовать скорости движения ленты (см. рис.).

А для того, чтобы магнитофон включался одновременно с секвенсером и вместе с ним выполнял все остальные действия (перемотка, остановка, запись) используют целую группу MIDI-сообщений, которые называются MIDI Machine Control(MMC). В секвенсерах, которые поддерживают MMC, нажатие любой кнопки управления производит соответствующее MIDI-сообщение, которое немедленно передается в магнитофон. А ему остается только выполнить команду.

Системные эксклюзивные сообщения

Как уже говорилось в разделе «MIDI сообщения и события», системные эксклюзивные сообщения (SysEx) – это управляющие команды, которые, в отличие от контроллеров действуют только в пределах одного синтезатора или другого Студийного MIDI устройства. Например, контроллер Volume меняет громкость выбранного канала любого синтезатора, а вот SysEx сообщение, управляющее уровнем искажений эффекта Distortion, и предназначенное для использования с синтезатором Roland XP 30 не произведет ни малейшего «впечатления» на синтезатор Quasimidi Sirius, у которого также есть дисторшн. Но несмотря на узкую специализацию каждого такого сообщения, «язык» на котором они написаны абсолютно универсален, и зная его основы можно очень быстро подобрать «ключи» к любому инструменту и студийному устройству и заставить его делать именно то, что нужно.

Любое системное эксклюзивное сообщение представляет собой

последовательность шестнадцатеричных цифр (см. рис.), которую вы можете составить в любом редакторе SysEx (эти редакторы есть в большинстве развитых секвенсеров). Каждая цифра этого сообщения несет определенную информацию, и все искусство программирования SysEx заключается в том, чтобы поставить нужную цифру в нужное место. А помогает в этом раздел руководства пользователя устройства под названием MIDI Implementation – в нем фирма-производитель разъясняет пользователям принципы построения SysEx сообщений для каждой конкретной модели.

Итак, SysEx сообщения имеют обязательную и произвольную части. Вы должны обязательно начать сообщение с символа F0 и закончить символом F7 – это команды, заставляющие любой синтезатор или другое студийное устройство начать и закончить прием системной информации. Следом за символом F0 следуют еще три символа, которые несут информацию об идентификационном номере производителя, идентификационном номере устройства в MIDI системе и идентификационном номере модели устройства – они будут одинаковыми у любых сообщений для конкретного устройства. Например, для синтезатора Roland XP 30 обязательная часть SysEx будет выглядеть так: F0 41 11 6A ……………..F7, где 41 – это код фирмы Roland, 11 – идентификационный номер синтезатора (он выставляется в системном меню инструмента) и 6A – это код модели XP-30. Конкретные идентификационные номера для других синтезаторов нужно смотреть в MIDI Implementation их руководств.

Следом первыми четырьмя цифрами обязательной части SysEx идет часть произвольная. Ее конкретное наполнение зависит от того, чего вы хотите. Но она всегда начинается с номера команды и заканчивается значением контрольной суммы. Номер команды и ее формат нужно опять-таки смотреть в MIDI Implementation, а контрольная сумма вычисляется путем сложения всех цифр, составляющих команду (за исключением ее номера) и вычитанием получившегося значения из 128. И после контрольной суммы идет символ окончания SysEx – F7.
Давайте разберем конкретный пример. Предположим, нам до зарезу понадобилось вставить в аранжировку команду, которая меняет тип реверберации у синтезатора Roland XP30 с холла на дилэй. Прежде чем приступать к написанию, открываем редактор SysEx секвенсера, пишем заветный символ F0 (начало Sys Ex) и вооружаемся руководством пользователя синтезатора. Первым делом нам нужно выяснить, что писать в постоянной части. Добираемся в MIDI Implementation руководства пользователя до раздела Data Transmission (Передача данных) и смотрим раздел System Exclusive Messages. В этом разделе находится шаблон SysEx для передачи данных в синтезатор. Выясняется, что код Roland – 41, а код XP 30 – 6A. В системном же меню самого синтезатора смотрим deviceID – у меня он оказался равным цифре 17. Но это в десятичной системе, а в шестнадцатеричной он будет выражаться цифрой 10 (см таблицу перевода десятичных значений в шестнадцатеричные). Таким образом, можно продолжать SysEx (цифры вводятся через один пробел): F0 41 10 6A...

Итак, смотрим шаблон SysEx дальше. Идентификационный номер команды для нашего случая – 12. Кстати говоря, во многих руководствах шестнадцатиричные числа пишутся с обязательным прибавлением буквы H в конце (от Hexadecimal). В шаблоне SysEx руководства XP30 они даются именно в таком виде, например, номер команды приводится как 12H. Но в редакторе SysEx секвенсера букву H писать не надо – он и так знает, что речь идет о шестнадцатиричных числах. Таким образом, продолжаем сообщение: F0 41 10 6A 12…

Далее в шаблоне идут четыре цифры, сообщающие синтезатору адрес, по которому следует передавать команду. Они обозначаются как aa, bb, cc и dd. Их значение нужно смотреть в таблицах под названием Parameter Address Map. Поковырявшись некоторое время с таблицами выясняем, что адрес для смены типа ревербератора пишется так: 01 00 00 28. Наконец, мы добрались и до самой команды, которая пишется как 06 – это становится очевидным из колонки Data (Value) таблицы Parameter Address Map. Продолжаем наш SysEx: F0 41 10 6A 12 01 00 00 28 06…

Теперь осталось посчитать контрольную сумму. Для этого нам сначала нужно сложить цифры адреса и значения команды: 01 + 00 + 00 + 28 + 06… Но цифры-то записаны в шестнадцатеричной системе счисления. Чтобы успешно завершить арифметическую операцию нужно перевести их в десятичный вид: 1 + 0 + 0 + 40 + 6 = 47. Теперь вычитаем 47 из 128 и получаем число 81, которое в шестнадцатеричной системе будет писаться как 51. Все, теперь наше SysEx сообщение приобретает законченный вид: F0 41 10 6A 12 01 00 00 28 06 51 F7. Остается его сохранить в отдельный файл и вставить последний в нужное место аранжировки.

Организация памяти и форматы банков синтезаторов

В постоянной памяти Sample Playback синтезаторов записаны семплы - образцы звучания различных музыкальных инструментов. MIDI-сообщения вызывают из памяти тот или иной семпл, и синтезатор воспроизводит нужный звук. Но в памяти семплы не просто "свалены кучей", а организованы в определенные иерархические структуры. И чтобы нормально работать с любыми синтезаторами и семплерами, в том числе и мультимедийными, надо разобраться со способами хранения семплов и соответствующими стандартами.

Если не очень вдаваться в подробности, то можно подумать, что семплы для записи в память синтезатора или семплера создаются очень просто: берется "живой" инструмент, оцифровывается какая-то сыгранная на нем нота и получившийся файл записывается в память. Такое представление почти правильно. Но размер памяти не безграничен. Поэтому, как правило, берется маленький участок файла с записью "живого" инструмента, закольцовывается и присваивается определенной MIDI-ноте.

Но при формировании того или иного звука синтезатора есть еще одна тонкость. Для того, чтобы семпл звучал выше или ниже (для воспроизведения других MIDI-нот) используется алгоритм изменения высоты тона, в основе которого лежит изменение частоты дискретизации семпла. Вы наверняка знаете эффект "голоса Буратино", который получается, если увеличить скорость воспроизведения магнитофонной ленты. В синтезаторах и семплерах все происходит примерно также, только лентопротяжный механизм заменяется специальным алгоритмом. Но при сильном изменении частоты дискретизации теряется натуральность звучания. Поэтому для создания одного звука синтезатора применяется несколько закольцованных семплов, каждый из которых охватывает свой диапазон. То есть оцифровывается, например, исполнение на музыкальном инструменте ноты "До" каждой октавы, и фрагменты этих семплов присваиваются соответствующим MIDI-нотам. В результате сохраняется натуральность звучания, и экономится память.

Для обозначения совокупности семплов и управляющей информации синтезатора обычно используется термин "пэтч" (некоторые производители используют другую терминологию) - с английского это слово переводится как "соединение". Пэтчи составляются в более высокие структуры, которые называются программами или инструментами (см. рис. ниже). При этом каждый пэтч может занимать только часть звукового диапазона, а может и пересекаться с другими - при этом звуки разных пэтчей накладываются друг на друга. Если вы, например, хотите поиграть на синтезаторе звуком фортепиано, то вы вызываете из памяти именно программу, состоящую из нескольких пэтчей. При нажатии любой клавиши MIDI-клавиатуры, в синтезаторе происходит не просто воспроизведение соответствующего семпла с нужной высотой, а более сложный процесс, который включает исполнение еще ряда команд.

Программы или инструменты синтезатора составляются в банки. В одном синтезаторе может быть как один, так и несколько банков. Количество программ в банке никогда не превышает 128 (так просто сложилось исторически - не ищите в этом числе скрытый смысл), а количество самих банков зависит от стандарта, который поддерживает синтезатор или звуковая карта.

Если вы видели автономные sample playback синтезаторы, то наверняка обращали внимание, что на них почти всегда есть надписи типа General MIDI или аббревиатуры GS или XG. Эти обозначения часто пишутся и в спецификациях звуковых карт. Они указывают, какому стандарту соответствует синтезатор.

Аббревиатура GM или надпись General MIDI означает, что в памяти синтезатора находится как минимум один банк (может быть и больше), из 128 программ плюс один банк ударных инструментов, состоящий из 44 пэтчей барабанов различного звучания, причем
каждой MIDI-ноте присвоен свой барабан (банков ударных и пэтчей в этих банках может быть и больше). Все программы (как основные, так и пэтчи ударных) имеют раз и навсегда установленный номер, под которым их можно разыскать в памяти. Это означает, что в GM-совместимых синтезаторах программа, имитирующая рояль всегда скрывается под номером 1, а под номером 53 - имитатор хора. Такой стандарт введен для того, чтобы без проблем воспроизводить музыку, записанную в любом секвенсере при помощи разных синтезаторов с предсказуемым результатом. Есть и специальный формат файла, который называется "стандартным MIDI-файлом" и обеспечивает воспроизведение музыки на любом синтезаторе или звуковой карте.

GM-синтезатор имеет как минимум 16 MIDI-каналов. Каждый из каналов может быть использован для записи или воспроизведения одной программы или одной ударной установки. Обычно в спецификациях звуковых карт или автономных синтезаторов на этот счет пишется так: "Синтезатор имеет 16-частную мультитембральность".
любых синтезаторов есть еще одно ограничение - вы не можете одновременно воспроизвести больше определенного количества нот, причем неважно, одним инструментом играются эти ноты или несколькими. Это количество называется полифонией, и для стандарта GM оно определено минимум в 24 ноты (может быть и 28, и 32 - GM это не запрещает). Это означает, что если вы задумали сыграть на клавиатуре аккорд из 25 нот, позвав для этого своих друзей, то у вас ничего не получится. Девять нот из взятого аккорда звучать не будут. Девять - это из-за того, что 8 нот резервируются под барабаны и лишь 16 остаются на все остальные программы. В спецификациях некоторых синтезаторов для описания полифонии может применяться и следующая формулировка: "Синтезатор имеет 24 голоса".

Существует очень распространенное заблуждение: будто все GM синтезаторы звучат одинаково - ведь инструменты у них одни и те же. Это совершенно не верно. Рояль из GM-совместимой карты Cuncun FX производства Turtle Beach звучит совершенно не так как рояль с GM-совместимого синтезатора Korg N5. Конечно, оба они - рояли, но вот тембр у этих роялей совершенно разный. Стандарт General MIDI описывает только общий характер инструмента, который должен храниться в памяти под тем или иным номером. Но конкретное качество семплов, "раскладка" колец по клавиатуре и многие другие параметры программы остаются на совести производителя.

И еще одно важное замечание. Очень многие производители синтезаторов указывают в спецификациях своих изделий, что они совместимы со стандартом General MIDI. Но при этом реальное количество программ и банков гораздо больше, чем предусматривает стандарт. Такое употребление значка показывает, что в синтезаторе обязательно есть General MIDI банк и стандартные MIDI файлы будут проигрываться без проблем. Остальные банки организованы особенным образом и композиции, записанные с их использованием, будут корректно воспроизводиться только на тех же самых устройствах.

Теперь об аббревиатурах GS и XG. Стандарт GS введен японской фирмой Roland. Первоначально этот стандарт назывался GSS и расшифровывался как General Synthesizer System. Позже от трех букв остались только две и они расшифровываются чаще всего как General Synthesizer - Основной Синтезатор. GS - это расширение стандарта GM в сторону увеличения количества банков, а соответственно, и количества инструментов, хранящихся в памяти. Причем GS-устройства полностью совместимы с GM, т.е. стандартные MIDI-файлы всегда проигрываются без проблем. Наращивание количества программ происходит в виде добавления вариаций основного банка. Это означает, что в GS-синтезаторе по прежнему будет инструмент номер 90 из набора GM под названием Warm pad, но у него будет пара вариаций 90/1 и 90/2, которые могут быть и совершенно не похожи на основной звук и будут размещены в других банках. При воспроизведении стандартного MIDI-файла банки с вариациями не будут доступны, если в файл не записать специальные MIDI-сообщения. Обычно GS синтезаторы имеют в постоянной памяти 200-400 программ и 6-9 ударных установок (хотя их может быть и больше).

Есть еще одно важное отличие GS от GM - это обязательное присутствие в синтезаторах, поддерживающих Roland"овский стандарт, отдельного процессора эффектов, который может обрабатывать инструменты двумя эффектами одновременно. Обычно это реверберация и хорус. Уровень эффекта регулируется индивидуально у каждого инструмента, но эффекты - общие для всех 16 MIDI-каналов. То есть, если вы обрабатываете на первом канале фортепиано холл-реверберацией, то на всех остальных каналах нельзя установить другой тип эффекта. Можно только поменять уровень "холла".

XG - это стандарт фирмы Yamaha, который появился относительно недавно. Он представляет собой дальнейшее расширение GM и GS в сторону увеличения количества банков и инструментов в памяти и количества эффектов. Расшифровывается эта аббревиатура как eXtended General MIDI - Расширенный General MIDI, и он тоже полностью совместим с GM. Таблица звуков организована точно так же, как и в стандарте GS, т.е. увеличение количества программ происходит при помощи увеличения количества банков с вариациями. Обычно в памяти XG-синтезаторов находится более 400 инструментов. Одновременно можно использовать три эффекта из имеющихся 64, причем 2 могут работать как в GS, сразу со всеми воспроизводимыми инструментами на 16 MIDI-каналах, а еще один можно присваивать любой из программ индивидуально. Выбор последнего эффекта очень богат - как минимум 42 возможных варианта. Кроме этого, в соответствии со спецификацией XG, любым из эффектов можно обрабатывать и внешние источники звука, подключенные к линейному входу. И GS и XG имеют не менее 32 голосов полифонии (чаще - 64) и 16-частную мультитембральность.

Я уверен, что многие из тех, кто пользуется компьютером в качестве музыкального инструмента, обладают миди-клавиатурами, либо миди-контроллерами. Это действительно удобно! Причем, даже если вы не выступаете вживую, то крутить ручки или, к примеру, сыграть партию «вживую» гораздо интересней и эффективней, чем писать ее в секвенсоре. Впрочем, эти устройства - дополнительная статья расходов, что не всегда по карману непрофессиональным музыкантам. Но, к счастью, разработчики софта улучшают и улучшают его. И на данный момент любой обладатель Android-устройства может превратить его в миди-контроллер. Как сделать это в конкретных программах и будет данная статья.

Что мы имеем на данный момент

Итак, я предполагаю, что Вы - счастливый обладатель андроид-устройства и, естественно, компьютера на базе windows. Рассматривать iMac и совместимые устройства я, к сожалению, не имею возможности, но уверен, там все происходит подобным образом. Примеры будут на основе Ableton , хотя можно использовать и другие секвенсоры с поддержкой миди. Теперь насчет андроид-устройства. В моем случае - это телефон Lenovo A750 с Android ICS 4. Опять же, на более ранних ОС я не имею возможности проверить, так что будем отталкиваться от такой конфигурации.

Программы я выбрал бесплатные, доступные на сервисе Google-Play. Ссылки будут указаны далее. Первая - это Touch OSC (https://play.google.com/store/apps/details?id=net.hexler.touchosc_a). Вторая - FingerPlay MIDI (https://play.google.com/store/apps/details?id=com.flat20.fingerplay&hl=ru). И если первая позволяет работать, в общем, без дополнительных программ (со своим драйвером), то вторая требует установки на компьютере своего сервера в виде отдельной программы. Но обо всем по-порядку.

Подготовка

Для начала нам нужно установить виртуальные миди-порты. Как это сделать, я описывал в . Кто не знает - читаем. Во-вторых, у нас должно быть настроено соединение wi-fi, со статическим ip-адресом. В windows 7 это можно проверить (сделать), зайдя в «Центр управления сетями и общим доступом-Беспроводное сетевое соединение-Свойства-Протокол интернета версии tcp/ipv4 » (рис. 1).

Рисунок 1. Установка статического IP-адреса на компьютере.

Как видим на рисунке, установлен статический адрес 192.168.1.57. Нам нужно будет запомнить этот адрес, он нам пригодится далее, в настройке программ на андроиде.

Во-вторых, должно быть установлено wi-fi соединение между компьютером и телефоном. Вариантов тут много. Лично у меня установлен обычный роутер wi-fi, со стандартными настройками, через него и соединяется компьютер и телефон. Возможны и другие варианты подключения напрямую телефона и компьютера через wi-fi, но это тема отдельной статьи. Предполагаем, что соединение между компьютером и телефоном существует. Теперь устанавливаем на телефон вышеуказанные программы и будем начинать.

FingerPlay MIDI

Первая пограмма - FingerPlay MIDI. Кроме основной программы в памяти телефона, она требует установки сервера на компьютере, для создания собственного канала, через который будут передаваться миди-сообщения в виртуальный порт (Midi-Yoke) на компьютере. Для начала настроим ее в телефоне. Запускаем ее, нажимаем на значке настроек (кнопка с шестеренкой) и попадаем во вкладку Settings (рис. 2).


Рисунок 2. Настройки FingerPlay.

Во-первых, устанавливаем Server type - FingerServer. Во-вторых, в Server Address устанавливаем ip-адрес нашего компьютера. Теперь на компьютере разархивируем FingerPlayServer.zip и запускаем run.bat. Хочу обратить внимание, что для его работы необходимо наличие java. Итак, появляется окно, в котором мы видим статус подключения телефона и компьютера. Теперь на телефоне ставим галочку напротив Connect to server и если все правильно, то статус превратится в Connected to 192.168.1.57 (или адрес вашего компьютера). Окно сервера на компьютере тоже изменится, показывая, что устройство подключено (рис. 3).


Рисунок 3. Окно сервера FingerPlay.

Как видим, в статусе - Phone connected, что означает, что телефон подключен, а также отображается на какой выход приходят миди-сообщения (Midi-Yoke 1). Кроме того, в настройках на телефоне, мы можем выбрать другое виртуальное миди-устройство (рис. 4).


Рисунок 4. Выбор миди-устройства для вывода сообщений.

Вот, собственно и вся подготовка. Теперь можно покрутить любой регулятор и в окне сервера появятся сообщения о том, какой параметр изменяется. Теперь самое время перейти в Ableton.

В Ableton нам достаточно выбрать то, миди-устройство, которое указано в FingerPlay (в нашем примере, Midi-Yoke 1) (рис. 5).


Рисунок 5. Включаем Midi-Yoke 1 в Ableton.

Если все правильно, то теперь можно замапить разные контроллеры и кнопки. И касаясь экрана на телефоне, управлять параметрами в Ableton. Например, перейдем в раскладку (Layout) для микшера в FingerPlay (она занимает среднее положение на панели справа, см. рис.6).


Рисунок 6. Раскладка микшера в FingerPlay.

Теперь в Ableton нажимаем Ctrl+M, включается режим миди-маппинга. Нажимаем, к примеру, на регуляторе громкости первого канала в Ableton и касаемся первого регулятора на экране телефона. Если все правильно, в карте маппинга появится новая запись (рис. 7).


Рисунок 7. Новый параметр в карте миди-маппинга.

Нажимаем Ctrl+M для возвращения в обычный режим. И теперь если мы касаемся первого регулятора на экране, у нас изменяется громкость на первом канале в Ableton! (рис. 8).


Рисунок 8. Регулятор на экране телефона управляет регулятором в Ableton.

Вот и все, миссия выполнена. Аналогично можно замапить кнопки, которые находятся в другой раскладке FingerPlay и пользоваться.

Touch OSC

Это приложение отличается от предыдущего мультиплатформенностью. Его клиент доступен не только для андроида, но и для iOs. А сервер, соответственно, может работать и на mac-совместимых компьютерах. Но я буду рассматривать связку android+windows 7, как и упоминал выше. Сервер для windows можно скачать на официальном сайте по этой ссылке: http://hexler.net/pub/touchosc/touchosc-bridge-1.0.1-win32.zip .

Устанавливаем его в телефон и на ПК, если все верно, то в системном трее на ПК появится иконка TouchOSC bridge (рис. 9).


Рисунок 9. Сервер TouchOSC Bridge установлен и запущен.

Обращаю внимание на то, что данная программа умеет работать не только по миди-протоколу, но и по протоколу OSC. Нас интересует в данном случае миди. Что касается соединения с компьютером - требования те же (см. выше). Теперь перейдем к настройкам TouchOSC на телефоне. При запуске программы сразу запускается окно настроек. Здесь мы кликаем на Midi Bridge (рис. 10) и вписываем ip-адрес нашего компьютера.


Рисунок 10. Настройки Touch OSC в телефоне.

Здесь есть одна сложность, с которой я очень долго промучился. Дело в том, что у меня телефон ни в какую не хотел показывать мой компьютер в списке Found Hosts. Там постоянно отображался 0. Несмотря на это, все заработало замечательно, так что не обращаем на это внимание и продолжаем. Переходим в Ableton.

В Ableton, как несложно догадаться, нам нужно выбрать миди-порт Touch OSC. На этот раз это собственный порт, который появляется в системе после установки сервера (рис. 11).


Рисунок 11. Настройки Touch OSC в Ableton.

Теперь можно пробовать мапить кнопки и регуляторы в Ableton, как указано выше. Аналогично можно использовать наш андроид-контроллер и в других секвенсорах.

Немного об интерфейсе и возможностях

Особых сложностей, как видим, не возникает. Лично для меня самой большой сложностью было законнектить компьютер с телефоном, и то, только в случае с TouchOSC. А что же они по сути нам предлагают в качестве контроллеров? Сразу скажу, что TouchOSC будет посильнее и в плане интерфейса, и в плане уже готовых раскладок.


Рисунок 12. Раскладка Keys в TouchOSC.

Здесь доступно 5 раскладок, в каждой из которых по 3 закладки. На рисунке 12, к примеру мы видим, что есть даже раскладка одной октавы пианино. Поддержка мультитача присутствует. Кроме того, в Touch OSC есть гораздо большее количество контроллеров - тут и клавиатура и всевозможные регуляторы, фейдеры, кроссфейдеры, X-Y-контроллеры. Finger Play, к сожалению, обладает всего несколькими типами контроллеров, клавиатуры нет. И раскладка у него всего лишь одна. Зато, в отличии от Touch OSC, здесь можно собственноручно, без проблем редактировать эти раскладки, создавать свои. Конечно, придется разобраться в синтаксисе, либо использовать онлайн-конструктор (https://dl.dropbox.com/u/1856630/fingerplay/index.html). Хотя он работает, мягко говоря, не очень хорошо. В Touch OSC загрузка раскладок доступна только для iPod, iPhone. Редактирование возможно и на windows. Хотя в сети есть способ как загрузить свою раскладку на андроид-устройство. Но метод довольно сложный.

Итог

Что ж, на данный момент обе программы со своими обязанностями вполне справляются. У каждой есть плюсы и минусы, но тем не менее, имея ноутбук, wi-fi и телефон на базе андроид можно успешно использовать телефон в качестве контроллера. Если же выбирать из этих программ, я все же отдаю предпочтение Touch OSC.

Что такое MIDI, и чем такие файлы отличаются от Wave-файлов

Что такое MIDI

Стандарт MIDI (акроним от Musical Instruments Digital Interface, в буквальном переводе - цифровой интерфейс музыкальных инструментов) представляет собой «язык», на котором «общаются» MIDI-совместимые устройства. Иными словами, этот стандарт описывает определённые сообщения (двоичные команды), которыми могут обмениваться различные MIDI-устройства.

Ключевой особенностью интерфейса MIDI является то, что с его помощью устройства обмениваются именно логическими командами, и никакого отношения к передаче звука как такового MIDI не имеет .

Пример Рассмотрим взаимодействие двух устройств: MIDI-клавиатуры и синтезатора звуков. При нажатии на MIDI-клавиатуре клавиши, соответствующей, к примеру, ноте ЛЯ третьей октавы, MIDI-клавиатура даст синтезатору команду «начать воспроизведение ноты ЛЯ третьей октавы». Когда клавиша будет отпущена, клавиатура, послав другое сообщение, прикажет синтезатору прекратить воспроизведение ноты ЛЯ третьей октавы. При этом звук, издаваемый синтезатором, будет различаться в зависимости от конкретной последнего и его настроек. По MIDI же, подчеркну, передаются только команды и никакого звука.

Следует заметить, что потенциальная сфера применения MIDI не ограничивается только музыкальными инструментами. С таким же успехом можно управлять, например, светомузыкальным оборудованием, а при большом желании - даже промышленными роботами. :)

Очевидно, любая последовательность MIDI-сообщений может быть сохранена в виде обычного файла. Один из форматов хранения последовательностей MIDI-сообщений (SMF - Standard MIDI File) также регламентируется стандартом.

Модификации MIDI

Существует ряд модификаций стандарта MIDI:

  • GM (General MIDI),
  • GS (General Standard),
  • XG (eXtended General).

Каждая из них, помимо основных MIDI-сообщений (одно из которых рассмотрено в примере чуть выше), описывает количество и конкретный набор инструментов (тембров), которые обязательно должны поддерживаться устройством, совместимым соответственно с GM, GS или XG. Фактически эта характеристика имеет смысл только применительно к синтезаторам звуков и означает, что синтезатор с поддержкой, например, GM должен уметь воспроизводить звук любого из 128 предусмотренных спецификацией инструментов. Каждому инструменту соответствует строго определённый номер. Кроме того, MIDI-устройства должны обладать строго определённым количеством независимых MIDI-каналов, каждому из которых может быть назначен свой тебмр и соответствовать собственная последовательность MIDI-событий. Смена тембра, аналогично началу и окончанию воспроизведения ноты, производится также после получения MIDI-синтезатором уникального MIDI-сообщения. Таким образом, обеспечивается схожее звучание одного и того же MIDI-файла на разных MIDI-синтезаторах с поддержкой одного и того же стандарта.

Например, любой синтезатор с поддержкой GM обладает следующими возможностями: 16 каналов, каждому из которых может быть назначен собственный тембр (инструмент). Выбрать тембр можно произвольным образом по его номеру из совокупности определённых стандартом GM тембров, включающих 128 как живых, так и синтезированных инструментов, куда входят фортепиано, гитара, струнные, флейта и др. Кроме того, можно использовать как минимум один набор ударных звуков.

Предусмотрен также ряд так называемых MIDI-контроллеров, позволяющих влиять на характер звучания воспроизводимой синтезатором музыки: например, при помощи серии событий контроллера Pitch можно плавно или резко (зависит от вашего желания и целей) изменять высоту звука, при помощи контроллера Expression - изменять громкость звучания на каждом из 16-ти каналов в отдельности, с помощью контроллера Pan устанавливать любой сдвиг MIDI-канала в стереопанораме и т. д. Существуют также контроллеры, не оговорённые стандартом и являющиеся специфичными для отдельных моделей синтезаторов, однако их использование чревато несовместимостью с другими MIDI-устройствами, которые попросту «не поймут» незнакомые команды.

Бытует мнение, что GS является расширением GM, а XG является расширением GS. Это не вполне соответветствует действительности, поскольку стандарты эти различаются не только количеством инструментов и контроллеров, но и форматом некоторых MIDI-сообщений. Это приводит к тому, что MIDI-файлы, созданные с использованием набора команд XG, могут некорректно вопроизводиться на GS- или GM-устройстве. В частности, может случиться так, что барабанные партии будут воспроизводиться тембром фортепиано, что превратит музыку в какофонию. Наиболее универсальным и совместимым является GM, т. е. MIDI-файл, созданный с использованием GM, будет воспроизводиться корректно и на GS- и на XG-синтезаторах.

Отличия формата MIDI от формата Wave

В свете вышесказанного нетрудно догадаться, что MIDI-формат принципиальным образом отличается от формата Wave, поскольку предназначен для хранения данных совершенно иного типа и не предназначен для хранения звука, являясь по сути лишь способом представления нотных партитур в цифровом (двоичном) виде. Таким образом, и прямое преобразование файлов в формате MIDI в файлы формата Wave и ему подобных (включая MP3) невозможно .

Проблемы качества звучания MIDI-файлов

Характер звучания результата синтеза может различаться весьма существенно при использовании различных синтезаторов. В этой связи полезно будет рассмотреть основные из существующих типов синтеза звука, к каковым можно отнести:

  • собственно синтез по неким математическим зависимостям;
  • Wave-синтез (сэмплирование), т. е. синтез звука на основе заранее оцифрованных звуковых фрагментов (сэмплов).

Эпоха звука на персональных компьютерах началась с синтезаторов, основанных на первом типе синтеза. Его особенностью является необходимость в вычислительном устройстве с весьма высокой производительностью, поскольку синтез качественных звуков происходит по довольно сложным формулам. Очевидно, поэтому в то время (хотя было это всего несколько лет назад) для синтеза звука использовались простейшие математические зависимости с минимальным количеством дополнительных гармоник, обогащающих звучание, что, в свою очередь, исключительно пагубно сказывалось на качестве звучания и реализме синтезируемых звуков в целом и MIDI-музыке на компьютере в частности.

Несколько позднее был разработан новый, гораздо более эффективный метод - Wave-синтез, который и используется в подавляющем большинстве современных синтезаторов. Принцип, лежащий в его основе, достаточно прост: заранее оцифрованные звуковые фрагменты просто воспроизводятся на разной скорости, что и позволяет получать звуки разной высоты. Задача отвечающего за синтез процессора в этом случае несоизмеримо проще, нежели при синтезе звуковых волн по сложным зависимостям. Качество же результирующего звука при этом определяется, главным образом, качеством исходного звукового фрагмента, которое может быть сколь угодно высоким. Синтезаторы, работающие по описанному принципу, называют сэмплерами (от англ. sampler), а используемые в качестве основы для синтеза звуковые фрагменты - сэмплами (samples).

До относительно недавнего времени сэмплеры были доступны немногим в силу их дороговизны - отчасти из-за необходимости в большом количестве оперативной памяти для мгновенного доступа к сэмплам без ощутимых задержек при живом исполнении произведения музыкантом. Поэтому в компьютерах многих желающих заниматься музыкой (включая многих из нас с вами) поселились звуковые платы со встроенными сэмплерами, по возможностям, к сожалению, существенно уступающими профессиональным сэмплерам. Качество звуков, используемых в разных моделях звуковых плат от разных производителей, сильно различалось и при этом было довольно низким.

Улучшение качества звучания MIDI-файлов

Одной из попыток решить проблему низкого качества MIDI-музыки на компьютере стали программные синтезаторы, работающие по принципу Wave-синтеза. Однако реально использовать их можно было только при прослушивании заранее подготовленных MIDI-файлов, для чего они, собственно, и создавались. При попытках же живого исполнения музыки с использованием тембров такого синтезатора наблюдалась существенная задержка между моментом нажатия клавиши на MIDI-клавиатуре и появлением соответствующего звука. Кроме того, тембры нельзя было заменять. Поэтому желающие более-менее серьёзно заниматься музыкой на компьютере устанавливали довольно дорогостоящие звуковые платы, обладающие синтезатором с очень качественными (но, к сожалению, опять же «вшитыми») тебрами, либо платы с возможностью использования произвольных тембров путём их загрузки в собственную оперативную память звуковой карты, т. е. по сути сэмплеры. Это, разумеется, способствовало поднятию качества звучания MIDI-музыки на новый уровень.

В последнее время широкое распространение получили программные сэмплеры с исключительно небольшим (что достигнуто использованием передовых алгоритмов и интерфейсов вроде ASIO) временем задержки, предоставляющие практически все возможности аппаратных сэмплеров и обладающие, кроме того, гораздо большей гибкостью и удобством в использовании по сравнению с последними за счёт возможности обновления и тесной интеграции с программными MIDI-секвенсорами, используемыми для работы с музыкой посредством MIDI (записи, редактирования MIDI-партий и проч.). Будущее в области создания музыки на компьютере, несомненно, именно за программными сэмплерами.

Примечательно, что понятие банка звуков (т. е. набора сэмплов, представляющих собой тембры для одного из рассмотренных стандартов MIDI), к которому мы все так привыкли, практически неактуально в отношении серьёзных сэмплеров - будь то аппаратные или программные. Более того, в этом плане и воспроизведение MIDI-файлов также несколько теряет смысл. Ведь загрузить можно абсолютно произвольный сэмпл, и совершенно незачем ограничиваться рамками жёсткого перечня GM-тембров. Но именно жёсткий перечень лежит в основе MIDI-стандартов GM, GS, XG.

Вероятно, здесь и находится грань, разделяющая слушателя и музыканта - у них просто разные цели. И если для слушателя на одном из первых мест универсальность, присущая конкретным стандартам, то для музыканта целью является результат, максимально качественный, максимально соответствующий его творческим замыслам. Последнее невозможно без точного подбора уникального сочетания инструментов, что недостижимо в рамках, к примеру, GM хотя бы потому, что звуки разных GM-совместимых синтезаторов различаются. В руках же музыканта MIDI - исключительно мощное орудие существенно большего масштаба, фундамент для реализации самых разнообразных творческий идей, язык для плодотворного общения его инструментов.