Сообщение Panic

  • Автор темы Автор темы Gregory
  • Дата начала Дата начала

Gregory

Active Member
17 Май 2005
494
55
28
57
Санкт-Ленинград
www.dubrovenko.ru
Вот, заинтересовался вопросом, как лучше передать сообщение типа "Panic" (что бы обресетить синт, если он завис).
У кого есть опыть по данному вопросу?
Вот Кейк например, передаёт только канальные сообщения Элл Нотэ Офф и Ресет Элл Контроллерс, Питч и ещё зачем-то (ведь Ресет и так вроде должен их скинуть) некоторые основные контроллеры.
Что-нибудь на вроде Систем Ресет я там не видел.

И попутно вопрос относительно сообщений Сонг Селект и Сонг Позишен.
Скольки байтные они должны быть? В разных источниках по-разному.
 
Вот, заинтересовался вопросом, как лучше передать сообщение типа "Panic" (что бы обресетить синт, если он завис).
У кого есть опыть по данному вопросу?

А зачем вообще нужно этим заморачиваться? Тумблер (кнопка) питания ВЫКЛ-ВКЛ, и всех делов.
 
Окей, давайте конкретно.
По Вашему второму вопросу:
В спецификации миди-сообщений четко определено: сонг селект - 2 байта, сонг-позишин - 3 байта.
Если в спецификации к какому-нибудь инструменту производитель указывает другое, значит он просто не придерживается стандарта.
По первому вопросу:
Вы там не увидели Систем Ресет. А как же в подразделе System Real-Time Messages команда "FF" - Reset. Не оно?
 
"Ты, Зин, на грубость нарываешься!" :confused:
Когда читать-то научимся уже?
По-русски, вроде написано:
В разных источниках по-разному
И где в Кейкволке Вы видели "подраздел System Real-Time Messages"?

Дабы избежать дальнейшего усиленного флуда, будем считать вторую часть вопроса закрытой.
 
Есть хороший цикл русскоязычных статей на тему миди. Не знаю, видели ли Вы их или нет. Вот ссылка на третью часть цикла, где, похоже, содержится ответ на ваш 1-й вопрос.
http://www.muzoborudovanie.ru/articles/midi/midi3.php
Цитата оттуда:
"Предусмотрено также сообщение глобальной инициализации (сброса) — System Reset (категория Real Time, статус-байт 0xFF). Оно дает команду устройству перейти в то состояние, которое было после включения питания. То есть гасятся все звучащие ноты, секвенсор (если он есть) останавливает воспроизведение и переходит к началу песни, включается локальное управление (Local Control On), сбрасывается текущий Running Status, устройство переходит в какой-либо из начальных MIDI-режимов. Кроме того, все настройки инструмента, которые не были сохранены в постоянной памяти, стираются. Одним словом, это сообщение — довольно жесткий аналог кнопки "паника". Время его отрабатывания может быть довольно большим (особенно если происходит перезагрузка операционной системы инструмента). Спецификация требует, чтобы это сообщение посылалось только в том случае, если музыкант непосредственно нажимает кнопку сброса, и не посылалось автоматически (например, будучи записанным в секвенсор). "
Выделено жирным текстом с подчеркиванием мною.
Мне кажется, что именно в этом причина того, что секвенсоры (Cakewalk, Cubase) не предоставляют возможности посылать данный тип сообщений.
 
Спецификация требует, чтобы это сообщение посылалось только в том случае, если музыкант непосредственно нажимает кнопку сброса, и не посылалось автоматически (например, будучи записанным в секвенсор)
Проблема в том, что Кейк посылает данные сообщения как-раз при "если музыкант непосредственно нажимает кнопку сброса".

Летят Шерлок Холмс с Ватсоном на воздушном шаре. Заблудились.
Смотрят, мужик пасёт овец.
- Сэр! Где мы находимся?
- На воздушном шаре, - подумав отвечает мужик.
Летят дальше.
- Странная местность, Ватсон. Программист пасёт овец.
- С чего Вы взяли, что он - программист?
- Это - элементарно, Ватсон. Во-первых, он долго думал, прежде чем ответить. Во-вторых, его ответ был абсолютно точным, и, в-третьих, абсолютно бесполезным.
 
Исходя из ваших сообщений, трудно понять, в чем проблема.
Какой конкретно зависший синт (модель) Вы хотите "обресетить"? Стандартной команды секвенсора типа Panic вам недостаточно? И Вы хотите послать из Кейкволка на зависший синт миди-сообщение System Reset (код FF)? Я правильно понял?
Я не знаю, как в Cakewalk (не использую), но Cubase такой возможности не предоставляет. Единственная возможность - это попытаться внедрить в тело sysex-сообщения байт FF и послать его на синт. Сложность в том, что Кубейс не дает возможности присвоить байту в теле sysex значение FF (как, кстати, и предписано в спецификациях).
И еще проясните. Вы говорите, что Кейк посылает данные сообщения как раз при "если музыкант непосредственно нажимает кнопку". О какой конкретно кнопке и о каком сообщении речь? System Reset?

И, кстати, анектод под спойлером абсолютно в точку. Я по образованию инженер-программист. Занимался в том числе и программированием контроллеров. Правда, не в области музыкального оборудования.
 
трудно понять, в чем проблема
Это, уж простите, потому, что Вы слишком узко мыслите, и пытаетесь всё сразу привязать к чему-то конкретному. Но, как заметил, это - беда всех программистов. Я, когда на работе, с ними говорить начинаю, примерно такие же диалоги получаются.
Вспомните просто, что передатчиком МИДИ-команд может быть не только Кейк с Кубом, но и какой-нибудь миди-файлер, или миди-клавиатура и т.д. Которые кто-то разрабатывает.

О какой конкретно кнопке и о каком сообщении речь?
Раньше (за сейчас не скажу) в Кейке была кнопка "Panic", при нажатии на которую, посылались команды указанные в первом посте (причём, если память не изменяет, если треки были задействованы для нескольких МИДИ-каналов, сообщения дублировались и для них).
А в Кубе такой кнопки нет? А что там есть?

Насчёт состава этих команд, моя версия такова: что сообщение Систем Ресет сбрасывает вообще все настройки, в то время, как в/у команды только выключают ноты и дефолтят контроллеры, а некоторые "персональные" посылки контроллерам, видимо из-за того, что эти контроллеры являются "архиважными", а спецификация не обязвает производителя к определённому дефолту.
 
Раньше (за сейчас не скажу) в Кейке была кнопка "Panic", при нажатии на которую, посылались команды указанные в первом посте (причём, если память не изменяет, если треки были задействованы для нескольких МИДИ-каналов, сообщения дублировались и для них).
А в Кубе такой кнопки нет? А что там есть?
В Кубе есть пункт меню MIDI/Reset. И действие этой команды аналогично тому, что Вы описываете для Кейкволк. "The Reset function on the MIDI menu sends out note-off messages and resets controllers on all MIDI channels."

И все-таки. Если Вы не считаете нужным конкретизировать ситуацию, при которой Вам недостаточно команд All Notes Off и Reset Controllers, которые можно послать в синт из любого секвенсора, то тяжело что-либо советовать конкретно. Если же мыслить широко, тогда совет такой: найдите способ отправить в синт команду Reset (байт с шестнадцатиричным значением FF). Она должна заставить все приемники этой команды в системе перейти в состояние "после включения питания".
 
И дались же Вам эти секвенсоры. :D
Вы первым начали с Кейкволка. :D

Вы можете перечислить реальные команды (посмотрев их какой-нибудь тестилкой)?

Прилагаю файл с записью команды Panic Reset, сделанный программой MIDI-OX (сама команда посылалась также этой прогой).
Записать лог кубейсовской команды не получается. Да и не вижу смысла извращаться, там будет то же самое.
 

Вложения

там будет то же самое
С чего Вы это взяли?
Как видим посылки Кейка и Окса здорово отличаются.
Как вижу, они Экспрешен считают более важным, чем Панораму. :)
А вот каждую ноту, в каждом канале выключать, по-моему, уже перебор. :rolleyes:
 
А вот каждую ноту, в каждом канале выключать, по-моему, уже перебор. :rolleyes:
Полностью тут соглашусь.
Кстати, выполнение самой команды длилось по времени не менее 20 сек. (специально не засекал).

Завтра, если ничего не помешает, попробую перекоммутировать свое муз. хозяйство и сделать лог из-под Кубейса.
Правда, обещать не буду.
 
Сделал логи команды MIDI/Reset Кубейса и лог команды AllNoteOff, выдаваемой моей миди-клавиатурой Arturia Analog Expirience The Laboratory 61.
Отличие Кубейсовской команды от Оксовской действительно, более, чем существенно.
У меня Кубейс и MIDI-OX стоят на одном компе. Просто, чтобы с Куба послать что-то на Оксу пришлось переключить миди-кабель на аудиоинтерфейсе (с midi out непосредственно в midi in), так как мультиклиентными драйверами типа Hubi's Loopback или MIDI Yoke не пользуюсь, нет потребности, да и желания разбираться тоже.
Тема с разработкой конечно интересная, но для сильно увлеченных энтузиастов.
 

Вложения

Отличие Кубейсовской
Ну, в Оксе перестраховались "по полной".
А в Кубе, гляжу, ещё Эфтерточ канальный добавили.
Кстати, а видел ли кто-нибудь клавиатуры с полифоническим Эфтерточем?

лог команды AllNoteOff
Собственно большего ждать от неё и не следовало.

для сильно увлеченных энтузиастов
Ой, да перестаньте.
Надо просто руки из нормального места и понимание того, что делаешь.
Ну, и желание, разумеется.
 
А в Кубе, гляжу, ещё Эфтерточ канальный добавили.
Кстати, а видел ли кто-нибудь клавиатуры с полифоническим Эфтерточем?
Из мидиклав в Edirol PCR-800 такая фишка есть, клавиатура снята с производства, но на барахолках найти можно. А воспроизводить (распознавать) сообщения poly aftertouch могут, например Motif XF и Korg Kronos, правда клавиатура этих аппаратов этот вид послекасания не поддерживает, только mono.
 
@TDream, да нет, к сожалению это Вы ошибаетесь: стр 44 мануала сабжа:
Aftertouch 2.PNG
 
@TDream, да нет, к сожалению это Вы ошибаетесь: стр 44 мануала сабжа:

dimapet! Неужели Вы думаете, что фирма Roland просто забыла упомянуть на главной странице, посвященной своему продукту, о такой крутейшей особенности клавиатуры, как поддержке функции Polyphonic Aftertouch. Да в мире наберется не больше десятка инструментов с поддержкой этой функции (причем за всю историю синтезаторостроения). Я лично в такое никогда не поверю.
На самом же деле, если Вы внимательно изучите мануал (хотя бы две страницы до и одну после той, которую приводите постом выше), то поймете, что назначить значение Polyphonic Aftertouch можно только контроллерам (в частности кнопкам-пэдам [A1]–[A9] or [B1]–[B9]), но не клавиатуре, которая в свою очередь передает только channel aftertouch. И нигде Роланд не дает информации об обратном.
Даже на 44 странице вверху мелким шрифтом читаем: "Here’s how to assign an aftertouch message to a controller". А на стр. 5-7 руководства определяются все контроллеры.
 
Последнее редактирование:
@TDream, если мы говорим об одном и том же :). то, в зависимости от программы, заложенной в синтезатор, сообщение Aftertouch позволяет управлять громкостью и даже оттенком звука. Сообщение Aftertouch имеет варианты Key Aftertouch и Channel Aftertouch. Channel Aftertouch реализует единый уровень давления для всей клавиатуры. Key Aftertouch обеспечивает различные уровни давления для каждой клавиши на клавиатуре. Key Aftertouch, это и есть пресловутое полифоническое послекасание - отдельно для каждой клавиши. А послекасание - само по себе и есть контроллер, который можно назначить на управление чем угодно, что позволяет сабж (DAW или VSTi) - (срез фильтра, резонанс, и т.п..)
В данном случае с этой клавиатурой - Key (polyphonic) aftertouch поддерживается - смотрите MIDI Implementation Chart:
AfterTouch.PNG


Aftertouch 3.PNG
 
Последнее редактирование:
@dimapet, все правильно говорите, я со всем согласен. Единственное что хочу уточнить:
Миди-сообщение Polyphonic Key Pressure (Aftertouch) может генерироваться в данной клавиатуре только контроллерами (т.е. Кнопками, фэйдерами, крутилками), если пользователь запрограммирует такое поведение контроллеров. Но не генерируется от нажатия на клавиши. Клавиши генерируют только миди-сообщения типа Channel Pressure. А в Midi Implementation Chart указывается только, что устройство вообще способно генерировать оба типа миди-сообщений, при этом не уточняется каким элементом (клавишами или контроллерами).
 
Возможно, и так, я не владелец данной клавиатуры, но судя по тому же мануалу нажимается кнопка 9 (Aftertouch) - Edit - и выбирается один из 4 режимов Aftertouch: Advanced editing 2 - Polyphonic Key Pressure передается только через MIDI порт 1 c диапазоном 1-127
Advanced editing 3 - оно же передается через порт 1, порт 2 или оба с назначаемым верхним и нижним значением диапазона чувствительности. Первые два режима - передается "давление канала" (та же стр 44). Ну не нашел я в мануале упоминания о том, что крутилками передается миди сообщение aftertouch. Потому как само назначение и фишка aftertouch именно в реакции на дожатие клавиш.
Aftertouch в мануале упоминается только, как один из 50 контроллеров, который может быть использован:
The PCR-300/500/800 has a total of fifty controllers: [R1]–[R9], [S1]–[S9], [A1]–[A9], [B1]–[B9], [C1]–[C3], [L1]–[L4], [H1]–[H2], [P1]–[P2], [BEND], [MOD], and [AFTERTOUCH].
You can freely assign the MIDI message that will be transmitted by each of these controllers. You need to use Edit mode to make MIDI message assignments. This section explains how
to assign MIDI messages to the controllers using the PCR keyboard.
 
Предлагаю на этом завершить обсуждение возможностей конкретной миди-клавиатуры, поскольку это выходит за рамки темы, поднятой автором Gregory.
 
  • Like
Реакции: Verda Lumo
Да не спорьте вы... Я как обладатель скажу Вам, для того чтобы сделать channel aftertouch аккордом на этой клавиатуре нужно быть как минимум Халком, а чтобы сделать полифоник афтертач нужно наверное быть буддой. Ну очень сильно нужно нажать (если аккорд, если одним пальцем, то терпимо). Полифоник афтертач сделать невозможно исходя из физ. особенностей человека. Хотя можт они этим и мотивируют... Мол есть, но если твоей силы не хватает, то это твои проблемы :)
 
  • Like
Реакции: Verda Lumo

Сейчас просматривают