Как отключить chasing MIDI note-ons?

mousepunk

New Member
4 Ноя 2021
8
0
1
44
Приветствую, коллеги.

Я настроил в проекте плейбека дорожку для автоматизации управления гитарным процессором. Дорожка идет параллельно плейбеку для десятка песен. Соответственно если я включаю 9 песню, то рипер мне отправляет 5-6 миди сообщений из предыдущих midi айтемов. Понятно для чего это так делается, но в моем кейсе это не требуется. Я нашел несколько менюшек, где есть возможность отключить chasing MIDI, но это отключение как будто не работает, по крайней мере, миди события как отправлялись, так и продолжают отправляться. Возможно эта функция может быть отключена где-то глобально?

Заранее благодарю за помощь.
 
@mousepunk, Почему бы не расположить десяток песен в длину, чтобы перемещаться между ними маркерами 1-0? Было бы понятней если бы был скриншот для иллюстрации.

Или может просто надо мидиканалы настроить? Чтобы не на все каналы отправлялись сообщения, а только туда куда нужно.
 
@mousepunk, Почему бы не расположить десяток песен в длину, чтобы перемещаться между ними маркерами 1-0? Было бы понятней если бы был скриншот для иллюстрации.

Или может просто надо мидиканалы настроить? Чтобы не на все каналы отправлялись сообщения, а только туда куда нужно.

Этот десяток песен в длину и расположен. Представьте, сколько миди сообщений перед курсором плейбека, если например включаешь 9 песню, все эти миди сообщения летят на проц и он начинает сходить с ума :)

Ну какие тут миди каналы настроишь? Любое устройство может быть настроено либо на конкретный канал, либо на слушание всех каналов сразу. В обоих случаях на устройство будут лететь все сообщения разом.

Вы можете легко воспроизвести проблему о которой я говорю: в совершенно чистом проекте поставьте пару-тройку миди айтемов с PC и СС сообщениями на одну дорожку, а потом поставьте курсор между ними и нажмите play. миди монитор вам покажет, что рипер отправил все сообщения содержащиеся слева от курсора. Насколько я могу понять, так работает функция Chase MIDI note-ons, которую я и пытаюсь понять как отключить.
 
Последнее редактирование:
@mousepunk, а что, если просто сделать паузу между айтемами? Или обнулить PC и СС в конце каждой композиции? Вероятно, курсор захватывает последний тик с айтема, что слева. На сколько я знаю, Chase работает только для нот, но не для PC и СС сообщений - последние непрервыны и ими легко управлять.
 
@mousepunk, а что, если просто сделать паузу между айтемами? Или обнулить PC и СС в конце каждой композиции? Вероятно, курсор захватывает последний тик с айтема, что слева. На сколько я знаю, Chase работает только для нот, но не для PC и СС сообщений - последние непрервыны и ими легко управлять.
Под паузами между айтемами вы что имеете ввиду? Просто пустые расстояния? Если да, то я конечно так и делаю ) В том-то и прикол, что даже если вы располагаете курсор на пустом месте, где от любого айтема может быть по 10 секунд, Рипер всё равно отправит сообщения из предыдущих айтемов. И PC и CC.

Обнулить PC и CC – каким образом? Рипер опять же автоматом ставит в конце каждого айтема сообщение MIDI note-off, видимо как раз для этого?
 
Обнулить PC и CC – каким образом?
Пример: если нарисовать контроллер педали cc64 со значением 127 и проиграть его один раз, то он будет активен на треке всё время, пока курсор не пройдёт ещё раз через cc64 со значением 0. Контроллеры это не ноты, у них нет длительности и chase для них не работает. Они сами по себе "звучат" всё время после назначения и "активации" плейкурсором.
 
Пример: если нарисовать контроллер педали cc64 со значением 127 и проиграть его один раз, то он будет активен на треке всё время, пока курсор не пройдёт ещё раз через cc64 со значением 0. Контроллеры это не ноты, у них нет длительности и chase для них не работает. Они сами по себе "звучат" всё время после назначения и "активации" плейкурсором.

Правильно ли я вас понимаю, что вы предлагаете каждое СС сообщение переводить в значение 0 и таким образом его "обнулять"? Но любое устройство воспринимает нулевое значение любого CC сообщения тоже как инструкцию для выполнения, а мне как раз не надо, чтобы лишние команды отправлялись на устройство. Скажем, лупер в процессоре при значении 0 начинает запись, а мне надо, чтобы он стартовал там, где мне это надо.

А PC сообщение вообще не имеет дополнительного значения, как его "обнулять"?
 
@mousepunk, "обнулять" = "возвращать в исходное значение".

Вот я отправил СС 11 со значением 1 и PC 3. Что мне сделать, чтобы эти команды заново не отправлялись, если курсор стоит уже после миди айтема с этими командами? Какие конкретные действия нужно совершить?
 
Что мне сделать, чтобы эти команды заново не отправлялись, если курсор стоит уже после миди айтема с этими командами?
Не знаю. На моём опыте cc значения отправляются всегда. Как я уже говорил выше.
 
Хорошо, а с pc значениями у вас как? Тоже всегда отправляются?
Не проверял. Но если логически прикинуть - а как по другому, как и с CC? После того, как параметр задан, он не может "перестать быть заданным". Программа не может угадать дефолтное значение управляемого устройства до того, как был задан контроллер. А когда значение установлено, дальше остаётся только им управлять. Я за десятки лет не встречал другого поведения миди.
 
Не проверял. Но если логически прикинуть - а как по другому, как и с CC? После того, как параметр задан, он не может "перестать быть заданным". Программа не может угадать дефолтное значение управляемого устройства до того, как был задан контроллер. А когда значение установлено, дальше остаётся только им управлять. Я за десятки лет не встречал другого поведения миди.

"Программа не может угадать дефолтное значение управляемого устройства до того, как был задан контроллер." – программе не надо ничего угадывать. Текущее состояние программы – положение курсора. Программа же не проигрывает всю аудиоинформацию из предыдущих участков открытых дорожек, она начинает ровно с текущего места. Программа узнает, какие значения миди были установлены незадолго до положения курсора, специально, и принудительно их отправляет еще раз. Я понимаю зачем – чтобы если есть какие-то синты и прочие автоматизированные эффекты, и они звучат в данном отрезке, чтобы они звучали как полагается. Но это не единственный сценарий использования MIDI. Программа должна уметь отрабатывать миди дорожку как простую последовательность команд, расположенных во времени. Я удивлён, что мне приходится это объяснять.

Возьмем, например забитую барабанную дорожку. Сотни сообщений, pc, cc, ноты. Начинаем играть дорожку не с начала и получаем все удары разом из предыдущего куска дорожки? Это вы считаете нормальное поведение миди?
 
Я уже путаться начинаю.

На что я отвечал (Проверял, воспроизводится. Всегда так было, и в Сонаре тоже):
Вы можете легко воспроизвести проблему о которой я говорю: в совершенно чистом проекте поставьте пару-тройку миди айтемов с PC и СС сообщениями на одну дорожку, а потом поставьте курсор между ними и нажмите play. миди монитор вам покажет, что рипер отправил все сообщения содержащиеся слева от курсора.

Но если в итоге проблема в
получаем все удары разом из предыдущего куска дорожки
Это уже другой случай. И вопрос всё же про ноты, не про контроллеры.
 
Я уже путаться начинаю.
вы запутались уже несколько раз в собственных ответах. Изначально вы предложили сделать паузы между айтемами и каким-то образом "обнулить" СС и PC сообщения, а потом вы сказали, что никак по-другому и не может быть: "Программа не может угадать дефолтное значение управляемого устройства до того, как был задан контроллер."

Давайте тогда подождем ещё кого-то, может кто знает получше нас с вами, о чем идет речь.
 
Я нашел несколько менюшек, где есть возможность отключить chasing MIDI, но это отключение как будто не работает, по крайней мере, миди события как отправлялись, так и продолжают отправляться.
Наконец-то исправлено:
Код:
v6.75+dev0210 - February 10 2023
  + MIDI: global option to not chase MIDI note-ons also prevents chasing of MIDI CC/PC/pitch
 
  • Like
Реакции: carevgen
Наконец-то исправлено:
Код:
v6.75+dev0210 - February 10 2023
  + MIDI: global option to not chase MIDI note-ons also prevents chasing of MIDI CC/PC/pitch

Здравствуйте.
у меня абсолютно та же проблема.
я не очень образован в коде.
могли бы вы объяснить, как использовать этот код?
 
я не очень образован в коде.
могли бы вы объяснить, как использовать этот код?
Это не код, а отчет о проделанной работе в указанной версии


У меня Версия 6.82 и проблема присутствует

Значит эта ветка, по которой отчет, до сих пор не вошла в релизную версию. на сайте
245857
можно скачать нужную вам версию
 
Наконец-то исправлено:
Код:
v6.75+dev0210 - February 10 2023
  + MIDI: global option to not chase MIDI note-ons also prevents chasing of MIDI CC/PC/pitch

эти обновления(если они случились в версии 7) не решают в итоге описанную проблему.
chase обнуляется по кнопке stop, но оно вроде так и было, во всяком случае в 6.8. Но при нажатии play в любой точке Таймлайн, предыдущие по Таймлайн CC события улетают midi out вновь.

Ещё раз:
описаная изначально задача не решаема сама собой увы.
когда стартуешь между CC сообщениями, получаешь на миди выходе значения CC команд, прописанных слева от курсора.
как вариант, прописать play/stop именно нотами, а не CC командами и посылать/принимать отдельным миди-каналом.
 
когда стартуешь между CC сообщениями, получаешь на миди выходе значения CC команд, прописанных слева от курсора.
В Сонаре такое же поведение. Как минимум, в контроллере 64. Выглядит логичным и это не похоже на баг.
 

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