0

"Программирование" светового шоу на Novation LaunchPad

Здравствуйте, товарищи! 

В недавнем посте от @giepol промелькнула просьба рассказать о том, как вообще все это делается. Были озвучены две догадки:

1) Нажимание на кнопочки с эффектами под музыку

2) Собственно, сэмплы и мастерство.

Ну, про второй способ товарищ @giepol думаю, расскажет сам - там необходимо работать с программой Ableton Live, насколько мне известно. Я же, будучи "веганом" (пользуюсь FLStudio) коснусь больше теоретической части.


У серии Launch от Novation (сейчас мы говорим про до-rgb эпоху) есть два типа подсветки кнопок - только красным диодом или двумя диодами - красным и зеленым. То есть возможен любой цвет, который можно получить смешением различной яркости этих двух диодов рассеивающим пластиком кнопки.

У меня получались оттенки зеленого (вплоть до оливкового и хаки), оттенки желтого (от красного до оранжевого).


Как контрол понимает, каким цветом какую кнопку зажечь? 

Все просто. Цвет кодируется численным значением от 0 (выключен/черный) до 127 (максимальная яркость двух диодов, на выходе имеем зеленовато-желтый). Кнопки определяются номером CC.


В нашем примере используем Launch Control. С помощью редактора изменим раскладку кнопок - все будут у нас CC, то есть контролы. Так то весь нижний ряд - это ноты, но в программировании их будет трудно запоминать:

Для подачи на него команд будем использовать скриптовый программер игровых контроллеров GlovePIE с костылем из Midi-OX. Я пробовал настроить без мидиокса, но походу гловпай не умеет одновременно принимать и передавать комманды на одно и то же устройство. В итоге имеем такую схему:

То есть все что делает MIDI-OX в данном случае - тупо переадресует приходящие команды с интерфейса Midi Yoke (виртуального, к слову) на "железный" ланчпад/ланч контрол.

Самый простой скрипт в этом случае будет звучать так:

Анимацию же можно делать через процедуры. И тут у нас образовывается косячок. Дело в том, что сам скрипт гловпая - не линеен, в нем, допустим, не работают циклы. Потомы что сам скрипт есть по сути цикл, который выполняется каждую 1 миллисекунду (или даже чаще) пока не будет команды exitprogram;


Управлять этим хаосом можно только с помощью стандартных if {} конструкций, операторов wait; и переменных var.ИмяПеременной в качестве переключателей. К примеру:

То есть при нажатии на кнопку cc37 (угловая кнопка справа) и если при этом режим контроллера не изменен - ланчконтролл перемигивается красным цветом и потухает.


Покажу наглядно. Вот на этом видео:

С 1:40 обрабатывается этот код:

Надеюсь, все было достаточно информативно, лаконично и не скучно. 

Если пожелаете - могу подробно рассказать, для чего все это было задумано.


Я бы не советовал владельцам ланч-контрола извращаться анимацией песен на одной линии но - у меня ж отпуск впереди, черт возьми! Наберет пост много рейтинга - запилю "виджеинг" на этой доске на какую-нибудь песню.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества