Русский

Что значат MSB и LSB в MIDI?

Загрузить InputConfig в Mac App StoreInputConfig бесплатно доступен в Mac App Store. macOS 14 или новее, без учётной записи, без отслеживания, открытый исходный код.

MSB и LSB это две половины числа, которое слишком велико для одного байта данных MIDI. Байт данных вмещает от 0 до 127. Два вместе вмещают от 0 до 16 383. MSB, старший байт (most significant byte), это грубая половина, а LSB, младший байт (least significant byte), это точная половина. Полное значение равно MSB, умноженному на 128, плюс LSB.

Эта пара входит в стандарт MIDI и встречается в четырёх местах: Bank Select, pitch bend, точное управление через CC и номера параметров RPN и NRPN.

Вычислите значение

MSBLSBЗначение
000
0127127
10128
6408 192, середина
12712716 383, максимум

Один шаг MSB стоит 128 шагов LSB. Многие устройства отправляют и читают только MSB, поэтому большинство регуляторов двигаются 128 шагами.

Используйте их для Bank Select

Program Change достаёт до 128 звуков. Чтобы добраться до большего числа, устройство раскладывает звуки по банкам, а сначала банк выбирает Bank Select.

ПорядокСообщениеБайты на канале 1 (hex)
1CC 0, Bank Select MSBB0 00, затем MSB
2CC 32, Bank Select LSBB0 20, затем LSB
3Program ChangeC0, затем программа

Банк не меняется, пока не придёт Program Change. Если в руководстве банк указан одним числом, это MSB, умноженный на 128, плюс LSB. Сначала отправляйте банк, а программу в последнюю очередь. Остальное разобрано на странице MIDI Program Change.

Найдите их в pitch bend

Pitch bend всегда несёт обе половины в одном сообщении, причём точная половина идёт первой: E0, затем LSB, затем MSB. Середина, то есть отсутствие изгиба, это LSB 0 и MSB 64, то есть 8 192. Pitch bend это единственное распространённое сообщение, которое каждый раз использует все 16 384 шага. Диапазон объясняет страница MIDI pitch bend.

Соедините CC с его точной половиной

У контроллеров от 0 до 31 есть пара на 32 номера выше, которая несёт точную половину. CC 1, колесо модуляции, в паре с CC 33. CC 7, громкость, в паре с CC 39. Устройство, которому нужно более точное управление, отправляет обе, а устройство, которому не нужно, читает только первую. CC от 32 до 63 это точные половины CC от 0 до 31. Все пары показывает список MIDI CC.

Увидьте их в RPN и NRPN

Номеру параметра нужны две половины, чтобы выбрать параметр, и ещё две, чтобы задать значение: CC 101 и 100 либо CC 99 и 98 выбирают, а CC 6 и CC 38 несут MSB и LSB значения. NRPN это две пары MSB и LSB, отправленные одна за другой. Один пример разобран на странице MIDI NRPN и RPN.

Проверьте свои байты

Декодер сообщений MIDI на этом сайте собирает pitch bend из одного значения и показывает обе половины в hex, десятичном и двоичном виде, а вставленные байты Bank Select и Program Change читает обратно словами. Если устройство попадает не в тот банк, проверьте, какая половина по руководству идёт в CC 0, а какая в CC 32. Я делаю InputConfig, бесплатное приложение для Mac, которое отправляет Control Change и Program Change с игрового контроллера, а страница вывода MIDI перечисляет, что именно оно отправляет.

Коротко

  • MSB. Это грубая половина, и каждый шаг стоит 128.
  • LSB. Это точная половина, и каждый шаг стоит 1.
  • Значение. Умножьте MSB на 128 и прибавьте LSB, и получится число от 0 до 16 383.

Два 7-битных байта дают одно 14-битное число.

Вопросы

Как расшифровываются MSB и LSB в MIDI?

Most significant byte и least significant byte, то есть старший и младший байт: грубая и точная половины 14-битного значения, разделённого на два 7-битных байта данных.

Как вычислить значение MIDI по MSB и LSB?

Умножьте MSB на 128 и прибавьте LSB. MSB 1 и LSB 0 дают 128. MSB 127 и LSB 127 дают 16 383.

Что такое Bank Select MSB и LSB?

CC 0 это Bank Select MSB, а CC 32 это Bank Select LSB. Отправьте обе, затем Program Change, чтобы выбрать звук в банке за пределами первых 128.

Обязательно ли отправлять LSB?

Часто нет. Многие устройства используют только MSB. Для Bank Select загляните в руководство: одним устройствам нужны оба байта, другим только один, и они расходятся в том, какой именно.

Что идёт первым, MSB или LSB?

Для Bank Select и номеров параметров MSB обычно отправляется первым отдельным сообщением. Внутри сообщения pitch bend первым идёт LSB.

Почему байты MIDI всего 7-битные?

Старший бит отмечает байт статуса, начало сообщения. В байтах данных он сброшен, и остаются 7 бит с диапазоном от 0 до 127.

Ещё на русском

Подробные руководства на английском

Кто это пишет. Ryleigh Newman разрабатывает InputConfig и каждый день управляет своим Mac с помощью геймпада, потому что руки плохо слушаются. Эта страница переведена с английского. Если на Mac выбран русский язык, основные кнопки и меню приложения показываются по-русски; на этой странице они названы так же, с английским названием в скобках. Остальная часть приложения и сайта на английском языке.

Эта страница на других языках: English, العربية, Čeština, Dansk, Deutsch, Español, Suomi, Français, עברית, Magyar, Bahasa Indonesia, Italiano, 日本語, 한국어, Norsk, Nederlands, Polski, Português, Slovenčina, Svenska, ไทย, Türkçe, Українська, Tiếng Việt, 繁體中文, 简体中文

Загрузить InputConfig в Mac App StoreБесплатно. macOS 14 или новее. Без учётной записи, ничего не покидает ваш Mac. Исходный код на GitHub.