Roland FR3xb и контроллер№11, который он выдаёт наружу

Тема в разделе "Roland", создана пользователем V_ad_im, 2 май 2011.

  1. BAYANBAYAN

    BAYANBAYAN Active Member

    Регистрация:
    4 мар 2010
    Сообщения:
    262
    Симпатии:
    90
    Спасибо за ответ! Надеюсь, что вы сможете доделать этот кондиционер. Удачи и всех благ!!!
     
  2. BAYANBAYAN

    BAYANBAYAN Active Member

    Регистрация:
    4 мар 2010
    Сообщения:
    262
    Симпатии:
    90
    @V_ad_im, Здравствуйте! Обращаюсь еще раз к Вам с просьбой по поводу кондиционера. Может выложите хоть какой-нибудь вариант, если что-то не так работает, ничего страшного. Пытался разобраться в Plogue, но не понял, какими средствами это можно сделать. Очень надеюсь на Вас.
     
  3. V_ad_im

    V_ad_im Well-Known Member

    Регистрация:
    31 окт 2006
    Сообщения:
    1.802
    Симпатии:
    974
    Пол:
    Мужской
    Здравствуйте! прикрепил сюда простенькую версию из первых, в ней толком удобств ещё не было, но зато она меньше глючила.
    Я примерно понял некоторые недостатки Бидуле - дело в самой Бидуле, в том каким образом в ней происходит обработка миди событий. Она попросту не успевает их обрабатывать, особенно если несколько нот (аккорд) приходит на один миди-тик.. Поэтому в настоящий момент, когда выдаётся время, подбираюсь поближе к матчасти, чтобы написать для бидуле пару-тройку модулей на C++, чтобы, в частности, кондиционер заработал без глюков и с меньшей задержкой. Так что я сейчас пытаюсь решить эту проблему несколько более технологичным методом.

    В зипе два файла - для запуска в стендалонном Бидуле и, как вариант, для запуска внутри Бидуле-VSTi.
    Надо вместо входного моего порта вам указать (вставить) свой (к которому подключен баян по миди). в итоге на треке в кубейсе появится дополнительные 4 входных порта - выходы из Бидуле: Right (правая клавиатура баяна), Bass, Chord (аккорды) и Elective (выборка).
    Ещё тут есть возможность скопировать сообщения меха (CC11) на контроллер модуляции СС01 - для некоторых инструментов может пригодиться. Чтобы это работало, правый ремэппер надо перевести в режим байпас. Чтобы работало с ремеппером - перевести его в режим Processing. Чтобы сообщения меха не отсылались на СС1, перевести его в режим Mute.

    Да, и ещё такой момент. Наличие отдельных 4 портов-входов с баяна - это с одной стороны удобно, но есть и другая сторона - если вы пользуетесь ретроспективной записью в кубейсе, она перестанет работать, точнее будет работать с глюками. Это из-за того, что она будет получать сигнал сразу с 4х портов баяна. Поэтому, либо мьютировать в бидуле ненужные порты, либо не использовать в кубейсе ретроспективную запись. Пока что не реализовал обход этого неудобства (хотя есть некоторые идеи).
     

    Вложения:

    Последнее редактирование: 23 мар 2018
    BAYANBAYAN нравится это.
  4. dr-music

    dr-music Well-Known Member

    Регистрация:
    8 апр 2007
    Сообщения:
    885
    Симпатии:
    1.264
    Пол:
    Мужской
    Адрес:
    Moscow
    А если через Bome Translator? Кажется, эту программу невозможно загрузить так, чтобы она что-то не успела. Да и работы тут (если я верно представляю задачу, V-баяна-то у меня нет) на час максимум.
    Могу описать алгоритм, как я его вижу.
    Последнее значение СС11 запоминается в переменной. Каждое следующее событие сравнивается с записанным в переменную и запускает многократный таймер с количеством повторов в разницу между значениями СС. Таймер посылает СС11 с шагом 1. Таймер в Bome выставляется по миллисекундам (не знаю, какое значение подойдет – 1, 2. 3...). Еще каждое новое сообщение СС11 на входе (полученное с баяна) должно убить предыдущий таймер (на случай, если он еще не закончил работу). Вот вроде и все.
     
  5. V_ad_im

    V_ad_im Well-Known Member

    Регистрация:
    31 окт 2006
    Сообщения:
    1.802
    Симпатии:
    974
    Пол:
    Мужской
    не совсем понял - а что собой представляет этот таймер?

    Задача такая:
    1) посчитать две разницы между значениями A и B (временнУю TimeDelta и разницу значений СС ValueDelta)
    2) Посчитать, сколько условных временных отсчётов (Step) помещается во временнОй разнице TimeDelta: StepQuant = (TimeDelta/Step)
    3) Поделить ValueDelta на StepQuant - получаем число StepDelta, которое на которое надо прибавлять значение на каждом шагу
    4) Построить интерполяцию из количества шагов = StepQuant, начиная от первого значения (A), заканчивая последним (B), каждый раз прибавляя StepDelta

    Можно такое сделать с таймером?
    В планах ещё сделать не только простую интерполяцию, но и , как вариант, кубические сплайны или кривую Безье (см картинку)

    если так делать, то мы получим обрыв нашей плавной горки и резкий скачок к следующему значению..
     

    Вложения:

    Последнее редактирование: 24 мар 2018
  6. BAYANBAYAN

    BAYANBAYAN Active Member

    Регистрация:
    4 мар 2010
    Сообщения:
    262
    Симпатии:
    90
    @V_ad_im, Спасибо, что откликнулись и поделились этой версией. Буду пробовать. Сейчас перехожу на Рипер, так что с кубейсом вопрос пока не актуален.
     
  7. dr-music

    dr-music Well-Known Member

    Регистрация:
    8 апр 2007
    Сообщения:
    885
    Симпатии:
    1.264
    Пол:
    Мужской
    Адрес:
    Moscow
    Пара вещей, которые я не понимаю.
    Это же все должно делаться внутри контроллера («микросхемы») внутри баяна, не? ADC оцифровывает с битовой избыточностью (ну, скажем от балды, 4096 значений) датчик давления (мехА баяна), а после контроллер цифровым образом фильтрует данные, кладет их на сетку из 128 уровней (согласно заданной кривой) и формирует MIDI события. После формирования MIDI-событий (сс11) той избыточной информации, полученной при оцифровке датчика, уже нет, и сплайны с Безье будут уже чистой химией.
    Это если информация, например, записана в DAW. А как брать TimeDelta в реалтайме? Любой алгоритм будет применяться уже после наступления второго (последующего) события.

    Я представляю проблему так. Пришло сообщение сс11=4. А следующее идет сс11=9, т.е. с разрывом, хотя предполагалось плавное движение.
    Bome Translator работает с MIDI, а не с данными ADC, поэтому функций из «настоящей математики» в нем нет. Но есть все арифметические функции (+ - / * mod...) и логические функции (or, xor, and, shift...). В Bome можно писать строки условия (if... then...), делать переходы (goto) и всю прочую скриптовую шнягу.

    То, что я предлагал в предыдущем посте, выглядит так. Пришло сообщение сс11=4 – записалось в переменную. Пришло следующее сс11=9 – Bome посчитал ValueDelta и запустил многоразовый таймер, который ВМЕСТО сс11=9 пошлет 9-4=5 раз сс11 с шагом +1 (5, 6, 7, 8, 9) и временным интервалом в несколько <=1, 2, 3...> миллисекунд. Разумеется, это тоже будет с опозданием, но оценить приемлемость задержки можно только тактильно.
    Можно задать разный шаг для разных ValueDelta. Например, если ValueDelta>16 и <32, то таймер будет работать с шагом +/-2, если ValueDelta>32 и <64, то с шагом +/-4. Можно сколько угодно создавать таймеров и условий.
    Упомянутое убийство таймера (kill timer) это чисто техническая вещь. Если пришло третье сообщение в то время, когда таймер еще отрабатывает разницу между первым и вторым, то таймер просто перезапустится от последнего отработанного значения.

    Другой алгоритм – «тупо» создать таблицу типа:
    if cc11<3 then cc11=1
    if cc11<5 then cc11=2
    и т.д.. Т.е. просто перенести возможные разрывы в нижнем диапазоне значений в другой, менее чувствительный диапазон. Опять же, без тактильной проверки баянистом цифры останутся спотолочными.

    На сайте Bome есть бесплатная версия Pro, но она работает только 20 минут – для программирования это пытка. Но я мог бы (не раньше вторника) накидать стартовый пресет на пробу.
     
    Последнее редактирование: 24 мар 2018
    V_ad_im нравится это.
  8. V_ad_im

    V_ad_im Well-Known Member

    Регистрация:
    31 окт 2006
    Сообщения:
    1.802
    Симпатии:
    974
    Пол:
    Мужской
    в том то и дело, что должно, но изготовителям пофиг на то, что они сделали по сути брак и пофиг на просьбы пользователей.
    Поэтому приходится задним числом исправлять.

    В данном случае у нас проблема с частотой отсылаемых значений из баяна - он их реже чем нужно отсылает. И есть ощущение, дело не в цифровой фильтрации, а в том, что он просто не умеет делать это быстрее.

    В бидуле есть такая функция, уже готовая - она показывает время между последним и предпоследним событием. Так и называется, кстати, TimeDelta. Поэтому есть возможность интерполировать и время, и значение, чтобы вообще не было перепадов.
     
    Последнее редактирование: 24 мар 2018
  9. dr-music

    dr-music Well-Known Member

    Регистрация:
    8 апр 2007
    Сообщения:
    885
    Симпатии:
    1.264
    Пол:
    Мужской
    Адрес:
    Moscow
    С велосити у Фатаровских клавиатур ровно та же фигня, user=911 не зря переделывает электронику в новой свежекупленной клавиатуре. А оцифровка колес модуляции/питча так ваще мрак... И так десятилетиями.
    Дык это я понял, что есть. Но не вижу в ней большого толку, если честно. События УЖЕ пропущены, если мы про реалтайм говорим. Тут бы как можно быстрее заполнить пропуск, и большее значение имеет скорость реакции SoundEngine на входящие СС. Думаю, обсчет TimeDelta и замедляет работу Bidule. Bome Translator декларирует максимальную скорость обработки (задержки в микро-, а не в миллисекундах), не создавая внутри себя временной шкалы. В моем случае (CMC-FD) Транслятор обрабатывает без пропусков 4 питчбенда в реалтайме, дальше я не проверял.
     
  10. V_ad_im

    V_ad_im Well-Known Member

    Регистрация:
    31 окт 2006
    Сообщения:
    1.802
    Симпатии:
    974
    Пол:
    Мужской
    нам для заполнения в любом случае надо знать два события из прошлого, и заполнять пробел между ними. Потому как для заполнения пробела между уже состоявшимся событием и тем, которого ещё не было, нам нужно быть телепатами. :) Куда строить кривую - вверх или вниз? А если не угадаем?
    В моём алгоритме есть некий временной порог (очень небольшой), если TimeDelta его не превышает, то патч не выдаст на выход последнее событие, а сначала выдаст построенную интерполированную кривую, и только потом последнее событие, отстоящее по времени на величину, равную TimeDelta. Повторюсь, это происходит в крайне малых временных рамках и при игре эта задержка практически не заметна. Если TimeDelta больше порога (т. е. мы перестали двигать мехом) то патч выдаёт кривую и последнее событие отстоящее по времени на величину, равную этому порогу ("не дождался, тогда делает по-своему")

    т. е. патч работает как банк-посредник - не даёт деньги клиенту, пока их не "прокрутит"))
     
    Последнее редактирование: 24 мар 2018
    dr-music нравится это.
  11. dr-music

    dr-music Well-Known Member

    Регистрация:
    8 апр 2007
    Сообщения:
    885
    Симпатии:
    1.264
    Пол:
    Мужской
    Адрес:
    Moscow
    А по какой кривой построено заполнение, имеет значение? Чувствуется при игре? Или это математику в голове применить больше некуда? :) Если «да», то я несколько удивлен, мне кажется, что при 7-битной сетке разница д.б. исчезающе мала. Тут на форуме есть гитарист, которому 10 мс задержки – лажа, 5 подавай. Не, я верю, конечно, но удивляюсь ;)
     
  12. V_ad_im

    V_ad_im Well-Known Member

    Регистрация:
    31 окт 2006
    Сообщения:
    1.802
    Симпатии:
    974
    Пол:
    Мужской
    вариантов особо пока не было сравнить, только разве что штатный волнистый логарифмический сглаживатель и линейную интерполяцию. первый делает много лишнего и не туда (графически). Это потому, что у него TimeDelta не адаптивная, а постоянное значение. Вот он свою "чешую" где надо и где не надо пытается "продать". а на слух.. не знаю, мож как плацебо работает, но не нравится он мне. Линейная лучше - на душе спокойнее и легче) Лучший результат - это если я во время игры ваще не замечаю этих кривых и не думаю о них)
     
    Последнее редактирование: 24 мар 2018
    BAYANBAYAN нравится это.
  13. BAYANBAYAN

    BAYANBAYAN Active Member

    Регистрация:
    4 мар 2010
    Сообщения:
    262
    Симпатии:
    90
    @V_ad_im, Прошу прощения. Сегодня пробовал загрузить кондиционер. И в стендалон, и в VST не загружается, пишет ошибку.
    Снимок ошибки Bidule.PNG
    PS. Ваши пресеты скопировал в папку с Бидуле. Кириллицы в путях нет. Пробовал командой Open и Export. Результат одинаковый((
     
  14. V_ad_im

    V_ad_im Well-Known Member

    Регистрация:
    31 окт 2006
    Сообщения:
    1.802
    Симпатии:
    974
    Пол:
    Мужской
    версия бидуле какая?
     
  15. BAYANBAYAN

    BAYANBAYAN Active Member

    Регистрация:
    4 мар 2010
    Сообщения:
    262
    Симпатии:
    90
  16. V_ad_im

    V_ad_im Well-Known Member

    Регистрация:
    31 окт 2006
    Сообщения:
    1.802
    Симпатии:
    974
    Пол:
    Мужской
    скорее всего из-за того, что это старая версия. У меня 0.9757. Обычно такие ошибки если открывать на программе, выпущенной до 2015 года - Scale factor - это про разрешение монитора
    Тут обсуждалось https://plogue.com/phpBB3/viewtopic.php?f=10&t=8163
     
    BAYANBAYAN нравится это.
  17. BAYANBAYAN

    BAYANBAYAN Active Member

    Регистрация:
    4 мар 2010
    Сообщения:
    262
    Симпатии:
    90
    @V_ad_im, Спасибо! Удалил в текстовом редакторе ScaleFactor=1. После этого открылось.
     
  18. V_ad_im

    V_ad_im Well-Known Member

    Регистрация:
    31 окт 2006
    Сообщения:
    1.802
    Симпатии:
    974
    Пол:
    Мужской
    как, кстати, ощущения от кондиционера?
    В связке с рипером пока следующие вещи обнаружил - Рипер не видит виртуальных портов бидуле при загрузке, приходится вручную лезть в преференсы и делать "массаж" мидипортов - ресетить их, после чего бидулевские порты появляются в менюшках установки входа для каналов.. В этом смысле, видимо, лучше держать бидуле в стендалонном режиме, чтобы он уже был запущен до запуска Рипера.

    И в целом прихожу к выводу, что надо перестать играть через комп при забивке партий. поскольку при игре на роланде (как любом другом миди-контроллере) любой программный инструмент, даже без кондиционера, играет из компа с задержкой (по понятным причинам). даже физический миди-инструмент имеет задержку в сравнении со звуком из самого роланда. А это оч сильно влияет на свободу исполнения, пальцы по-другому двигаются и общее ощущение другое - в итоге подумываю сменить технологию записи треков: я собрал на десяти регистрах роланда основные тембры, которые могут понадобиться для забивки партий: струнные long, pizz, флейту/кларнет, орган и т. д. - чтобы наигрывать партии в комп с отключенным мониторингом на треке, слушая похожий звук из самого роланда. а потом, при воспроизведении, партия уже звучит семплами из компа.
     
    Последнее редактирование: 28 окт 2018
  19. BAYANBAYAN

    BAYANBAYAN Active Member

    Регистрация:
    4 мар 2010
    Сообщения:
    262
    Симпатии:
    90
    @V_ad_im, С кондиционером лучше. Я, правда, сейчас организовал связь через роланд сначала через transmidifier, в нем удобнее быстро переключать настройки для разных инструментов и для меня проще разобраться было в нем. А потом уже в Бидуле с кондиционером. Ну, и до Бидуле я через него работал. В Бидуле может тоже есть возможность быстро переключать разные настройки - просто не нашел. Мерял задержку - писал через Бидуле и сразу на трек. Конечно есть, но на слух я не ощущаю. В рипере, если разобрались, нужно включать в настройках трека preserve PDC delayed. Это аналог кнопки asio monitor - так вроде в Кубейсе называется. Компенсирует задержку. Специально тестировал с включенной опцией на предмет совпадения миди - в Кубейсе миди все равно разъезжается - а в рипере все точно получается.
    По поводу задержки при игре - ставлю на запись минимально возможный буфер, при которой не трещит аудио, отключаю всю обработку и записываю все партии. После этого включаю больший буфер, включаю обработку, реверы и т. д. В рипере отключил при записи прорисовку трека для минимизации нагрузки, хотя все равно почему-то именно при записи частенько аудио начинает трещать. Т. е. при игре на инструменте без записи все нормально, на записи могут полезть дропауты. Хотя такая же ситуация была и в Кубе.
    Про вашу идею с отключенным мониторингом - если нашли инструменты, которые также будут вести себя, как и виртуальные, тогда это действительно интересно. С другой стороны, когда играешь семплами, то уже и роландом управляешь так, чтобы заставить их звучать так, как сам слышишь внутренним слухом, т. е. реагируешь на то, как эти семплы отзываются на твои исполнительские действия. Так что здесь спорный момент - в чем-то удобнее, в чем-то можем проиграть, потому что потом надо будет больше редактуры делать записанных партий.
     
    V_ad_im нравится это.
  20. V_ad_im

    V_ad_im Well-Known Member

    Регистрация:
    31 окт 2006
    Сообщения:
    1.802
    Симпатии:
    974
    Пол:
    Мужской
    а какие настройки, например?

    И ещё про ефимовский баян хочу спросить - удалось ли нормально подцепить левую клавиатуру? я до сих пор не могу до уменьшённых аккордов добраться из-за отсутствия в этой модели роланда режима d-mode..

    И ещё вопрос - доводилось ли цеплять баян Евгения Седоых? у него, похоже, единственная на рынке засемплированная выборка
     
    Последнее редактирование: 30 окт 2018
  21. BAYANBAYAN

    BAYANBAYAN Active Member

    Регистрация:
    4 мар 2010
    Сообщения:
    262
    Симпатии:
    90
    Я настроил разные варианты поведения контроллеров с соответствующими кривыми и в transmidifier просто мьютирую, оставляя нужный в данный момент. С левой рукой не экспериментировал, играю только правой, необходимости не возникало.
    Про такой не слышал, хотя когда-то давно какое-то демо слушал выборного баяна "Зима" Вивальди. Демо было отвратное:(. Может это его сайт был, давно было дело. Я тогда еще подумал. что если сделать нормальный программинг через Роланд было бы в разы лучше.
    Ефимовский баян очень похоже реагирует на настоящий, акцентов только категорически не хватает, а так как я в основном пишу народные аранжировки, в которых без акцентов никуда, то чаще прописываю баян в студии сам. Работы, конечно больше, но и результат соответствующий.
     
  22. V_ad_im

    V_ad_im Well-Known Member

    Регистрация:
    31 окт 2006
    Сообщения:
    1.802
    Симпатии:
    974
    Пол:
    Мужской
  23. BAYANBAYAN

    BAYANBAYAN Active Member

    Регистрация:
    4 мар 2010
    Сообщения:
    262
    Симпатии:
    90
    Послушал еще раз. Хотя, на мой взгляд, самый треш это Калинушка:(. Причем именно по исполнению, слышно, что семплы нормальные.
     
  24. V_ad_im

    V_ad_im Well-Known Member

    Регистрация:
    31 окт 2006
    Сообщения:
    1.802
    Симпатии:
    974
    Пол:
    Мужской
    там есть совсем растроенные ноты.. прям с розливом..) Инструмент явно не прошёл подготовку перед семплированием - "imperfect")
     
  25. BAYANBAYAN

    BAYANBAYAN Active Member

    Регистрация:
    4 мар 2010
    Сообщения:
    262
    Симпатии:
    90
    Это аутентичность:).
     
    V_ad_im нравится это.

Поделиться этой страницей