MIDI микшер на Arduino Pro Micro

Существует много разных пультов, которые помогают диджеям при сведении и работе с музыкой. Стоят они не мало, а покрутить ручки хочется.  Сделаем 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”.

Теперь можем включать любимые треки и наслаждаться процессом сведения.

Загрузка ...
The Robot
Adblock
detector