Существует много разных пультов, которые помогают диджеям при сведении и работе с музыкой. Стоят они не мало, а покрутить ручки хочется. Сделаем Midi микшер и подключим его к программе для диджеев (Traktor Pro 2).
Устройство будет иметь 8 поворотных потенциометров которые позволят управлять громкостью, низкими, средними и высокими частотами эквалайзера и 2 кнопки, для кнопки play/pause.
Приступим!
Компоненты
Основой нашего проекта будет плата arduino pro micro (или arduino leonardo). Управлять будем поворотными потенциометрами. На них наденем цветные ручки. Понадобятся две кнопки и большой кондёр на 4700 мкФ (от 6 вольт). Запихнем все это в корпус из коробки.
Электронная схема и сборка.
Для начала давайте подготовим коробку. В ней надо прорезать 8 отверстий диаметром 6 миллиметров, два отверстия по 12 миллиметров и отверстие под юсб провод на задней панели.
Следующий этап крепление потенциометров и кнопок. Вставляем деталь и закручиваем гайку.
Настало время спаять компоненты вместе. Я сделал всё на китайской зеленой макетке. Вы можете сделать на бредборде или вытравить/заказать плату. Не игнорируйте конденсатор, без него устройство не будет работать!
Прошивка.
Алгоритм программы простой. Опрашиваем потенциометры и кнопки, отправляем данные на компьютер.
#include <frequencyToNote.h>
#include <MIDIUSB.h>
#include <pitchToFrequency.h>
#include <pitchToNote.h>
#define n_pots 8
int val;
int last_val[n_pots]={0,0,0,0,0,0,0,0};
int pot_pins[n_pots]={0,1,2,3,6,7,8,9};
#define btn0pin 2
#define btn1pin 3
void setup() {
Serial.begin(9600);
pinMode(btn0pin, INPUT);
pinMode(btn1pin, INPUT);
}
void loop() {
for (int i =0; i<n_pots;i++){
val = (int)analogRead(pot_pins[i])/8;
if (val != last_val[i]) {
last_val[i] = val;
controlChange(0, i, val);
}
}
if (digitalRead(btn0pin)){
controlChange(0,9,1);
while(digitalRead(btn0pin)){}
}
if (digitalRead(btn1pin)){
controlChange(0,10,1);
while(digitalRead(btn1pin)){}
}
delay(30);
}
void controlChange(byte channel, byte control, byte value) {
midiEventPacket_t event = {0x0B, 0xB0 | channel, control, value};
MidiUSB.sendMIDI(event);
MidiUSB.flush();
}
Для прошивки платы не надо устанавливать драйвера, но в инструментах надо выбрать плату Arduino Leonardo.
Использование: Для примера использования я взял traktor pro 2. Откройте его, а затем найдите в нем “Controller manager”. Здесь мы привяжем потенциометры к рычагам интерфейса.
Нажмите “Add device” — “Generic MIDI”. Выберите вход — “Arduino Leonardo”.
Теперь надо указать все рычажки управления. Два канала, в каждом есть: громкость, верхние, средние, нижние частоты и кнопка “Play/Pause”.
Нажмите “ Add in” и найдите Volume/High/Mid/Low. Выберите канал (A или B). Нажмите learn. Покрутите потенциометр. Нажмите learn снова. Сделайте это со всеми элементами.
Давайте добавим кнопку “Play/Pause”. Привяжите кнопку, как потенциометр. Поменяйте режим взаимодействия кнопки “Toggle”.
Теперь можем включать любимые треки и наслаждаться процессом сведения.