Русский

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

Загрузить InputConfig в Mac App StoreЭто приложение полностью бесплатное. Создавать учётную запись не нужно. Нет подписок, нет сложных загрузок, и ничего не заблокировано. Оптимизировано для Apple Silicon.

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.

Редактор InputConfig с двумя строками крестовины, каждая отправляет CC 0, CC 32, а затем Program Change.
Рисунок 1. Bank MSB на CC 0, bank LSB на CC 32, затем 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 перечисляет, что именно оно отправляет.

Live Visualizer InputConfig в режиме MIDI: номер CC ручки и ее значение меняются при повороте.
Рисунок 2. Live Visualizer InputConfig показывает, как номер CC ручки и ее значение меняются при повороте.

Коротко

  • 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)?

CC 0 отвечает за Bank Select MSB, а CC 32 за Bank Select LSB. Отправьте сначала CC 0, затем CC 32, потом 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 выбран русский язык, InputConfig показывается по-русски. Некоторые страницы сайта пока есть только на английском.

Эта страница на других языках: English

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