Управление звуковой картой компьютера — страница 10

  • Просмотров 9950
  • Скачиваний 301
  • Размер файла 177
    Кб

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

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

предназначено для одно-тембровых инструментов, способных в каждый момент времени воспроизводить звук только одного тембра - каждому инструменту присваивался свой номер канала, что давало возможность многотембрового исполнения. С появлением многотембровых (multi-timbral) инструментов они стали поддерживать несколько каналов (современные инструменты поддерживают все 16 каналов и могут иметь более одного MIDI-интерфейса), поэтому

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

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

последнего сообщения на вход приемника поступает байт, не содержащий "1" в старшем разряде - это трактуется как повторение информационной части сообщения (подразумевается такой же первый байт). Такой метод передачи носит название "Running Status" и широко используется для уменьшения объема передаваемых данных - например, передается один байт команды "Controller Change" с нужным номером канала, а затем - серия байтов данных с