Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы MIDI 2.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
210.32 Кб
Скачать

Команды звука

Команды звука заимствованы из базового набора команд существующих систем компьютерного управления звуковыми программами. Набор команд звука приведен в таблице на рис. 15. Все команды, кроме GO/JAM_CLOCK, SET_CLOCK, OPEN_CUE_PATH и CLOSE_CUE_PATH, содержат один байт данных — номер списка сцен.

Команда GO/JAM_CLOCK (0x10), рис. 16, запускает указанную сцену на выполнение, а также переводит таймер устройства в значение сцены "Go Time", если сцена является автоматически исполняемой по времени. Если сцена запускается вручную, сообщение игнорируется.

Команда STANDBY_+ (0x11) переводит следующую по порядку сцену в состояние готовности к выполнению. Если параметр Q_list не указан, используется открытый список сцен. Команда STANDBY_- (0x12) — предыдущую сцену списка. Команда SEQUENCE_+ (0x13) переводит в состояние готовности следующую сцену уровнем выше. То есть сцену, имеющую первый номер в группе больше, чем у текущей сцены. Например, если сцена 29.324.98.7 находилась в состоянии готовности, а следующие по списку сцены имели номера 29.325, 29.4, 29.7, 29.9.876, 36.7, 36.7.832, 36.8, 37. и 37.1, то после команды SEQUENCE_+ будет переведена в режим готовности сцена 36.7. Если параметр Q_list не указан, используется открытый список сцен. Все то же, с точностью до наоборот, применимо к команде SEQUENCE_- (0x14). В вышеуказанной последовательности, если текущая сцена имела номер 37.4.72.18.5, то в результате команды SEQUENCE_- будет переведена в состояние готовности сцена 36.7. Команда START_CLOCK (0x15) включает таймер устройства. Таймер продолжает отсчет времени с того значения, на котором он был последний раз остановлен. Команда STOP_CLOCK (0x16), соответственно, останавливает таймер. Команда ZERO_CLOCK (0x17) сбрасывает таймер в значение 00:00:00:00, не влияя на его состояние, — включен или выключен. Команда SET_CLOCK (0x18), рис. 17, устанавливает таймер в определенное значение, переданное в стандартном формате времени. На состояние таймера также не влияет.

Команда MTC_CHASE_ON (0x19) переводит таймер на работу от водящего таймкода. Если при получении этой команды таймкод в устройство не поступает, таймер продолжает работать в обычном режиме (в остановленном или запущенном состоянии). Команда MTC_CHASE_OFF (0x1A) отключает таймер от входящего таймкода. При получении этого сообщения таймер возвращается в то запущенное или выключенное состояние, которое было до приема сообщения MTC_CHASE_ON. Команда OPEN_CUE_LIST (0x1B) открывает указанный список сцен, то есть включает все сцены списка в текущее шоу. Команда CLOSE_CUE_LIST (0x1C) закрывает список. Команды OPEN_CUE_PATH (0x1D) и CLOSE_CUE_PATH (0x1E) содержат один байт данных — номер пути. Первая команда открывает указанный путь, делая его доступным для шоу, то есть для всех остальных команд MSC. Вторая команда исключает путь из шоу.

7. Midi Show Control. Часть 2

Двухэтапное подтверждение (2PC, Two Phase Commit) — это особый метод взаимодействия устройств, при котором все команды подтверждаются и до выполнения, и по завершении. Технически — это набор команд, расширяющих базовую версию протокола MIDI Show Control. Этот набор появился в 1996 году и описан в документе RP-014, выпущенном организацией MMA. Вместе с исходной спецификацией MSC (документ RP-002) он образует новую версию протокола (MIDI Show Control 1.1). При разработке метода 2PC стояла непростая задача — обеспечить связь нескольких устройств закрытой архитектуры друг с другом, при которой все они работают согласованно либо не работают совсем, независимо от наличия ошибок в коммутационных каналах. Задача была решена с использованием двух фаз (этапов) в коммуникации. На первом этапе все стороны соглашаются о том, что должно быть сделано. На втором этапе стороны реализуют это соглашение и сообщают о результатах. Метод двухэтапного подтверждения напоминает метод сценической координации, применяемый при взаимодействии стейдж-менеджера и оператора устройства. Первая фаза — ожидания (STANDBY), соответствует команде "приготовиться". Вторая фаза — "выполнить" или "пошел" (GO). Метод 2PС предлагается использовать для тщательно спланированных шоу и тогда, когда в целях безопасности требуются дополнительные проверки и избыточность в механизмах управления (например, при работе с машинерией или пиротехникой). При этом обеспечиваются проверка данных и обнаружение ошибок в коммутационных каналах. 2PC требует взаимной коммутации устройств. Это значит, что, кроме соединения главного контроллера с контролируемым устройством, требуется и обратное, то есть MIDI-выход пульта управления прибором соединяется с MIDI-входом главного контроллера. Команды 2PC образуют четвертый рекомендованный набор (о первых трех см. предыдущую статью), он приведен в таблице на рис. 1.

Спецификация предполагает, что в системе 2PC около каждого контроллера и контролируемого устройства присутствует человек-оператор, который называется в данном случае "локальный оператор". Локальный оператор может просто наблюдать за процессом, либо выполнять дополнительную проверку безопасности и ручное вмешательство в управление при сбое оборудования. Предполагается, что локальный оператор выполняет свои функции через специальную панель управления (пульт или схожий интерфейс), который называется "интерфейс локального оператора".