Русский

Что такое MIDI Program Change?

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

Program Change это сообщение MIDI, которое велит устройству переключиться на другой звук, патч или пресет. Оно несёт одно число от 0 до 127 и больше ничего. Отправьте программу 0 на устройство General MIDI, и получите рояль. Отправьте 40, и получите скрипку. Чтобы добраться до более чем 128 звуков, сначала отправляют Bank Select.

Я делаю InputConfig, бесплатное приложение для Mac, которое отправляет и принимает MIDI, поэтому последние разделы рассказывают, как отправить Program Change с кнопки и как с его помощью переключать раскладки.

Шаги

  1. Найдите номер программы нужного звука в списке патчей устройства.
  2. Проверьте, считает ли устройство программы от 0 или от 1, и вычтите 1, если считает от 1.
  3. Если звук в другом банке, сначала отправьте Bank Select: CC 0, затем CC 32.
  4. Отправьте Program Change на канале, который слушает устройство.

Прочитайте сообщение

ЧастьЗначениеСмысл
Байт статуса0xC0 до 0xCFProgram Change, на каналах от 1 до 16
Байт данныхОт 0 до 127Номер программы

Всего получается два байта. Программа 5 на канале 1 в hex это C0 05. У Program Change нет приложенного значения: номер и есть всё сообщение.

Считайте от 0 или от 1

Сообщение несёт числа от 0 до 127. Многие клавиатуры и списки патчей показывают от 1 до 128. Оба способа описывают одни и те же 128 программ, поэтому рояль это программа 0 в проводе и программа 1 на передней панели. Если включается звук, отличающийся на единицу от запрошенного, два конца считают от разных чисел. Обе колонки рядом показывает список инструментов General MIDI.

Доберитесь до более чем 128 звуков через Bank Select

Program Change выбирает одну из 128 программ в текущем банке. Банк выбирает Bank Select, и он отправляется двумя сообщениями Control Change перед Program Change.

  • CC 0. Bank Select, грубая половина. Многие устройства используют только её.
  • CC 32. Bank Select, точная половина.
  • Затем Program Change. Банк вступает в силу, когда приходит следующий Program Change.

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

Отличите его от Control Change

Program ChangeControl Change
Что делаетПереключает на другой звук или пресетДвигает один регулятор: ручку, фейдер, педаль
Что несётОдно число от 0 до 127Номер контроллера и значение, каждое от 0 до 127
Как частоОдин раз, когда нужна сменаНепрерывно, пока движется регулятор

Program Change выбирает звук, а Control Change его формирует. Все номера контроллеров есть в списке MIDI CC.

Отправьте его с кнопки

На Mac InputConfig отправляет Program Change с кнопки игрового контроллера, клавиши клавиатуры, педали или пэда MIDI через собственный виртуальный порт MIDI. Каждое нажатие вызывает один патч по номеру, считая от 0. Одна кнопка на патч меняет звуки, и рука не уходит с инструмента. Настройка описана на странице Вывод MIDI.

Переключайте раскладки с его помощью

Работает и в другую сторону. Program Change, пришедший с контроллера MIDI, может быть входом в строке InputConfig, где он срабатывает один раз при каждой смене патча, а эта строка может включить пресет. Тогда кнопка патча на контроллере переключает весь набор сочетаний, которые отправляют его пэды. Кнопки патчей на контроллере становятся переключателями раскладок. Об этом рассказывает страница MIDI в нажатия клавиш на Mac.

Коротко

  • Что это. Двухбайтное сообщение, переключающее звуки: статус 0xC0 плюс канал, затем число от 0 до 127.
  • Больше 128. Сначала отправьте Bank Select, CC 0 и CC 32, затем Program Change.
  • Ошибка на единицу. В проводе счёт идёт от 0, а на многих экранах от 1.

Одно число, один канал, и звук меняется.

Вопросы

Что такое сообщение MIDI Program Change?

Двухбайтное сообщение, которое велит устройству переключиться на другой звук или пресет. Первый байт это 0xC0 плюс канал, второй это номер программы от 0 до 127.

Чем отличаются Program Change и Control Change?

Program Change переключает на другой звук и несёт одно число. Control Change двигает один регулятор, например громкость или фильтр, и несёт номер контроллера и значение.

Как выбрать звук выше программы 128?

Сначала отправьте Bank Select, то есть CC 0 и обычно CC 32, затем Program Change. Номера банков, которые использует устройство, указаны в его руководстве.

Почему мой Program Change выбирает не тот патч?

Обычно это ошибка на единицу. Сообщение считает программы от 0, а многие устройства показывают их от 1, поэтому вычтите 1 из номера на экране. Если расхождение большое, устройство в другом банке.

Сколько всего программ MIDI?

128 в каждом банке, с номерами от 0 до 127 в сообщении. Bank Select умножает это на число банков в устройстве.

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

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

Кто это пишет. 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.