Novation SL MK2 контроллеры - о взаимодействии с разными DAW

Novation SL mkII control surface plugin for Reaper.

Выложил проект на гитхабе, как есть.
Во вкладке Release две dll'ки (release и debug). В папке 'extra' - .reg файл для открытия третьего midi порта в системе. В описании - корявая инструкция по установке. Пользуйтесь, кому нужно.

https://github.com/AlexFundorin/SLMkII-Reaper-CSurf
Для любителей поковыряться, в комплекте есть solution для Visual Studio.
 
  • Like
Реакции: Beckoff и CTEPEO3ABP
@fundorin, огромное спасибо за Ваш труд! Пробую ваш dll, всё работает, но кнобы и фейдеры реагируют очень медленно. Это так и должно быть?
 
Последнее редактирование:
  • Like
Реакции: CTEPEO3ABP
@Beckoff Не должно. В моей конфигурации всё весьма шустро работает. Я пользуюсь версией debug. Отличия в том, что release меньше по объёму, т.к. оптимизирован. Но, по факту, мне дебаг версия ближе. Возможно, потому, что именно с ней делал всю отладку.
Работает далеко не всё, но, на то и гитхаб. Если есть желание покопаться в исходниках, любой может добавить свои дополнения и залить в проект в качестве pull request.
 
  • Like
Реакции: Beckoff
@fundorin, спасибо что ответили. Да, разобрался.. Проблема была в моей конфигурации рипера. Сейчас всё работает просто отлично! Единственное, не работает ModWhell и пэды в режиме автомап. Можно ли это исправить?
 
Работает далеко не всё, но, на то и гитхаб. Если есть желание покопаться в исходниках, любой может добавить свои дополнения и залить в проект в качестве pull request.

Эх если бы разбирался в этом обязательно что нибудь да добавил. Но, увы..
Кстати, debug версию в гитхабе не нашел.
 
Последнее редактирование:
можно - отключить автомэп )
Класс! Но для лайв ситуаций не очень подходящий способ.. Иногда забываешь что включен автомап, если до этого что-то рулил в микшере или трек активировал..
 
@Vosk, ну понятное дело, что программируется. Но тут речь идет о драйвере который выложил @fundorin, а не о стандартном автомэп. Или я чего то недопонимаю?..
 
тут речь идет о драйвере который выложил @fundorin, а не о стандартном автомэп
ну ты же написал , что
не работает ModWhell и пэды в режиме автомап. Можно ли это исправить?
я и предложил вариант. Без колеса-то нафик контролёр не нужен.) Пэды ещё ладно..
 
@Vosk, спасибо понял. Так и делаю, но постоянно тыкать кнопку отключения автомап надоело)..
 
Modwheel на первом канале висит, вместе с клавишами. Если нет, вроде в настройках самого контроллера это задаётся.
У меня mod wheel передаётся через первый порт.
Что касаемо дрампадов, я их не использую по прямому назначению. Они сделаны на базе пьез и из-за этого очень хреново работают. На них висит изменение сетки проекта (в сочетании с касанием speed dial) и вроде ещё что-то. Сейчас посмотрю в исходниках...
// Set project grid when Speed Dial is touched - сетка с Speed Dial
// Reset pan for tracks 1-8 in current bank - ресет панорамы при касании ряда потов
// Reset vol for tracks 1-8 in current bank - ресет громкости при касании энкодеров

// Actions in combination with row select buttons
// Scroll mixer to the first track in current bank
А это, по-моему, работает так: если ничего больше не трогать кроме дрампадов, они должны переключать банки треков по 8 штук. И как-то дополнительно при удержании кнопок Rs ещё переключать банки.
Если нужны именно дрампады, то в файле sl_cmd.cpp нужно удалить строки с 1528 по 1531 и вписать туда желаемое действие.
Например, StuffMIDIMessage(int mode, int msg1, int msg2, int msg3), где вместо mode указать 0 для виртуальной клавиатуры Рипера, 1 для контрольных сообщений, 2 для виртуальной клавиатуры на текущем канале, 16 и 17 для вывода на внешнее устройство.
msg1-3 обычные миди сообщения. 1 - тип сообщения ("0x9." note on, "0x8." note off и т.д.). Вместо точки номер миди канала в шестнадцатиричном формате. 2 - номер ноты. 3 - велосити.
В принципе, подойдёт замена удалённых строк на StuffMIDIMessage(0, msg1, msg2, msg3); с последующей перекомпиляцией проекта.
Тогда дрампады станут посылать миди ноты на порт Virtual Midi Keyboard.
 
  • Like
Реакции: Beckoff
Vosk не совсем понимает, о чём речь. Колесо модуляции у меня работает и при включенном автомапе.
 
  • Like
Реакции: Beckoff
Проверь настройки роутинга в контроллере.
У меня так:
164581

Возможно, второй пункт у тебя по-другому настроен.
 
  • Like
Реакции: Beckoff
@fundorin, спасибо за подробное разъяснение! Но боюсь, я не осилю это всё.. Может для Вас все просто, но для меня редактировать код, это очень сложно)) Я знаю что у вас пэды назначены на изменение grid в режиме Mixer, и да пэды очень доставляют своей странностью. Но я переназначил их на 5-ый миди канал и пытаюсь от них добиться проигрывания некоторых фраз. Пробую пристроить Novation Sl для живой игры в выступлениях. Отдельное спасибо за то что научили клавиши приятным вещам которые очень полезны в работе!
 
Заменил барабаны на midi сообщения в порт Virtual Midi Keyboard. Это единственный способ их использовать, когда миди порт завязан на Control Surface.
В настройках инпута трека нужно выбрать Virtual Midi Keyboard или All.
Если что-то буду изменять, в дальнейшем, и заливать на гитхаб, барабаны в тех версиях будут исполнять свою старую функцию переключения банков. Так что, сохрани себе где-нибудь эту версию или поставь Visual Studio и изменяй функционал по своему желанию.

Всё, что нужно было сделать:
jZuLgj0.png
 
  • Like
Реакции: Beckoff
Последнее редактирование:
@fundorin, поставил настройки как на вашем скрине в глобал, но так и не проходят CC-01 и пэды через любые миди входы, при нажатой кнопке automap.. Подключен только по usb.
 
Совсем забыл и не написал в описании на гитхабе:

Плагин создаёт в папке UserPlugins папку SLPlugmaps.
В этой папке создаются дефолтные маппинги параметров тех плагинов, которые были загружены в проекты Рипера.
Собираются они в папке !Generated, по имени производителя.
Если скопировать из этой папки папку производителя в корень SLPlugmaps, то можно редактировать маппинг. Плагин знает, что там должны лежать пользовательские настройки.
В принципе, можно не копировать, но, так удобнее, чтобы потом не запутаться, что редактировал, а что нет. Плюс, если накосячил, всегда можно взять дефолтный маппинг из папки Generated. Если накосячил с дефолтным - удалить его и при следующей загрузке плагина он создастся заново.

CCaJwR7.png


Возможно, именно во время первой загрузки новых плагинов, когда создаётся маппинг, контроллер мог подтормаживать.

Маппинги создаются в формате JSON. В интернете есть описание формата.
Но, можно просто установить себе какой-нибудь простенький редактор кода, типа VSCode с плагином JSON и посмотреть содержимое файла.
Я использую плагин 'Sort JSON values" для упорядочивания параметров по номерам. Изначально они генерируются как 1, 10, 11 и т.д.
Плагин 'Prettify JSON' всё красиво выравнивает и подсвечивает.
Начать можно с секции Info и попробовать поменять отображаемое название файла. NameShort это то, что отображается на экране контроллера в сжатом виде.
Также можно поменять имя автора. Правда, в Рипере и на контроллере оно не отобразится. Так, чтобы потешить ЧСВ и для практики.

3mFnEJJ.png


В PageName можно указать название страницы. Правда, я не помню, где оно отображается и отображается ли вообще)
Если скопировать содержимое "default" и вставить ниже, на той же странице и на том же уровне, и поменять слово 'default' в копии на, дай бог памяти, 'ctrlP', 'ctrlF', 'ctrlE', 'ctrlA' и т.д., то можно назначать функции плагина на определённый тип контролов.
По умолчанию все контролы используют данные из секции 'default'.

Соответственно, внутрь секции ctrlF уже можно будет добавлять нужные действия и обзывать их как захочется.
Самый главный параметр - fNum. Можно поискать в дефолтном маппинге по названию нужный контрол, скопировать его кусок и вставить на нужную страницу ctrF, под нужным номером. Или просто вырезать куски из этого же файла и вставлять в только что созданную секцию. ctrlF это фэйдеры, если что.

При редактировании JSON главное, не пропускать запятые. Структура файла должна оставаться неизменной. Все подсекции, кроме последней, разделяются запятыми.
По-хорошему, надо бы сделать GUI редактор маппингов, но, мне это дело плохо даётся. Брался раза три и бросал. Так что, если очень нужно переназначать параметры, то, придётся делать это ручками.
 
  • Like
Реакции: Beckoff
Не помню, что именно надо было настроить, честно. Кажется, тоже с этим сталкивался.
Эту секцию настроек лучше оставить как у меня и полазить по другим настройкам.
Можно проверить (мои настройки):
options/transport [global]
edit/routing/keybchan 1, keybport u1, commchan 16, comnport u3
edit/zoneedit/midichan keybchan, ports keybport.

Вроде больше ничего подходящего нет там.
Запомни, какие у тебя были значения этих параметров и поменяй на мои.
 
  • Like
Реакции: Beckoff
Кстати, debug версию в гитхабе не нашел.
В папке 'release' как раз они и есть. ;)

Насчёт пэдов совсем странно. Либо они связаны с модуляцией и если решить одну проблему, то решится и вторая. Либо это из-за того, что кто-то поменял миди порт для падов в самом контроллере. Но, даже в этом случае они должны слать по пятому (?) каналу миди сообщения, когда в Рипере выбрано 'All Channels'. Я же проверил версию перед отправкой и пады управляли пианинкой у меня в Рипере. Правда, сейчас проверил ещё раз и заметил, что noteOff в Рипере не обрабатывается с них, почему-то. По идее, должен.
 
Последнее редактирование модератором:
  • Like
Реакции: Beckoff
Можно проверить (мои настройки):
options/transport [global]
edit/routing/keybchan 1, keybport u1, commchan 16, comnport u3
edit/zoneedit/midichan keybchan, ports keybport.
У меня точно также выставлено кроме " Transport > template".. Даже не знаю, где копать дальше.
 
В Midi-Ox вижу и noteon и noteoff. Noteoff отправляется с небольшой задержкой.

5b3KRqN.png


Драм машинки (Roland 808/909) нормально реагируют и отключают клавиши. А вот у парочки синтов, которые проверил, зависают ноты.
[automerge]1564526712[/automerge]
У меня точно также выставлено кроме " Transport > template".. Даже не знаю, где копать дальше.
И comnport u3?

Чтобы убедиться в том, что это точно проблема плагина или настроек контроллера, подвигай какой-нибудь параметр в плагине, потом нажми "Param" в правом верхнем углу и выбери 'learn'. Пошевели колесо. Если отображается 'MIDI Chan 1 CC 1', значит контроллер нормально передаёт значения.
Ах, да, если ты в Рипере в preferences/midi devices не поставил галочку в настройках первого миди порта напротив "Enable input for control messages", я буду сильно расстроен :mad:
 
Последнее редактирование модератором:
  • Like
Реакции: Beckoff
Всё! Заработала!
Переназначил в автомап (edit) пэды и ModWheels в U1 порт (были назначены на U3) и всё заработало! Ура! Спасибо огромное, человеческое, @fundorin!

А на счет note-off, это заслуга самих пэдов (дешевых) которые не совсем оказывается умеют посылать эту команду. Странно, они (Novation) видимо не продумали этот момент.. И да, зависают ноты знатно.
 
Ну как так-то? я же показал свои настройки)
@fundorin, прошу прощения, не совсем там смотрел похоже. Клавиши у меня совсем недавно и я понятия не имел, что кроме глобал еще и отдельно можно/нужно автомап настраивать.. Вроде global как раз и подразумевает что это глобально, на всю железку.. А оказывается, нет. Так, прошу прощения за суету. Зато, поделились с нами полезностями) Спасибо Вам за все ваши старания! С Уважением!
Ах, да, если ты в Рипере в preferences/midi devices не поставил галочку в настройках первого миди порта напротив "Enable input for control messages", я буду сильно расстроен :mad:
Да нет, там всё как полагается)));)
 
Последнее редактирование:
Доброй ночи, друзья.
Почти год работал с автомапом - не знал бед никаких и не вдавался в подробности настройки контроллера от слова "совсем". Решил поизучать вопрос работы клавиш в режиме Advanced, пока чисто из спортивного интереса - запутался капитально, есть несколько скорее всего глупых вопросов вопросов, не бейте, пожалуйста.
1) Есть ли где-нибудь нормальное описание NRPN/RPN и прочего? Я через эдитор гружу темплейты в контроллер, но настроить привязку энкодера к виртуальному кнобу, к примеру, в эффекте, загруженному в проекте в DAW, ну никак не получается, что-то ключевое я упускаю из виду.
2) LED feedback вообще осуществим в Advanced режиме в купе с Кубейсом?
3) Есть ли способ заставить slmkiieditor импортировать список контроллеров с х64 плагинов?
4) Возможна ли через Advanced режим настройка автоматического мапа энкодеров и прочего при переключении фокуса окна с одного плагина на другой? Или смена темплейтов авматом - прерогатива чисто Automap?

Если отправите в Гугл - пойму, но лучше снабдите, пожалуйста, полезным чтивом по этим вопросам. Русский мануал по SL mkii вроде как шерстил, равно как и шерстил сайт самих Новейшнов, но вопросов стало ещё больше, нежели ответов.
 
2. Насколько я понял, нет. Возможности слмкедитора очень ограниченные, а создавать и редактировать темплейты типа аблетоновского нам не разрешают.
4. Адвансед - только ручное переключение.
 
  • Like
Реакции: Jafaroff
"создавать и редактировать темплейты типа аблетоновского нам не разрешают."

Создать не получится, но редактировать темплейт N33 можно... Только проку от этого ноль - функции feedbacka-a (и другие) обеспечивает не он сам, а скрипт Ableton-а.
 
"Я через эдитор гружу темплейты в контроллер, но настроить привязку энкодера к виртуальному кнобу, к примеру, в эффекте, загруженному в проекте в DAW, ну никак не получается"

В Ableton для шаблонов Advanced имеется режим MIDI-mapping (при котором нужно вручную задавать соответствие энкодера выбранному кнобу). Единственное условие, которое следует при этом выполнить - обеспечить наличие связи между контроллером и DAW через Port2 (по которому идут сигналы управления). Автомэп использует Port3 (скрытый)...
 
  • Like
Реакции: Jafaroff

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