Проигрывание MIDI-файлов
4.1.
4.2.
4.3.
В этой главе мы кратко расскажем вам о том, как приложения Windows могут проигрывать музыкальные файлы формата MIDI при помощи средств интерфейса MCI.
Стандарт MIDI (Musical Instrument Digital Interface - цифровой интерфейс музыкальных инструментов) был разработан давно, в 1982 году. В рамках этого стандарта определены электрические и логические спецификации (уровни сигналов, временные диаграммы и коммуникационный протокол) для подключения таких музыкальных инструментов, как синтезаторы и музыкальные клавиатуры друг к другу и к компьютеру.
Для электрического подключения используется последовательный интерфейс типа "токовая петля" со скоростью передачи данных 31250 бит в секунду. Данные передаются байтами с одним стартовым и одним стоповым битом. Подробная спецификация разъема приведена в документации на звуковой адаптер (если адаптер оснащен портом для подключения внешних устройств MIDI). Отметим, что устройства MIDI могут подключаться цепочкой, для чего на корпусе устройства обычно предусмотрены три разъема. Входной разъем обозначается MIDI In , выходной - MIDI Out . Разъем MIDI Thru предназначен для организации цепочки, он является выходным и дублирует сигналы с разъема MIDI In. Некоторые устройства, например, простые музыкальные клавиатуры, могут иметь только один входной или выходной разъем. В звуковом адаптере Sound Galaxy NX Pro предусмотрено подключение входного и выходного сигнала, причем оба они подключаются к одному разъему.
Как правило, все звуковые адаптеры оборудованы музыкальным синтезатором. Синтезаторы могут иметь базовый или расширенный уровень. Синтезатор базового уровня содержит в себе голоса трех мелодичных и трех ударных инструментов. Уровень полифонии такого синтезатора равен 6 для мелодичных и 3 для ударных инструментов. Это означает, что синтезатор базового уровня может играть одновременно 6 нот на мелодичных инструментах и 3 ноты на ударных. Синтезаторы расширенного уровня содержат в себе 9 мелодичных и 8 ударных инструментов при уровне полифонии, равном 16.
Хорошие синтезаторы содержат в себе цифровые записи (образцы) голосов музыкальных инструментов, которые модифицируются для получения нужной высоты тона и нужного уровня выходного сигнала. Более простые модели синтезируют звучание программным способом, что, однако, отдаляет качество звучания от идеала.
Для управления синтезатором, подключенным через порт MIDI, используется механизм сообщений MIDI. Сообщения могут иметь длину от одного до нескольких байт. Они передают такую информацию, как номер нажатой или отпущенной клавиши музыкальной клавиатуры или номер одного из 16 логических каналов, через которые осуществляется управление синтезатором.
Файлы в стандарте MIDI имеют расширение имени .mid и содержат заголовок и сообщения для музыкального синтезатора. Используется также стандарт RIFF. Файлы, содержащие сообщения MIDI и соответствующие стандарту RIFF, обычно создаются с расширением имени rmi. Если приложение Windows будет проигрывать такие файлы при помощи интерфейса MCI, ему не нужно знать внутренний формат файлов.
Но есть одна тонкость, связанная с использованием логических каналов и кодов инструментов.
В спецификации MIDI определены 16 логических каналов, предназначенных для адресации 16 логических синтезаторов. Каналы с номерами 13...16 используются синтезаторами базового уровня, каналы с номерами 1...10 - синтезаторами расширенного уровня. Каналы 11 и 12 не используются. Файлы MIDI содержат сообщения, предназначенные для разных каналов и для разных инструментов. Проблема заключается в том, что не все синтезаторы имеют одинаковое распределение каналов и инструментов. Самый простой способ уйти от трудностей, связанных с распределением каналов - приобретать mid-файлы, созданные специально для работы в среде Windows (авторизованные для Windows). В магазинах есть компакт-диски с многими сотнями таких файлов, причем в большинстве случаев вы можете свободно продавать эти файлы в составе своего программного обеспечения.
В нашей книге мы не будем рассматривать вопросы создания mid-файлов.Во-первых, есть много готовых, которые можно купить в магазине. Во-вторых, для создания mid-файлов требуется музыкальная клавиатура, соответствующее программное обеспечение и, разумеется, некоторые музыкальные способности. Кроме того, нам надо еще оставить место в книге для рассказа о новейшем направлении в мультимедиа - системе Microsoft Video for Windows.
А сейчас рассмотрим особенности использования интерфейса MCI для проигрывания файлов MIDI.