Цифровой интерфейс музыкальных инструментовРефераты >> Программирование и компьютеры >> Цифровой интерфейс музыкальных инструментов
Какова аппаратная спецификация MIDI?
Грубо говоря, MIDI определяет протокол, в соответствии с которым происходит пересылка цифровых команд по кабелю. Кабели MIDI имеют 5-штырьковые разъемы стандарта female DIN-5 или СГ-5, но используются только 3 контакта из пяти (земля, токовая петля и линия данных). Передача данных по MIDI протоколу осуществляется в одном направлении со скоростью 31250 б/с. Каждый инструмент имеет три соединительных разъема: In (вход), Out (выход) и Thru (полная копия сигнала с In через буфер), вид с наружной стороны (стороны соединения): 2 4 o 5 o o1 o o 3
Контакты 4 и 5 - сигнальные, контакт 2 - экран. Соединение экрана с корпусом желательно только со стороны выхода (Out и Thru). Полярность сигналов дается относительно источника тока: контакт 4 - плюс (ток вытекает из вывода), контакт 5 - минус (ток втекает в вывод). Таким образом, для разъемов Out и Thru назначение то же, для разъема In - обратное.
Для соединения используется двужильный экранированный кабель длиной до 50 футов (около 15 м). Экран необходим только для защиты от излучаемых помех - кабель практически нечувствителен к наводкам извне. Соединение разъемов на двух концах кабеля - прямое (2-2, 4-4, 5-5).
Один MIDI-передатчик допускает подключение до четырех приемников. Описанная схема позволяет создавать сеть MIDI-устройств, подключая их по цепочке и нескольким направлениям: +-----------+ +-----------+ +-----------+¦1 Thru ¦ ¦2 Thru +-----+ ¦3 Thru ¦¦ In ¦ +----+ In ¦ +----+ In ¦¦ Out +-----+ ¦ Out +-+ ¦ Out ¦+-----------+ +-----------+ ¦ +-----------+ +---------------+ ¦ +-----------+ +-----------+ ¦ ¦4 Thru +-----+ ¦5 Thru ¦ +-+ In ¦ +----+ In ¦ ¦ Out ¦ ¦ Out ¦ +-----------+ +-----------+
В этой схеме устройство 1 служит источником сообщений, которые получает устройство 2 и через его ретранслятор - устройство 3. Устройство 4 получает сообщения, посылаемые устройством 2 (они могут как включать, так и не включать получаемые самим устройством 2) и ретранслирует их на вход устройства 5.
В компьютер MIDI подключается с помощью 15-ти контактного MIDI-порта.
Также возможно подключение 2-х клавиатур к одному синтезатору. Первая клавиатура генерирует команды для канала 1, а вторая для канала 2. Оба кабеля, подключенные к разъемам MIDI Out соответствующих клавиатур, объединяются на специальном коммутаторе (MIDI merger box), который служит для синхронизации сигналов. Смешанные сигналы подаются на вход MIDI In синтезатора.
Какая спецификация формата данных MIDI?
MIDI-данные представляют собой сообщения, или события (events), каждое из которых является командой для музыкального инструмента. Стандарт предусматривает 16 независимых и равноправных логических каналов, внутри каждого из которых действуют свои режимы работы; изначально это было предназначено для однотембровых инструментов, способных в каждый момент времени воспроизводить звук только одного тембра - каждому инструменту присваивался свой номер канала, что давало возможность многотембрового исполнения. С появлением многотембровых (multi-timbral) инструментов они стали поддерживать несколько каналов (современные инструменты поддерживают все 16 каналов и могут иметь более одного MIDI-интерфейса), поэтому сейчас каждому каналу обычно назначается свой тембр, называемый по традиции инструментом, хотя возможна комбинация нескольких тембров в одном канале. Канал 10 по традиции используется для ударных инструментов - различные ноты в нем соответствуют различным ударным звукам фиксированной высоты; остальные каналы используются для мелодических инструментов, когда различные ноты, как обычно, соответствуют различной высоте тона одного и того же инструмента.
Особенно важно уяснить для себя то, что сами данные, передаваемые по кабелю MIDI – интерфейса, не являются закодированными звуками ни в аналоговой, ни в цифровой форме. Передаются номера команд, нот, которые хранятся в определённых таблицах. На первый взгляд это противоречит здравому смыслу, а по сему представляется чем-то уж сложным. На самом деле по кабелю передаются простые сообщения длиной всего 1, 2, или 3 байта.
Например:
Когда вы нажимаете на клавишу (например “ДО” первой октавы) клавиатура выдает 3 байта по порту MIDI Out. В шестнадцатеричной форме это 90 3С 40. Первый байт (90) – это сообщение Note On. Второй байт представляет собой номер ноты (3С – третье или среднее “до”, т.е. “до” первой октавы). Значение третьего байта определяется скоростью нажатия на клавишу, т.е. от силы удара зависит громкость звука.
Далее это 3-байтовое сообщение по MIDI-кабелю попадает на входной разъем синтезатора, который реагирует на это звуком “до” первой октавы. Если вы снимите свой палец с клавиши на входном разъеме клавиатуры - появится сообщение 90 3C 00. Как видите изменился только байт скорости – он принял нулевое значение. Эта команда называется “Note Off”, и синтезатор реагирует на нее прекращением воспроизведения данного звука.
Если ваш синтезатор полифонический, т.е. способен воспроизводить более одной ноты в одно и тоже время, вы имеете возможность играть аккордами. Клавиатура генерирует множественные сообщения Note On, а синтезатор проигрывает все нажатые ноты одновременно. Снимая пальцы с клавиш, вы посылаете синтезатору сообщения Note Off. Вообще говоря, клавиатура в этой установке играет роль так называемого MIDI – контроллера. Она генерирует MIDI – последовательности управления синтезатором.
Контроллер может не только напоминать клавиатуру или какой-либо другой традиционный музыкальный инструмент, но и может быть так называемым секвенсором – устройством, способным запоминать последовательность команд типа Note On и Note Off и в дальнейшем воспроизводить целые музыкальные фразы. Секвенсор как таковой сейчас используется гораздо реже, чем несколько лет назад, ему на смену пришел персональный компьютер, оснащенный MIDI–платой. Такой компьютер способен генерировать сообщения Note On и Note Off, и соответственно, способен управлять синтезатором. Специальное программное обеспечение авторских работ позволяет в наглядной форме манипулировать MIDI–данными, полученными от MIDI контроллера, а затем пересылать обработанные последовательности на синтезатор.
Синтезатор иногда называют звуковым модулем, или звуковым генератором. Стандарт MIDI никак не определяет способ создания звука, который может быть применен в той или иной конструкции синтезатора.
Байты состояния и данных:
Поскольку MIDI-сообщения представляют собой поток данных в реальном времени, их кодировка разработана для облегчения синхронизации в случае потери соединения. Для этого первый байт каждого сообщения, называемый также байтом состояния (status byte), содержит "1" в старшем разряде, а все остальные байты содержат в нем "0" и называются байтами данных (data bytes), число которых определяется байтом состояния. Если после получения всех байтов данных последнего сообщения на вход приемника поступает байт, не содержащий "1" в старшем разряде - это трактуется как повторение информационной части сообщения (подразумевается такой же первый байт). Такой метод передачи носит название "Running Status" и широко используется для уменьшения объема передаваемых данных - например, передается один байт команды "Controller Change" с нужным номером канала, а затем - серия байтов данных с номерами и значениями контроллеров для этого канала.