Если вы меломан или непосредственно любитель или профессиональный музыкант, наверняка у вас дома накопилась большая коллекция музыкальных инструментов. Чтобы все это смешалось идеально, лучше всего получить MIDI-контроллер. К сожалению, эти типы объектов обычно довольно дороги, поэтому человеку, не имеющему слишком много ресурсов, трудно получить доступ ко всему, что они могут предложить.
Чтобы лучше понять, что такое MIDI-контроллер, скажите, что слово MIDI происходит от Музыкальный инструмент Цифровой интерфейс, то есть своего рода контроллер, который позволяет электронным музыкальным устройствам взаимодействовать друг с другом. Например, если у вас дома есть электронная клавиатура, более чем вероятно, что у нее есть интерфейс MIDI. Прежде чем продолжить движение вперед, несмотря на то, что есть определенные технические детали, которые могут заставить вас поверить в обратное, вы должны четко заявить, что MIDI - это не звук.
Создайте свой собственный MIDI-контроллер с помощью этого простого урока
Как только мы это проясним, вам наверняка будет намного легче понять, что MIDI - это просто набор команд, поддерживающий до 16 независимых каналов, что означает, что может быть до 16 различных устройств, обменивающихся независимо друг с другом. Эти устройства должны быть подключены с помощью 5-контактного кабеля DIN, который в основном представляет собой кабель с пятью контактами внутри разъема. В частности, довольно часто используется USB вместо 5-контактного DIN, в случае использования USB мы должны создать интерфейс USB-MIDI.
Без лишних слов оставляю вам ссылку, по которой вы можете найти учебник шаг за шагом с большим количеством описательные изображения где мы можем выполнить все необходимые действия для создания собственного MIDI-контроллера.
Как сделать свой собственный MIDI-контроллер с Arduino
Есть много людей, которым по разным причинам, как личным, так и профессиональным, необходимо использовать полностью настраиваемый MIDI-контроллер Потому что, возможно, и в качестве примера, в какой-то момент вашей жизни как артиста покупка недорогого MIDI-контроллера может не соответствовать вашим ожиданиям или потребностям, в то время как, когда придет время, выбор профессиональной версии может оказаться чрезмерным в обоих финансовых ресурсах. потребность, а также большое количество функций, которые они могут предложить.
В связи с этим сегодня я хочу показать вам все, что вам нужно, чтобы вы могли создать свой собственный MIDI-контроллер, указав как все необходимое для его создания, так и предложив вам программное обеспечение, которое вам нужно будет установить. В частности, для этого проекта необходимо использование платы Arduino, контроллера, который достаточно мощный для выполнения этой задачи.
Что такое MIDI-контроллер?
По сути, MIDI-контроллер отвечает, в широком смысле, за подключение различных музыкальных устройств друг к другу. Многие инструменты имеют интерфейс MIDI, хотя это должно быть очень ясно, поскольку многие пользователи часто путаются, MIDI - это не аудиофайл, а очень простой набор инструкций, которые инструмент может получить. или настройки звука.
Внутри MIDI есть два разных типаС одной стороны, у нас есть тот, который называется Change Control, где он имеет номер контроллера и значение от 0 до 127. Благодаря этому могут быть выпущены сообщения, в которых могут быть изменены различные параметры, такие как громкость или тон. Различные инструменты, которые принимают MIDI, должны иметь с собой руководство, в котором объясняется, какие каналы и сообщения установлены по умолчанию и как их изменить.
Во-вторых, у нас есть Program Change, серия сообщений, которые, в свою очередь, намного проще, чем те, которые составляют контроль изменений. Эти типы сообщений используются для изменения предустановки или патча устройства. Как и в случае с Change Control, производитель должен приложить к вашему инструменту руководство, в котором указывается, какие пресеты изменяются с помощью определенного сообщения.
Детали, необходимые для сборки вашего собственного самодельного MIDI-контроллера
Чтобы создать свой собственный MIDI-контроллер, вам понадобится ряд деталей в дополнение, как мы уже упоминали, к плате Arduino. Прежде чем продолжить, просто скажите вам, что, возможно, в будущем, из-за того, что вы захотите расширить проект, вам понадобится больше вещей, хотя на данный момент у вас будет несколько частей.
Нам понадобится 5-полюсный DIN-кабель с гнездом, 2 резистора 220 Ом, 2 переключателя без фиксации, 2 резистора 10 кОм, соединительные провода, монтажная плата, MIDI-кабель и MIDI-устройство или интерфейс USB. С этими частями вы можете приступить, следуя моим шагам, к созданию собственного MIDI-контроллера.
Primeros PASOS
Прежде чем начать, я оставляю вам изображение, на котором вы можете увидеть контакты вашего 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);
где значение и канал должны иметь желаемые значения, которые вы хотите отобразить.
Пример работы:
Arduino предлагает множество возможностей для самостоятельного выполнения проектов. https://www.juguetronica.com/arduino . Одна из лучших вещей - это то, что вы можете начать, не будучи экспертом, и продолжать учиться, тем самым мотивируя себя на самоучку.
Привет.
Я пытаюсь выполнить этот фантастический урок… но #includes не полны….
Подскажите, какие из них необходимы?
Большое спасибо.
Эй.
Я хотел бы сделать электронный модуль ударных, заменив кнопки на входы jack, на которые будет приходить пьезоэлектрический сигнал.
Можно ли было бы это сделать?
Пожалуйста, если бы вы могли включить этот код, я заинтересован в этом проекте.