Создайте свой собственный MIDI-контроллер с Arduino

MIDI

Если вы меломан или непосредственно любитель или профессиональный музыкант, наверняка у вас дома накопилась большая коллекция музыкальных инструментов. Чтобы все это смешалось идеально, лучше всего получить MIDI-контроллер. К сожалению, эти типы объектов обычно довольно дороги, поэтому человеку, не имеющему слишком много ресурсов, трудно получить доступ ко всему, что они могут предложить.

Чтобы лучше понять, что такое MIDI-контроллер, скажите, что слово MIDI происходит от Музыкальный инструмент Цифровой интерфейс, то есть своего рода контроллер, который позволяет электронным музыкальным устройствам взаимодействовать друг с другом. Например, если у вас дома есть электронная клавиатура, более чем вероятно, что у нее есть интерфейс MIDI. Прежде чем продолжить движение вперед, несмотря на то, что есть определенные технические детали, которые могут заставить вас поверить в обратное, вы должны четко заявить, что MIDI - это не звук.

Создайте свой собственный MIDI-контроллер с помощью этого простого урока

Как только мы это проясним, вам наверняка будет намного легче понять, что MIDI - это просто набор команд, поддерживающий до 16 независимых каналов, что означает, что может быть до 16 различных устройств, обменивающихся независимо друг с другом. Эти устройства должны быть подключены с помощью 5-контактного кабеля DIN, который в основном представляет собой кабель с пятью контактами внутри разъема. В частности, довольно часто используется USB вместо 5-контактного DIN, в случае использования USB мы должны создать интерфейс USB-MIDI.

Без лишних слов оставляю вам ссылку, по которой вы можете найти учебник шаг за шагом с большим количеством описательные изображения где мы можем выполнить все необходимые действия для создания собственного MIDI-контроллера.

Теме статьи:
Как изменить имя пользователя и пароль Pi на нашем Raspberry Pi

Как сделать свой собственный MIDI-контроллер с Arduino

разъем midi

Есть много людей, которым по разным причинам, как личным, так и профессиональным, необходимо использовать полностью настраиваемый MIDI-контроллер Потому что, возможно, и в качестве примера, в какой-то момент вашей жизни как артиста покупка недорогого MIDI-контроллера может не соответствовать вашим ожиданиям или потребностям, в то время как, когда придет время, выбор профессиональной версии может оказаться чрезмерным в обоих финансовых ресурсах. потребность, а также большое количество функций, которые они могут предложить.

В связи с этим сегодня я хочу показать вам все, что вам нужно, чтобы вы могли создать свой собственный MIDI-контроллер, указав как все необходимое для его создания, так и предложив вам программное обеспечение, которое вам нужно будет установить. В частности, для этого проекта необходимо использование платы Arduino, контроллера, который достаточно мощный для выполнения этой задачи.

Теме статьи:
Как сделать робота: 3 разных варианта

Что такое MIDI-контроллер?

миди

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

Внутри MIDI есть два разных типаС одной стороны, у нас есть тот, который называется Change Control, где он имеет номер контроллера и значение от 0 до 127. Благодаря этому могут быть выпущены сообщения, в которых могут быть изменены различные параметры, такие как громкость или тон. Различные инструменты, которые принимают MIDI, должны иметь с собой руководство, в котором объясняется, какие каналы и сообщения установлены по умолчанию и как их изменить.

Во-вторых, у нас есть Program Change, серия сообщений, которые, в свою очередь, намного проще, чем те, которые составляют контроль изменений. Эти типы сообщений используются для изменения предустановки или патча устройства. Как и в случае с Change Control, производитель должен приложить к вашему инструменту руководство, в котором указывается, какие пресеты изменяются с помощью определенного сообщения.

Детали, необходимые для сборки вашего собственного самодельного MIDI-контроллера

Схема разъема Midi

Чтобы создать свой собственный MIDI-контроллер, вам понадобится ряд деталей в дополнение, как мы уже упоминали, к плате Arduino. Прежде чем продолжить, просто скажите вам, что, возможно, в будущем, из-за того, что вы захотите расширить проект, вам понадобится больше вещей, хотя на данный момент у вас будет несколько частей.

Нам понадобится 5-полюсный DIN-кабель с гнездом, 2 резистора 220 Ом, 2 переключателя без фиксации, 2 резистора 10 кОм, соединительные провода, монтажная плата, MIDI-кабель и MIDI-устройство или интерфейс USB. С этими частями вы можете приступить, следуя моим шагам, к созданию собственного MIDI-контроллера.

Primeros PASOS

Схема миди Arduino

Прежде чем начать, я оставляю вам изображение, на котором вы можете увидеть контакты вашего MIDI-кабеля, таким образом мы можем правильно определить контакты и, особенно, где каждый из них должен быть подключен. Вообще говоря, все, что вам нужно сделать на этом этапе, это подключить контакт 5 кабеля к резистору 220 Ом, а оттуда к Arduino Transmit 1, контакт 4 к резистору 220 Ом, а оттуда к разъему 5V Arduino, в то время как контакт 2 должен быть подключен к заземлению вашего контроллера.

После того, как этот шаг будет выполнен, у вас не будет подробной схемы на фотографии, которая расположена чуть ниже этих линий, пришло время соединить кнопки. Идея в этом разделе состоит в том, чтобы с помощью вывода digitalRead (способного определять, когда достигнутое напряжение изменяется) можно было использовать транзистор для достижения этого нажатием кнопки. Для этого нам нужно использовать только кнопку, так что левую ее сторону мы подключаем к 5 В, правую сторону к сопротивлению 220 Ом и оттуда к земле, в свою очередь, мы также подключаем правую сторону к контакту 6. Вторая кнопка будет установлена ​​таким же образом, хотя, как вы можете видеть на схеме, вместо контакта 6 мы подключаем ее к 7.

Программное обеспечение для домашнего миди-контроллера

После того, как мы закончили со всем оборудованием, пришло время подключить наш прибор и протестировать. Перед этим нам нужно иметь Интерфейс USB-MIDI и MIDI-кабель для подключения платы, отправляющей данные, к нашему компьютеру. Для этого мы выбрали библиотеку MIDI v4.2, созданную ребятами из Forty Seven Effects, которую мы должны были установить на нашу Arduino и включить в проект.

В случае с компьютером нам понадобится программа, способная контролировать все MIDI-данные, поступающие на него от Arduino. Для этого у нас есть разные возможности, такие как MIDI Monitor (OS X), MIDI-OX (Windows) или Kmidimon (Linux).

Чтобы провести небольшой тест, нам просто нужно подключить Arduino к нашему компьютеру и выполнить следующий код:

#include
#include
#include
#include
#include

MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // crear objeto de salida MIDI llamado midiOut

void setup() {
Serial.begin(31250); // configuracion de serial para MIDI
}

void loop() {
midiOut.sendControlChange(56,127,1); // envío de señal MIDI CC -- 56 = nota, 127 = velocidad, 1 = canal
delay(1000); // retraso
midiOut.sendProgramChange(12,1); // envío de una señal MIDI PC -- 12 = valor, 1 = canal
delay(1000); // retraso de 1 segundo
}

Если все прошло хорошо, вы можете перейти к тесту кнопок, если этот тест у вас не сработал, вы должны убедиться, что все соединения правильные, схема точно такая же, как на предыдущей схеме, схема подключается к интерфейсу USB-MIDI с помощью кабеля MIDI, кабели MIDI-порта подключены правильно, MIDI-кабель подключен ко входу интерфейса USB-MIDI, плата Arduino правильно подключена к электрической сети и имеет достаточную мощность ...

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

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

const int boton1 = 6; // asignacion del boton a una variable
const int boton2 = 7; // asignacion del boton a una variable

void setup() {
Serial.begin(9600); // configuracion del serial
pinMode(boton1,INPUT); // configuracion del boton1 como entrada
pinMode(boton2,INPUT); // configuracion del boton2 como entrada
}

void loop() {

if(digitalRead(boton1) == HIGH) { // prueba de estado del boton1
delay(10); // retraso
if(digitalRead(boton1) == HIGH) { // prueba de estado de nuevo
Serial.println("Boton 1 funciona correctamente!"); // log
delay(250);
}
}

if(digitalRead(boton2) == HIGH) { // prueba de boton 2
delay(10); // retraso
if(digitalRead(boton2) == HIGH) { // prueba de estado de nuevo
Serial.println("Boton 2 funciona correctamente!"); // log
delay(250);
}
}

}

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

Создаем самодельный миди-контроллер

После того, как мы выполнили эти тесты, пришло время собрать для этого наш собственный MIDI-контроллер, вам нужно будет только скомпилировать следующий код:

#include
#include
#include
#include
#include

const int boton1 = 6; // asignamos boton a la variable
const int boton2 = 7; // asignamos boton a la variable

MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // create a MIDI object called midiOut

void setup() {
pinMode(boton1,INPUT); // configuracion del boton1 como una entrada
pinMode(boton2,INPUT); // configuracion del boton2 como una entrada
Serial.begin(31250); // configuracion MIDI de salida
}

void loop() {
if(digitalRead(buttonOne) == HIGH) { // comprobacion de estado
delay(10); // retraso
if(digitalRead(buttonOne) == HIGH) { // comprobacion de estado de nuevo
midiOut.sendControlChange(56,127,1); // envío un MIDI CC -- 56 = nota, 127 = velocidad, 1 = canal
delay(250);
}
}

if(digitalRead(buttonTwo) == HIGH) { // comprobacion de estado
delay(10); // retraso
if(digitalRead(buttonTwo) == HIGH) { // nueva comprobacion de estado
midiOut.sendControlChange(42,127,1); // envío un MIDI CC -- 42 = nota, 127 = velocidad, 1 = canal
delay(250);
}
}
}

В качестве подробностей скажу вам, что на этот раз вы не можете использовать команду Serial.println () с выходом MIDI, если вы хотите показать какой-либо тип сообщения на компьютере, просто измените:

midiOut.sendControlChange(42,127,1);

по:

midiOut.sendControlChange(value, channel);

где значение и канал должны иметь желаемые значения, которые вы хотите отобразить.

Пример работы:


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

4 комментариев, оставьте свой

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Альфред сказал

    Arduino предлагает множество возможностей для самостоятельного выполнения проектов. https://www.juguetronica.com/arduino . Одна из лучших вещей - это то, что вы можете начать, не будучи экспертом, и продолжать учиться, тем самым мотивируя себя на самоучку.

  2.   Данел Роман сказал

    Привет.

    Я пытаюсь выполнить этот фантастический урок… но #includes не полны….

    Подскажите, какие из них необходимы?

    Большое спасибо.

  3.   Uell сказал

    Эй.
    Я хотел бы сделать электронный модуль ударных, заменив кнопки на входы jack, на которые будет приходить пьезоэлектрический сигнал.
    Можно ли было бы это сделать?

  4.   Эдуардо Валенсуэла сказал

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