The Legend VST FX Special Controller

У музыкантов диайвайщиков, появилось новое направление реализации своего таланта в устройствостроении, а именно: делать миди контроллеры под определённый виртуальный инструмент. Стоп! Это уже где - то было?....

Да, это было здесь: [The Legend VST Synth Special Controller](The Legend VST Synth Special Controller)

Ситуация в том, что я не остановился, только на этом - реализуя в корпусе свой любимый VST. У программной версии The Legend  - есть ещё и переключение на заднюю панель, где расположены тонкие подстройки и эффекты.

Эффекты - это в частности: дилей и ревербератор.

The Legend VST FX Special Controller Arduino, Controller, Midi, Moog, Musicmaker, Своими руками, Видео, Длиннопост

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

Принял решение, сделать ещё один контроллер - для задней панели виртуального синтезатора.

The Legend VST FX Special Controller Arduino, Controller, Midi, Moog, Musicmaker, Своими руками, Видео, Длиннопост

Но откровенно говоря, для полноценного и большого контроллера: как изначальная версия, крутилок и параметров маловато. Немного пофантазировав, решил добавить вниз обычные нотные клавиши, так скажем, на октаву или октаву с небольшим. Наличие данных клавиш, явно не помешает, так как крутя звук, нужно быстро дать команду и на его запуск ))))

The Legend VST FX Special Controller Arduino, Controller, Midi, Moog, Musicmaker, Своими руками, Видео, Длиннопост

Кнопочки будут круглыми - это и экономически проще, и технически, и выглядит неплохо. Заказал всё на Алике (как всегда): леонардо, два мультиплексера, кнопки, крутилки, диод (а он тут один), колпаки и собственно - всё... Ах да! - корпус?! Корпус - вторая половина от располовиненного в прошлый раз Gainta G 756.

The Legend VST FX Special Controller Arduino, Controller, Midi, Moog, Musicmaker, Своими руками, Видео, Длиннопост

Библиотека, как и в прошлые разы: Control Surface, которая превращает написание кода в сущую банальность. Код ниже по тексту...

Пайка, как бог на душу пошлёт, ну в смысле- последовательность особо не имеет значения, главное, потом промапить соответственно в вашей DAW.

Теперь , любимый VST управляется полностью с двух контроллеров. Я засел крутить себе неземные патчи, при этом не забывая их записывать в отдельную папку с пресетами. Придёт время, может куда то и выложу сей труд.

The Legend VST FX Special Controller Arduino, Controller, Midi, Moog, Musicmaker, Своими руками, Видео, Длиннопост

https://youtu.be/g336wUsinUM

КОД:

#include <Control_Surface.h>

#include "MIDIUSB.h"

USBMIDI_Interface midi;

using namespace MIDI_Notes;

CD74HC4067 muxPots = { A0, {2, 3, 4, 5},};

CD74HC4067 muxPots1 = { 6, {2, 3, 4, 5},};

CCPotentiometer potentiometer[] = {

{A1,{25, CHANNEL_7}},

{muxPots.pin(0),{26, CHANNEL_7}},

{muxPots.pin(1),{27, CHANNEL_7}},

{muxPots.pin(2),{28, CHANNEL_7}},

{muxPots.pin(3),{29, CHANNEL_7}},

{muxPots.pin(4),{30, CHANNEL_7}},

{muxPots.pin(5),{31, CHANNEL_7}},

{muxPots.pin(6),{32, CHANNEL_7}},

{muxPots.pin(7),{33, CHANNEL_7}},

{muxPots.pin(8),{34, CHANNEL_7}},

{muxPots.pin(9),{35, CHANNEL_7}},

{muxPots.pin(10),{36, CHANNEL_7}},

{muxPots.pin(11),{37, CHANNEL_7}},

{muxPots.pin(12),{38, CHANNEL_7}},

{muxPots.pin(13),{39, CHANNEL_7}},

{muxPots.pin(14),{40, CHANNEL_7}},

{muxPots.pin(15),{41, CHANNEL_7}},

};

NoteButton buttons[] = {

{muxPots1.pin(0),{note(C, 4), CHANNEL_1}},

{muxPots1.pin(1),{note(Db, 4), CHANNEL_1}},

{muxPots1.pin(2),{note(D, 4), CHANNEL_1}},

{muxPots1.pin(3),{note(Eb, 4), CHANNEL_1}},

{muxPots1.pin(4),{note(E, 4), CHANNEL_1}},

{muxPots1.pin(5),{note(F, 4), CHANNEL_1}},

{muxPots1.pin(6),{note(Gb, 4), CHANNEL_1}},

{muxPots1.pin(7),{note(G, 4), CHANNEL_1}},

{muxPots1.pin(8),{note(Ab, 4), CHANNEL_1}},

{muxPots1.pin(9),{note(A, 4), CHANNEL_1}},

{muxPots1.pin(10),{note(Bb, 4), CHANNEL_1}},

{muxPots1.pin(11),{note(B, 4), CHANNEL_1}},

{muxPots1.pin(12),{note(C, 5), CHANNEL_1}},

{muxPots1.pin(13),{note(Db, 5), CHANNEL_1}},

{muxPots1.pin(14),{note(D, 5), CHANNEL_1}},

{muxPots1.pin(15),{note(Eb, 4), CHANNEL_1}},

};

void setup() {

Control_Surface.begin(); // Initialize Control Surface

muxPots.begin();

muxPots1.begin();

}

void loop() {

Control_Surface.loop(); // Update the Control Surface

}

Arduino & Pi

1.4K поста20.6K подписчика

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу