Русский
Что значат MSB и LSB в MIDI?
InputConfig бесплатно доступен в 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.
Вычислите значение
| MSB | LSB | Значение |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 127 | 127 |
| 1 | 0 | 128 |
| 64 | 0 | 8 192, середина |
| 127 | 127 | 16 383, максимум |
Один шаг MSB стоит 128 шагов LSB. Многие устройства отправляют и читают только MSB, поэтому большинство регуляторов двигаются 128 шагами.
Используйте их для Bank Select
Program Change достаёт до 128 звуков. Чтобы добраться до большего числа, устройство раскладывает звуки по банкам, а сначала банк выбирает Bank Select.
| Порядок | Сообщение | Байты на канале 1 (hex) |
|---|---|---|
| 1 | CC 0, Bank Select MSB | B0 00, затем MSB |
| 2 | CC 32, Bank Select LSB | B0 20, затем LSB |
| 3 | Program Change | C0, затем программа |
Банк не меняется, пока не придёт 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, 繁體中文, 简体中文
Бесплатно. macOS 14 или новее. Без учётной записи, ничего не покидает ваш Mac. Исходный код на GitHub.