Главная
 
MIDI.UCOZ.RUВторник, 23.04.2024, 22:36



Приветствую Вас Гость | RSS
Главная
Меню сайта

MIDI ОБЛАКО

Категории раздела
Статьи о MIDI и создании музыки [26]
В данном разделе собраны материалы раскрывающие понятие о том, что такое MIDI, как его делать и зачем вообще этот зверь нужен. Также здесь можно найти материалы о музыкальных технологиях, мастеринге и т.д.
Искусство программирования миди [51]
Азбука MIDI. Совместимость данных. Контролеры. Системные сообщения. Приемы программирования миди-файлов. Создание кавер-версий. Использование тембров. Сведение миди-файлов и многое другое.
О разном, но вечном [10]
В этом разделе собраны материалы разной тематики, не всегда можно согласиться со всем опубликованным, однако есть повод задуматься...

Поиск

Главная » Статьи » Искусство программирования миди

Совместимость данных
Миди был задуман в начале 80-х как интерфейс, позволяющий любым электронным музыкальным инструментам «разговаривать» друг с другом на одном языке. До этого момента производители разрабатывали собственные коммуникационные системы для своих инструментов, но ни одна из них не была «многоязычной».
 
С появлением миди и стандартизованных команд, вопросы о коммуникации инструментов больше не тревожили пользователей. Но возник новый вопрос: несмотря на тот факт, что производители включали в свои устройства одни и те же типы звуков (органы, гитары и т. д.), единообразия в способе, каким звукам соответствовали номера изменений программ, не было. Аранжировка миди-файла для фортепиано и струнных, созданная на одном устройстве, могла легко прозвучать как гобой и барабаны при воспроизведении на другом устройстве.
 

Если вы собираетесь воспроизводить законченный миди-файлна тон-генераторе, отличном от того, с помощью которого этот файл программировали, вы, вероятно, спросите себя: «А как он будет звучать?». Или, может быть, если вы уже попробовали файл воспроизвести, вопрос изменится: «Почему файл звучит ТАК ?» На самом деле в обоих случаях вы задаете себе следующий вопрос: «А совместимы ли эти устройства?»

 
К началу 1990-х годов мили-файлы стали коммерческой областью, благодаря стандартизации систем коммуникации, однако производители файлов должны были либо разрабатывать файлы для конкретных устройств, либо прилагать к ним гору бумаги с объяснениями, как следует конфигурировать тон-генератор, чтобы сделать звучание песни узнаваемым. Несмотря на то, что большинство устройств содержит тембр трубы, например, в одном устройстве он может иметь номер 33, а в другом 110. Таким образом, хотя сообщение об изменении программы (то есть загрузка тембра на определенный канал) будет получено и правильно понято, оно совсем не обязательно вызовет правильный звук. Более того, многие устройства тех времен объединяли свои звуки в банки, которые не были доступны с помощью команд миди, что еще больше усложняло проблему. Возникала потребность в совместимости другого уровня, и появились протоколы.
 

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

 

Универсальные, специфичные и стандартные данные

Различные типы данных, которые могут быть включены в миди-файл, можно условно разбить на три категории: универсальные, специфичные и стандартные.

Хорошим примером универсальных сообщений служит сообщение «нота»: файл, содержащий ноту СЗ (миди-нота номер 60), воспроизведет ее именно так на любом тон-генераторе. Из этого следует, что ноты могут быть включены в любой миди-файл, и это не вызовет никаких проблем с совместимостью. Определенно и другие сообщения стали универсальными, и контроллер №7 всегда управляет громкостью канала, а №1 — модуляцией.
 
Специфичными являются те данные, на которые может отвечать только один тон-генератор (или серия тон-генераторов одного производителя). Хороший пример специфичных данных — команды System Exclusive: эти сообщения содержат идентификационный номер производителя, таким образом, сообщение, закодированное для устройства Коrg, будет проигнорировано любым другим устройством при получении этого сообщения. Аналогичными примерами могут служить группа неопределенных контроллеров и группа контроллеров общего назначения, которые в разных устройствах используются для разных целей. Специфичными являются и NRPN (незарегистрированные номера параметров). О них мы расскажем подробно в главах, посвященных сообщениям миди-каналу.
 
К третьей категории (стандартные сообщения) относятся данные, которые согласуются со стандартом или протоколом. Наиболее важным примером здесь служит система нумерации тембров (или банков). Некоторые производители предусматривают в своих устройствах совместимость с General MIDI наряду с дополнительными звуками и управляемыми параметрами. При использовании звуков и контроллеров General MIDI, файл будет воспроизведен точно на любом устройстве, совместимом с General MIDI. Включите в него один дополнительный звук или контроллер, — и другое устройство, несмотря на совместимость с General MIDI, может вызвать неправильный звук или вообще не вызовет никакого звука. Другими словами, этот звук или параметр является специфичным для данного тон-генератора.
 

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

 

General MIDI

 

General MIDI былпервым протоколом, разработанным для совместимости тон-генераторов, и многие производители до сегодняшнего дня выпускают хотя бы одно устройство для работы с General MIDI. Миди-файл, созданный с использованием одного источника звука, совместимого с General MIDI, может быть воспроизведен с использованием другого источника звука, совместимого с General MIDI и при этом будет вызывать те же инструментальные тембры.
 
Протокол General MIDI определяет список из 128 инструментов (набор звуков), которые доступны с помощью команд изменения программ. Таким образом, миди-файл, содержащий на определенном канале команду об изменении программы №30 (вызывающую тембр «овердрайв-гитара») будет всегда вызывать звук овердрайв-гитары на этом канале при воспроизведении на любом тон-генераторе, совместимом с General MIDI. Но ничего не поделаешь с тем, что нюансы звука будут меняться при использовании тон-генераторов разных производителей: конкретная инструментальная партия, которая так здорово звучит на вашем синтезаторе или модуле, может показаться не такой уж хорошей на другом тон-генераторе (однако, она может звучать и лучше).
 
Устройство, совместимое с General MIDI, должно предоставлять, по крайней мере, 24-голосовую полифонию с динамическим распределением голосов, и предоставлять доступ к 16 каналам. Каждый канал многоголосый, и на него можно загрузить тот или иной тембр (за исключением канала 10, на котором всегда располагаются ударные инструменты). По соглашению, канал 2 предоставляется басу, канал 4 зарезервирован для основной мелодической линии, а канал 5 представляет предполагаемую голосовую партию. Единственный набор барабанов, называемый стандартным, автоматически загружается на канал 10 командой GM Reset. Этот стандартный набор барабанов содержит 47 перкуссионных звуков, которым соответствуют миди-ноты под номерами с 35 по 81. Эффекты хоруса и реверберации обычно включаются как неофициальные дополнения. Файлы General MIDI должны быть стандартными миди-файлами типа 0 с разрешением 96 тиков на четвертную долю.
 
Протокол General MIDI распознает ограниченный набор команд, изменяющих управление, или контроллеров (СС):
 

СС1: Модуляция;

СС6: Ввод данных MSB;

СС7: Громкость;

СС 10: Панорама;

СС11: Экспрессия;

СС38: Ввод данных LSB;

СС64: Педаль сустэйна;

СС91: Глубина внешнего эффекта (реверберация);

СС93: Глубина хоруса.
 

В дополнение к перечисленным выше контроллерам, существуют более поздние расширения протокола, — зарегистрированные номера параметров (RPN). RPN используются, по преимуществу, для организации доступа к диапазону смещения высоты тона нот на канале. RPN представляют собой набор из пяти контроллеров, помещенных на последовательные тики:

101:0;

100:0;

6:7;

101:127;

100:127.

Первые два контроллера указывают на параметр «Смещение высоты тона ноты» (номер 0), величина контроллера СС6 устанавливает диапазон (в данном случае 7 полутонов), и последние два контроллера закрывают сообщение (всегда со значением 127).
 
RPN могут так же использоваться для подстройки высоты звучания канала: назначение контроллеру С С100 значения 1 позволяет управлять тонкой подстройкой высоты звучания канала (это требует появления дополнительного контроллера СС38, следующего за контроллером СС6); значение, равное 2, будет управлять грубой подстройкой.
 
Более полный список широко используемых контроллеров, включая RPN, можно найти в главе «Меню сообщений midi-каналу». Там же приведены объяснения их особенностей и даны советы по использованию контроллеров.
 
Нужно заметить, что совместимость с General MIDI часто включена в тон-генераторы в качестве минимального стандарта. Многие тон-генераторы содержат дополнительные банки звуков и встроенные эффекты, и способны распознавать более широкий спектр команд, изменяющих управление. Использование таких дополнительных возможностей предоставляет значительно больший потенциал, однако это противоречит концепции совместимости. Например, если вы используете тембр, несовместимый с General MIDI, или такой же контроллер, в своем файле, вы не можете быть уверенными в том, как другой тон-генератор интерпретирует команду, и распознает ли он ее.
 

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

 

Roland GS

 

Стандарт Roland GS является расширением протокола General MIDI, он предлагает дополнительные банки звуков, наборы ударных инструментов и расширенную реализацию изменений в управлении. (Вопреки распространенному мнению, GS не является аббревиатурой для General Standard, это просто имя микрочипа, используемого в тон-генераторах Roland.)
 
Файлы General MIDI совместимы с тон-генераторами GS, но не используют полностью их потенциал. Как и General MIDI, Roland GS обеспечивает совместимость на уровне тон-генераторов и, как обычно, эта совместимость имеет свои плюсы и минусы. Позитивным является то, что дополнения Roland GS предоставляют большую гибкость при программировании, а качество и тембровые характеристики звуков остаются совместимыми при переходе от одного оборудования Roland к другому. Негативным является то, что, эта совместимость ограничена тон-генераторами Roland, и это снижает значение миди-файлов GS.
 

Так же, как и General MIDI, протокол GS распознает расширенный набор контроллеров, который включает незарегистрированные номера параметров (NRPN). Они дают пользователю возможность получить удобный доступ к изменению параметров инструментов с помощью контроллеров, что ранее было возможно лишь через сообщения SysEx.

 

Наборы инструментов GS

Наборы звуков, соответствующие протоколу GS, хранятся в отдельных банках, доступных через контроллеры выбора банка — Bank Select О и 32. Набор звуков General MIDI является основным банком и называется Capital Set. Многие из этих 128 основных звуков имеют одну или более вариаций: например, тембр джазовой гитары имеет вариацию, которая называется «гавайская гитара». Вариации вызываются путем помещения контроллера ССО или СС32 с необходимым значением перед командой, изменяющей программу (то есть, сначала вы выбираете банк, а потом выбираете звук из этого банка). Значение контроллера ССО является номером банка, содержащего вариацию тембра, а значение СС32 всегда равно 0.
 
Реализация сообщений о выборе банка в стандарте GS изменилась по сравнению с первоначальной. Тогда GS требовал только контроллера ССО, СС32 мог быть использован, но игнорировался. Более поздние «издания» стандарта определенно требуют присутствия СС32, но всегда со значением 0. Этот факт не совсем согласуется со спецификацией миди, про которую рассказано в третьей главе в разделе «Изменяемые контроллеры».
 

Устройства, совместимые с протоколом GS, содержат ряд различных наборов ударных инструментов и звуковых эффектов, которые по умолчанию используются на канале 10. Каждый набор доступен через собственную команду изменения программы, а первичный набор -Standard Kit — это набор ударных General MIDI. Многие наборы, включая и первичный, содержат дополнительные звуки, которым присвоены номера миди-нот из более широкого диапазона. Полезная возможность, предоставляемая GS, состоит в том, что вы можете загрузить ударные более чем на один канал, а это позволяет использовать более одного набора барабанов, если возникает такая необходимость.

 

GS Reset

GS Reset — это команда SysEx, которая возвращает конфигурацию тон-генератора, совместимого с GS, в состояние, принятое по умолчанию. Строка SysEx выглядит следующим образом: FO, 41, 10,42,12,40,00, 7F, 00, 41, F7. Реализация GS Reset изменилась за последние несколько лет: ранние тон-генераторы воспринимали команду GM Reset позволяя контролировать все функции GS. Современное оборудование специфично распознает команду GM Reset, запрещая тон-генератору пользоваться функциями, выходящими за рамки протокола General MIDI. Таким образом, файлы GS должны содержать команду GS Reset на первом тике, тогда управление тон-генратором будет осуществляться по стандарту GS. И последнее, что мы скажем о протоколе GS, это то, что следует помнить: его свойства и возможности имеют тенденцию расширяться с появлением нового оборудования. Каждый производитель пытается использовать улучшения, предоставляемые развитием технологии.

 

Открытый формат Yamaha XG

 

Заявив о своем стандарте XG в начале 1994 года, Yamaha вступила в борьбу на рынке протоколов. Как и в предыдущем случае, речь шла о предложении новой альтернативы General MIDI.
 
Одно из основных, и бесспорно важных, преимуществ протокола XG находится в области совместимости. Устройства XG могут воспроизводить файлы General MIDI так же успешно, как и устройства GS или «родные» устройства GM. Однако основной упор Yamaha был сделан на то, чтобы добиться более высокого уровня совместимости, — с устройствами GS, при использовании похожих контроллеров и раскладки NRPN, плюс возможность распознавания сообщений SysEx для GS. Таким образом, устройства XG могут воспроизводить файлы GS не менее успешно, чем устройства производства Roland. В результате для пользователей, намеревающихся программировать файлдля определенного протокола, вопрос выбора сделал полный круг, вернувшись к формулировке тех дней, когда всех этих протоколов не существовало: «Чьи звуки лучше?»
 
Обстоятельство сквозной совместимости также означает, что файлы XG могут быть воспроизведены на устройствах GM и GS. Ясно, что некоторые черты файлов XG будут в этом случае потеряны (на специальных устройствах GM потеряно будет много). Но вы получите довольно точное приближение звучания инструментов на каждом из каналов, и устройства будут реагировать на все контроллеры, которые смогут распознать и просто игнорировать те, которые распознать не смогут. XG обладает дополнительными возможностями, которые позволяют его рассматривать как вполне достойный самостоятельный протокол.
 
Особенность формы сообщения SysEx, которая используется в данном протоколе, состоит в том, что все коды содержат ссылку на «устройство XG», а не на «устройство Yamaha». Причина этого проста: для того, чтобы заставить считаться с протоколом XG, его разработали как открытый формат. Другими словами, Yamaha поощряет других производителей выпускать свои собственные XG-устройства, это очень похоже на то обстоятельство, что большинство производителей сегодня выпускают GM-устройства.
 

Еще один момент относительно сообщения SysEx для XG, состоит в том, что в данном случае не требуется проверки суммы, т. е. часть сообщения, содержащая данные, может быть введена или изменена без особых математических усилий.

Очевидно, что большинство черт протокола GS, описанных в предыдущем разделе, реализованы и в протоколе XG. Вот некоторые основные различия в их реализации.

  • Наличие 32-голосовой полифонии. Это минимальное значение поли
    фонии для протокола: на рынке присутствуют устройства GM и GS,
    обеспечивающие 64-голосовую полифонию.
  • Существует возможность использования до трех наборов ударных
    инструментов на любых из каналов (при этом для совместимости с
    двумя предыдущими протоколами основным вариантом остается
    единственный набор на канале 10).
  • Все изменяемые параметры доступны через SysEx, а некоторые дос
    тупны более простым способом, — через незарегистрированные но
    мера параметров. Коды SysEx могут быть отображены на экране уст
    ройства и скопированы в секвенсер.
  • Существует возможность использования трех эффектов одновремен
    но: так же, как и в предыдущих протоколах, это реверберация и хо-
    рус (СС91 и 93 соответственно), а третий — банк переключаемых
    эффектов, отвечающих на контроллер СС94. Этот банк содержит та
    кие эффекты как автопанорама, задержка и т. д. Только один из эф
    фектов этого банка может быть выбран в определенный момент вре
    мени. Тип выбранного эффекта глобален, то есть воздействует на все
    каналы.
XG включает в себя полную реализацию команд выбора банка (контроллеры ССО и 32) как того требует спецификация миди. Это означает, что в сочетании с командами изменения программы, у вас в наличии оказывается более 2 миллионов возможных голосов (128 в кубе). Это не означает, что какое-то устройство содержит такое количество инструментов... Но если бы это и было возможно, смогли бы вы выбрать из них что-то?
 

Банки устроены точно таким же образом, как и в протоколе GS. 128 звуков General MIDI составляют основу, при этом каждый из этих звуков имеет 16383 потенциальных вариации.

Категория: Искусство программирования миди | Добавил: Arcady (13.06.2008) | Автор: Зуев Б., Денисенко П.
Просмотров: 3607 | Теги: искусство, миди, GM, совместимость, XG, Программирование, MIDI, GM2 | Рейтинг: 5.0/1
Форма входа

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Copyright MyCorp © 2024