Virtual Midi Controller
Создавая миди-партию, удобно использовать музыкальную клавиатуру. Однако не у всех она есть. В этом случае можно использовать программы, посылающие миди-сообщения в ответ на действия с компьютерной клавиатуры и мыши, так называемые виртуальные миди-клавиатуры. DAW или VST хост уже могут содержать в себе данную функцию. Однако использование виртуальной клавиатуры как отдельного приложения даёт больше возможностей для исполнения партии. В данной статье я расскажу о Virtual Midi Controller от Martin O'Grady. Она прекрасно справляется с функциями виртуальной миди-клавиатуры и не только!
Введение
Virtual Midi Controller - это программа для работы с MIDI. Выпускается в двух версиях – платной и бесплатной. Virtual Midi Controller LE является бесплатной, однако функционально урезанной (рис. 1).
Рисунок 1. Virtual Midi Controller 3 LE
Virtual Midi Controller 3 (полная версия) может выполнять больше функций чем LE версия. Логически она разделена на секции. Каждая из секций выполняет свою специфическую задачу и имеет собственные настройки. Каждой секции соответствует своя кнопка на панели задач. Уже сравнив количество кнопок для полной и LE версии можно судить о том, насколько урезана версия LE (рис. 2).
Рисунок 2. Virtual Midi Controller 3 (полная версия)
Обе версии поставляются в двух форматах – в виде VST плагина и как отдельное приложение (standalone). В этой статье будет рассказано именно о полной версии. И дело не только в уменьшенном количестве функций для LE версии, но и в других ограничениях. Самыми важными, из которых являются отсутствие возможности создавать свои клавиатурные раскладки и отсутствие слоёв (об этом чуть позже).
Во время установки, Virtual Midi Controller (VMC) предложит установку собственного виртуального миди-порта. Он так и называется - «Virtual Midi Controller». Можете согласиться на его установку – работать он будет. Однако я советую Вам использовать виртуальные миди-порты MIDI Yoke. Тем более что собственный виртуальный миди-порт VMC не может выступать в роли входного порта. Вы можете скачать MIDI Yoke на сайте разработчика или с сайта cjcity.ru (http://cjcity.ru/soft/101-8.html).
Обратите внимание, что панель виртуальной миди-клавиатуры скрыта. Для её отображения нужно щёлкнуть по кнопке «OUT».Помимо кнопок на функциональной панели расположено ещё два элемента управления программой. Верхнее поле отвечает за номер глобального пресета. В VMC его зовут программой. До знакомства с настройками отдельных секций я не советую что-либо менять в этом поле. В нижнем поле задаётся устройство миди-вывода. В моём случае это синтезатор, встроенный в Windows.
Первым делом проверьте, чтобы миди-выходы не совпадали с миди-входами. Сделать это можно в настройках программы. Для перехода в них щёлкните по кнопке «F» в панели задач, затем выберете «Setup». Перейдите на вкладку «Midi Inputs», на ней список устройств которые VMC может использовать для получение миди-сообщений. Те, что отмечены флажками, считаются активными. Теперь перейдите в «Midi Outputs», на ней список устройств миди-вывода (рис. 3).
Рисунок 3. Список устройств миди-вывода
Данное действие особенно важно при использовании виртуальных миди-портов. Заметьте, что активные устройства миди-вывода можно посмотреть также из панели задач, тогда как активные устройства миди-ввода – только в настройках.
Клавиатурная раскладка
Под созданием раскладки, в данном случае, подразумевается то, что любой клавише на компьютерной клавиатуре можно назначить действия, которые будут выполняться каждый раз, когда клавиша нажимается или отпускается. При этом на нажатие и отпускание можно назначать разные действия. Для этого щелкните по кнопке с надписью «C IN» – откроется панель настроек клавиатурного ввода (рис. 4).
Рисунок 4. Панель клавиатурного ввода
Состояние клавиши кодируется цветом. Светло-зелёные клавиши это клавиши, которые уже имеют назначенные действия, а тёмно-зелёные клавиши – ещё нет. Серые клавиши недоступны для назначения действий. Красный цвет означает, что клавишу нажали.
При первом запуске VMC уже имеет некоторую раскладку. Однако для лучшего понимания как создавать раскладки, давайте, создадим свою собственную. Для этого, прежде всего, надо освободить клавиши от уже назначенных действий. Самый лёгкий способ это сделать – выбрать пустой пресет. Для выбора пресета предназначена кнопка с надписью «P» (рис. 4) (обведена красным). Щелкните эту кнопку и выберете из списка пресет с именем «Empty». После выбора этого пресета не должно остаться светло-зелёных клавиш. Это значит, что теперь все клавиши свободны для назначения им новых действий.
Создадим раскладку, состоящую из двух рядов клавиш. Верхний ряд это клавиши от «Q» до «U». В нём будут находиться ноты верхнего регистра: от C3 до B3. Нижний ряд это клавиши от «Z» до «M». В нём будут находиться ноты нижнего регистра: от С0 до B0. Предлагаемая раскладка служит только примером. Для того чтобы приступить к настройке клавиши сделайте правый щелчок на её изображении в панели «C IN» (рис. 5).
Рисунок 5. Демонстрационная раскладка
Как можно видеть, назначенные действия это посыл миди-сообщений о начале и конце взятия ноты. При нажатии на клавишу (Down Function) будет выполнена «Midi Note On», а при опускании клавиши (Up Function) – «Midi Note Off». Действия выбираются из списка, появляющегося при щелчке по полю. Для каждого действия появляются свои настройки. Просто настройки для «Midi Note On» и «Midi Note Off» похожи. Настройки «Note» и «Velocity» это номер ноты и громкость (динамика ноты) соответственно. Их удобно выбирать из списка. Для этого сделайте правый щелчок по соответствующему полю. Далее, события «Note On» и «Note Off» можно посылать на любое из доступных устройств вывода (параметр «Out») и на любой канал (параметр «Chan») этого порта.
Кнопка «GLOBAL KEY» включает активность клавиши для режима захвата клавиатурного ввода. В VMC это поведение можно определить отдельно для каждой клавиши. Эта кнопка значима, только если активирован сам режим. Для активации режима захвата клавиатуры щелкните в панели задач кнопку «K». В этом режиме VMC будет получать клавиатурный ввод независимо от того имеет или не имеет фокус её окно. То есть можно будет работать с любыми другими окнами при помощи мыши и в тоже время играть ноты. Это может пригодиться, к примеру, при настройке звука VST синтезаторов.
Кнопка «REPEAT» в нашем примере находится не в нажатом состоянии. Так как многократное послание «Note On» при удержании клавиши не требуется. Позже мы рассмотрим пример, в котором повторное выполнение действия при удержании клавиши является желательным.
Параметр «Zone» не является личной настройкой ни для «Note On» ни для «Note Off», так как он никак не кодируется в этих миди-сообщениях. Этот параметр принадлежит самой VMC. При помощи него программа «помечает» миди-сообщения как принадлежащие зоне с некоторым номером. Это своего рода дополнительная информация для самой VMC, которая «подсказывает» ей какой вид дополнительной обработки нужно произвести для данной миди-команды. Напомню, для нижнего ряда Zone=1, а для верхнего Zone=2 (рис. 5).
В нашем случае зоны использованы для возможности менять номер воспроизводимой ноты. Это осуществляется путём приращения (положительного или отрицательного) на целое число. Зоны можно увидеть в секции «OUT». Она показывается при щелчке по кнопке «Z» (рис. 6).
Рисунок 6. Применение зон
Внизу изображения музыкальной клавиатуры находятся 2 прямоугольника. Внутри каждого из них надпись из двух чисел. Первое число это номер зоны, а число после знака «:» равно приращению которое получит нота. Это число называют смещением или транспозицией. В секции зон щелчком мыши можно менять транспозиции зон независимо друг от друга. Для этого сделайте щелчок по свободному месту. Применение зон позволяет играть ноты в более высоком или более низком регистре путём смены транспозиций для этих зон. При этом сами номера нот, назначенные клавишам, остаются фиксированными.
То как транспозиции зон влияют на воспроизведение нот можно не только услышать, направив выдачу на заданный порт устройства, но и увидеть. Для этих целей предназначена панель «DISP». Она отвечает за мониторинг исходящих и входящих миди-сообщений. Выполнение действий, не являющихся миди-сообщениями, в ней не фиксируются. То есть момент изменения транспозиции для зоны в «DISP» увидеть нельзя (рис. 7).
Рисунок 7. Наблюдение исходящих нот
Транспозицию зоны можно изменить с клавиатуры. Добавим нашей раскладке такую возможность. Для этого используем функцию «Change Zone Transpose». Ряд клавиш «Insert», «Home» и «Page Up» мы используем для управления зоной 2, а ряд «Delete», «End», «Page Down» - для зоны 1. При этом клавишами «Home» и «End» будем устанавливать смещения зон в 0 (рис. 8).
Рисунок 8. Изменение смещения с клавиатуры
Действие «Change Zone Transpose» выполняется каждый раз, когда клавишу нажимают. Так как нужно менять смещение для конкретной зоны то «Type» установлен в «Specific». Следующее поле содержит номер зоны. Параметр «Value» определяет, как именно будет меняться транспозиция. Важен знак, который ставиться перед значением. Если это число со знаком «-», то каждый раз, при нажатии на клавишу, текущее значение транспозиции зоны будет уменьшаться на это число, а если число со знаком «+» - то увеличиваться на него. В случае отсутствия всякого знака перед значением «Value» транспозиция зоны будет установлена точно в это значение.
Теперь можно менять смещение для рядов с клавиатуры. Однако что делать, если нужно сделать приращение транспозиции не на 12, а, скажем, на 1 или 24? Назначить новым клавишам «Change Zone Transpose» с другим «Value»? Такое решение не компактно. Есть способ лучше – использование клавиш модификаторов. К этим клавишам относят «Shift», «Ctrl», «Alt» и «Win». Если клавиша была нажата или отпущена в то время пока были удержаны клавиши модификаторы, то VMC воспримет такое нажатие (отпускание) как отдельный вид нажатия. И на этот отдельный вид нажатия может быть назначено своё собственное действие. В этом случае говорят о задании настроек для модификации клавиши.
Для задания настроек модификации клавиши необходимо использовать кнопки «SHIFT», «CTRL», «ALT» и «WIN» (рис. 9) (обведено красным овалом). Далее, выбираем клавишу правым щелчком, затем щёлкаем по одной из кнопок или нескольким – модификация может быть задана и для сочетания модификаторов. После этого настройки клавиши обновятся. Их придётся снова задать. Однако это не значит, что настройки для не модифицированного состояния были потеряны. Просто снимете выделение с кнопок модификаторов – настройки станут прежними.
Рисунок 9. Настройка модификации
Из рисунка можно понять, что при одновременном удержании клавиш «Shift» и «Alt», каждое нажатие на клавишу «Page Dоwn» будет увеличивать текущую транспозицию первой зоны на 24. То есть модификация «Page Dоwn» задаётся комбинацией «Shift+Alt».
На рисунке можно видеть активность кнопки «UP MOD». Она задаёт режим, при котором модификация работает не только при нажатии клавиши, но и при её отпускании. В данном примере она не используется, так как для смены зоны используется только нажатие на клавишу. Модификации клавиш позволяют создавать многослойные раскладки. Например, можно назначить на наши ряды нотных клавиш (рис. 5) разные громкости нот, в зависимости от модификаторов. Однако стоит помнить при этом, что реакция на изменение громкости ноты зависит от поддержки этого VST синтезатором.
Задавать звук синтезатора можно не только посредством выбора пресета (или патча), но и использованием управляющих миди-сообщений (CC). Для этого нужно чтобы СС с заданным номером был «привязан» к некоторому параметру синтеза. Особенно это актуально для аппаратных синтезаторов. Зная набор необходимых синтезатору CC и их значения можно программировать звук синтезатора посредством их посыла. В VMC одной клавишей можно послать несколько СС одновременно (рис. 10). Для этого предназначено действие «Midi Controller Change».
Рисунок 10. Назначение нескольких действий
Настройки посыла СС достаточно прямолинейны. В «CC» задаётся номер сообщения, а в «Value» его значение. «Midi Controller Change» назначено только на нажатие клавиши. При каждом нажатии клавиши «Backspace» будет выполняться 3 действия: модуляция сбрасывается, режим поддержки (sustain) отменяется, панорама устанавливается по центру. На рисунке показан вывод этих сообщений в панели «DISPLAY». Обратите внимание на красный овал на рисунке. Он окружает номер функции. Щелчок по правой стрелке позволит перейти к следующей функции. Однако сделать это удастся, только если назначено действие для текущей функции. Не путайтесь! Номер присваивается именно функции. Каждая функция состоит из двух частей – «Down Function» и «Up Function». На каждую часть можно назначить своё действие. Для освобождения клавиши от действий придётся освободить её от всех функций – «Down Function» и «Up Function» установить в «None».
Посылать CC сообщения можно и при помощи мышки. В секции «OUT» есть СС панель. Из неё можно послать СС с любым номером. Щелкните по прономерованному прямоугольнику, затем выберете нужное значение для СС из списка. Как видно, из этой панели можно послать не только СС сообщение, но и другие миди-сообщения (рис. 11).
Рисунок 11. Панель СС
После того как раскладка была создана её нужно сохранить. Во-первых, можно её сохранить как новый пресет. В панели «C IN» найдите и щёлкните кнопку (не клавишу) с надписью «F». Из списка действий выберете «Edit Presets» - откроется диалоговое окно «Presets». Нажмите кнопку «Add» и задайте имя пресета. После этого раскладка сохраниться в пресете, теперь она будет доступна для загрузки как и прочие.
Другой способ сохранить раскладку – сохранить её в файл с расширением prg. В панели задач щёлкните кнопку «F». Из списка действий выберете «Save» - откроется диалоговое окно «Save». Щёлкните «Save to File» - откроется диалоговое сохранения файла. При сохранении в поле «Сохранить как» выберете «Program Files». В принципе можно сохранять и как «Bank Files», но особого смысла в этом нет. Для загрузки PRG файла щелкаем в панели задач «F», выбираем «Load».
Регуляторы
Ранее уже упоминалась возможность управлять параметрами синтеза путём посыла СС сообщений при нажатии на клавишу клавиатуры. Однако ограниченность этого способа состоит в том что «Midi Controller Change» может посылать только фиксированные значения и не способен посылать приращения. То есть управление, в этом случае, осуществляется согласно принципу «одна клавиша – одно значение СС сообщения». Для непрерывного управления параметром синтеза нужно создать регулятор. Регуляторы создаются в панели регуляторов. Для появления этой панели щёлкните по «CTRL» в панели задач (рис. 12).
Рисунок 12. Панель регуляторов
При первом запуске VMC уже имеет некоторый набор предустановленных регуляторов. Стоит отметить, однако, что набор довольно функциональный и достаточный для демонстрации создания и использования регуляторов. Вы можете создать свой набор, если хотите. Для этого сделайте щелчок по кнопке «P» (обведена жёлтым), затем выберете из списка «Empty» - всё исчезнет, останутся только кнопки управления панелью.
Обратите внимание на сетку. За её показ отвечает кнопка «GRID». Нельзя создавать регуляторы до того как создана хотя бы одна строка сетки. За добавление и удаление строк сетки отвечают кнопки «+» и «-» соответственно. Количество строк задаётся пользователем, но не может превышать 16. Количество же столбцов (клетей) в строке всегда равно 16.
Чтобы добавить новый регулятор сделайте правый щелчок по свободной клети, затем установите параметр «Type» в одно из возможных значений. Этим параметром определяется внешний вид, и, соответственно, способ работы с регулятором. Есть 3 вида регуляторов: фейдер, поле ввода (Edit), ручка (Knob). Фейдер бывает горизонтального положения (H Fader) и вертикального (V Fader). Рассмотрим один из таких фейдеров (рис. 13).
Рисунок 13. Параметры регулятора
Из рисунка видно, что регулятор является вертикальным фейдером. За счёт сетки каждый регулятор имеет свои координаты. Они определяются номером строки и столбца. Надпись «Cell: 1,1» подсказывает нам координаты регулятора – сначала номер строки, затем номер столбца. Параметр «Type» позволяет отобразить регулятор, но не заставить его работать. Чтобы это сделать, надо назначить регулятору миди-событие, за которое он будет отвечать. За это отвечает параметр «Event». В данном случае к регулятору «привязана» миди-команда «Pitch Bend». Для того чтобы «связать» движение ползунка фейдера с диапазоном значений для миди-события необходимо его задать через параметры «Min» и «Max». Нижнее положение ползунка соответствует величине «Min», а его верхнее положение – величине «Max». Однако вы можете задать «Min» больше чем «Max», в этом случае, наоборот – верхнее положение ползунка будет соответствовать минимальному значению. Ползунок фейдера двигается при помощи мыши, поэтому обратите внимание на параметр «Release». Он соответствует начальному положению ползунка. При этом регулятор всегда возвращается в него, как только отпускают захват ползунка. Параметр «Release» можно не задавать. В этом случае ползунок будет оставаться в том положении, в котором его оставили.
Преимущество движения регуляторов мышью состоит в том, что можно задавать скорость и ускорение движения регулятора. Чтобы сделать этот процесс эффективнее в VMC поддерживается режим захвата регулятора. В этом режиме ненужно удерживать кнопку мыши, достаточно двигать курсором. Для захвата сделайте щелчок колёсиком мыши по регулятору. Кроме того можно двигать регулятор колёсиком мыши. Чтобы это сработало на регуляторе «Edit» дайте ему фокус – сделайте щелчок.
Сохранять созданные регуляторы можно по такому же принципу как это делалось для сохранения клавиатурной раскладки. Сохраняйте их как пресет, используя кнопку «F», или как PRG файл.
При использовании мыши для перемещения регуляторов окно VMC должно иметь фокус. При этом теряются преимущества связанные с использованием захвата клавиатуры. Однако этого можно избежать. Пусть управление регуляторами с клавиатуры, в принципе, невозможно производить с тем же качеством, что даёт мышь, но оно возможно. Для этого на клавишу нужно назначить действие «Change Control» (рис. 14).
Рисунок 14. Управление регулятором с клавиатуры
Для того чтобы управлять регулятором через «Change Control» необходимо указать координаты регулятора. В нашем примере этим регулятором является регулятор «Pitch Bend» (PB), поэтому Row=1 и Column=1. В примере я использовал 3 клавиши. Клавиши «7» и «1» меняют PB через приращение, а клавиша «4» - через установку в конкретное значение. Для этой цели служит параметр «Value». Работает он точно также как и одноимённый параметр действия «Change Zone Transpose». Обратите внимание, что, на этот раз, кнопка «REPEAT» активна. Удерживая кнопку «7» или «1» мы двигаем ползунок PB. При этом параметр «Release» не возвращает ползунок в исходное состояние. Заметьте, регуляторы всегда отображают изменения миди-команд, к которым они «привязаны».
Слои
Во время обсуждения параметров для «Midi Note On» и «Midi Note Off» можно было заметить, что «Out» и «Chan» установлены в «Default». Это не случайно. Дело в том, что только при таких настройках для выходного порта и канала, нота будет «пропущена» через слой. Ранее говорилось что VMC, при помощи назначения номера зоны, помечает миди-события, чтобы, впоследствии, подвергнуть их некоторой обработке. Механизм зон позволяет изменить смещение для выбранной группы нот, но не только это. Он тесно связан с другим механизмом VMC – слоями. В принципе, для того чтобы играть ноты с VMC, использование слоёв не является необходимым. Однако применение этого механизма значительно облегчает создание раскладки (рис. 15).
Рисунок 15. Настройки слоя
Настройки слоя (Layer) имеют параметр «Zone», определяющий какие именно ноты «пройдут» через данный слой. Раскладка примера (рис. 5) содержала два ряда клавиш имеющих разные зоны. Ряд «ZXCVBNM» имел зону «1», значит, именно его ноты поступят в слой «1». Слой «2» имеет Zone=2, поэтому он будет принимать ноты только от ряда «QWERTYU».
Слой, по сути, представляет собой внутренний миди-обработчик. Первое что он делает – выступает в роли фильтра. Параметры «Note Range» и «Velocity Range» предназначены для фильтрации нот по номеру ноты и по громкости соответственно. «Output» и «Chan» определяют, на какое миди-устройство и на какой канал посылать результат обработки слоем. Такой подход удобен тем, что имея множество слоёв, но с разными настройками для миди-выхода, мы можем одной клавишей играть на разных синтезаторах (при различии в «Output») или на разных инструментах мультитембрального синтезатора (при различии в «Chan»).
Не беспокойтесь, Вам не придётся назначать каждой клавише зону для того, чтобы использовать всю мощь слоёв. В VMC предусмотрены довольно гибкие правила относительно их использования. Так, если слой не имеет назначенной зоны (параметр «Zone» пуст), то он будет принимать любые ноты, как помеченные зоной, так и нет. С другой стороны, даже если слою назначена зона, он всё равно способен принимать ноты, которые не помечены зоной. К примеру, когда Вы играете ноты мышкой, они будут поступать на любой слой. Всё дело в том, что ноты, извлечённые с помощью мышки, не имеют зоны. Однако есть и минус – для игры, хотя бы один слой должен существовать. Чтобы добавить слой пользуйтесь кнопкой «+» (обведено жёлтым). Чтобы нумерация слоёв не сбилась, добавляйте новый слой, когда никакой другой не выделен.
Слой имеет ряд настроек, принципиально меняющих игру на виртуальной клавиатуре. Прежде всего, это кнопка «T», переводящая клавиатуру в триггерный режим. Это значит, что выключение ноты начинает происходить не при отпускании клавиши, а при повторном её нажатии. В этом режиме ненужно зажимать клавиши на клавиатуре чтобы играть аккорд – достаточно запустить все его ноты. Кнопка «T», также, неплохо справляется с ролью глушителя для зависших нот. Кнопка «M» (обведено белым) делает так, чтобы активной оставалась последняя набранная нота. Это кнопка моно режима. Щёлкните её и попробуйте поиграть, особенно аккордами.
Каждый слой имеет свой арпеджиатор (обведено фиолетовым). Для того чтобы его включить надо установить параметр «Arppegio» в одно из значений. Он отвечает за тип арпеджио. Режим «Chord» создаёт одновременное арпеджио на каждую входную ноту слоя. Арпеджиатор генерирует последовательность нот на основе входной (базовой). Для генерации необходимо 3 параметра. Параметр «Tempo» задаёт темп и одинаков для всех слоёв. Параметры «Beat» и «Length» индивидуальны для каждого слоя. «Beat» задаёт периодичность возникновения ноты, а «Length» задаёт её длину. Вы вольны выбирать сочетания значений для этих параметров, однако, по смыслу, Beat>=Length.
Настроек «Beat» и «Length» достаточно для генерации периодической последовательности. Однако она будет состоять только из базовой ноты. Чтобы сделать арпеджио более разнообразным необходимо применять параметр «Sequence», задающий последовательность смещений, на основе которой происходит генерация нот. Из списка можно выбрать предустановленные варианты, либо, нажав кнопку «Edit», задать свою - «Sequence» представляет собой строку. На рисунке 16 приводится пример составления «Sequence» для генерации последовательности в один такт. Настройки таковы: Tempo=120, Beat=1/8, Length=1/8, базовая нота – С3 (базовой ноте всегда соответствует смещение 0).
Рисунок 16. Правила составления «Sequence»
Как видим, все смещения положительны, но использование отрицательных смещений также возможно. Пример приведён без учёта коррекции громкостей нот. Чтобы это сделать, сразу за смещением ноты, напишите «V-10» или «V30», для коррекции громкости ноты на заданную величину. Однако, иногда, наоборот – нужно чтобы коррекция громкости, выставленная в «Sequence», была проигнорирована. Для этого предназначена кнопка «VELOCITY» (обведено голубым). Кнопка «NOTE» решает обратную задачу – игнорирует коррекцию смещений.
Строку для «Sequence» можно сохранить на диск. Щёлкните по кнопке «F», выберете «Edit Sequences» - появится диалоговое окно «Sequence Preset Dialog». Дальнейшие действия аналогичны тем, что были описаны во время обсуждения сохранения раскладки клавиатуры как пресета.
Итог
Virtual Midi Controller представляет собой мощную и компактную миди-утилиту. Основной целью этой статьи была демонстрация использования VMC в качестве виртуальной миди-клавиатуры, поэтому описание некоторых её секций осталось «за кадром». Так, например, VMC способна не только генерировать ноты и отправлять их на устройства миди-вывода. Она может получать ноты от устройств миди-ввода, позволяя внешним миди-командам управлять своими настройками, а также осуществляет функции фильтрации и подстановки. Читателям, заинтересованным в этой возможности VMC нужно изучить работу с секцией «M IN». А тем, кто занимается модуляцией параметров синтеза стоит обратить своё внимание на секции «OSC» и «J IN».
А можно ли с помощью вашей проги нажатием пресета или клавишы программы управлять несколькими устройствами?например чтоб на 4 приборах включался свой пресет?
Если у кого-то есть вопросы, то можете задавать их автору статьи.