Ако сте меломан или директно аматьор или професионален музикант, със сигурност във вашия дом сте натрупали голяма колекция от музикални инструменти. За да направите всичко това перфектно, най-добре е да вземете MIDI контролер. За съжаление, тези видове обекти обикновено са доста скъпи, така че е трудно човек без твърде много ресурси да получи достъп до всичко, което може да предложи.
За да разберете много по-добре какво е MIDI контролер, кажете ви, че думата MIDI идва от Музикален инструмент Цифров интерфейс, тоест един вид контролер, който кара електронните музикални устройства да могат да комуникират помежду си. Ако например имате електронна клавиатура у дома, повече от вероятно е тя да има MIDI интерфейс. Преди да продължи да напредва, въпреки факта, че има определени технически подробности, които могат да накарат човек да вярва в противното, трябва да е много ясно, че MIDI не е аудио.
Създайте свой собствен MIDI контролер с този прост урок
След като се изясним по този въпрос, със сигурност ще ви бъде много по-лесно да разберете, че MIDI е просто просто набор от инструкции, способен да поддържа до 16 независими канала, което означава, че може да има до 16 различни устройства, които комуникират независимо помежду си. Тези устройства трябва да бъдат свързани чрез 5-пинов DIN кабел, който по същество е кабел с пет щифта вътре в конектор. Като детайл е доста често да се използва USB вместо 5-пинов DIN, в случай на използване на USB трябва да създадем USB-MIDI интерфейс.
Без повече шум ви оставям линка, където можете да намерите настойнически стъпка по стъпка с много описателни изображения където можем да извършим всички необходими действия за създаване на наш собствен MIDI контролер.
Как да направите свой собствен MIDI контролер с Arduino
Много са хората, които по различни причини, както лични, така и професионални, трябва да използват a напълно персонализиран MIDI контролер Защото може би и като пример, в даден момент от живота ви като художник, закупуването на евтин MIDI контролер може да не отговори на вашите очаквания или нужди, докато, когато дойде време, изборът на професионална версия може да е прекален и за двата финансови ресурси. нуждата, както и големия брой функции, които могат да предложат.
Поради това днес искам да ви покажа всичко, от което се нуждаете, за да можете да направите свой собствен MIDI контролер, като посочите както всичко необходимо за неговата конструкция, така и да ви предложим софтуера, който ще трябва да инсталирате. Като детайл, за този проект е от съществено значение използването на дъска Arduino, контролер, който е достатъчно мощен, за да изпълни тази задача.
Какво е MIDI контролер?
По принцип, MIDI контролерът е отговорен, най-общо казано, за свързване на различни музикални устройства помежду си. Много са инструментите, които включват MIDI интерфейс, въпреки че това трябва да е много ясно, тъй като има много потребители, които често са объркани, MIDI не е аудио файл, а много прост набор от инструкции, които даден инструмент може да получи. или настройки на звука.
Вътре в MIDI има два различни типаОт една страна имаме тази, наречена Control Control, която има номер на контролера и стойност между 0 и 127. Благодарение на това могат да се издават съобщения, където могат да се променят различни параметри като сила на звука или тон. Различните инструменти, които приемат MIDI, трябва да носят със себе си ръководство, обясняващо кои канали и съобщения са зададени по подразбиране и как да ги променяте.
На второ място имаме Промяна на програмата, поредица от съобщения, които от своя страна са много по-прости от тези, които съставляват контрола на промяната. Тези типове съобщения се използват за промяна на предварителната настройка или кръпка на устройство. Както при контрола на промяната, заедно с вашия инструмент, производителят трябва да включва ръчно указание кои предварителни настройки са променени от конкретно съобщение.
Части, необходими за изграждане на собствен домашен MIDI контролер
За да можете да изградите свой собствен MIDI контролер, ще ви трябва серия от парчета в допълнение, както вече споменахме, платка Arduino. Преди да продължите, просто ви кажете, че може би в бъдеще, защото искате да разширите проекта, имате нужда от повече неща, въпреки че в този момент с няколко парчета ще имате много.
Ще ни трябват женски 5-полюсен DIN кабел, 2 220 ома резистора, 2 моментни превключвателя, 2 10k ома резистори, свързващи проводници, платка, MIDI кабел и MIDI устройство или USB интерфейс. Само с тези парчета можете да започнете, следвайки моите стъпки, да направите свой собствен MIDI контролер.
Първи стъпки
Преди да започнете, оставям ви снимка, на която можете да видите щифтовете на вашия MIDI кабел, по този начин можем правилно да идентифицираме щифтовете и особено къде да свържем всеки един. Най-общо казано, всичко, което трябва да направите в този момент, е да свържете щифт 5 на кабела към резистор 220 ома и оттам към Arduino Transmit 1, щифт 4 към резистор 220 ома и оттам към 5V гнездо на Arduino докато pin 2 трябва да бъде свързан към наземната връзка на вашия контролер.
След като тази стъпка приключи, нямате подробна схема на снимката, която се намира точно под тези редове, време е да свържете бутоните. Идеята в този раздел е да се постигне, като се използва щифт digitalRead (способен да разпознае, когато напрежението, което достига до него, се промени), за да може да се използва транзистор за постигане, с натискане на бутон. За това трябва само да използваме бутон, така че от лявата страна да го свържем към 5V, от дясната страна към съпротивление 220 ома и оттам към земята, докато от своя страна свързваме и дясната страна към щифт 6 Вторият бутон ще бъде инсталиран по същия начин, въпреки че, както можете да видите на диаграмата, вместо щифт 6, ние го свързваме към 7.
Софтуер за използване за домашен midi контролер
След като приключим с целия хардуер, е време да свържем нашия инструмент и да тестваме. Преди това трябва да имаме 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 контролер
След като изпълним тези тестове, е време да съберем собствен 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 не са пълни ....
Бихте ли ми казали кои са необходими?
Благодаря Ви много.
Здравейте.
Бих искал да направя електронен барабанен модул, като замествам бутоните с входове за жак, към които ще пристига пиезоелектричен сигнал.
Би ли било възможно да го направя?
Моля, ако можете да дадете включванията на този код, интересувам се от този проект.