Направите сопствени МИДИ контролер са Ардуином

МИДИ

Ако сте љубитељ музике или директно аматер или професионални музичар, сигурно сте у свом дому сакупили велику колекцију музичких инструмената. Да бисте све ове комбинације направили савршено, најбоље је набавити а МИДИ контролер. Нажалост, ове врсте предмета су обично прилично скупе, па је човеку без превише ресурса тешко да приступи свему што може да понуди.

Да бисте много боље разумели шта је МИДИ контролер, рецимо вам да реч МИДИ потиче Дигитални интерфејс музичког инструмента, односно врста контролера који електронским музичким уређајима омогућава међусобну комуникацију. На пример, ако код куће имате електронску тастатуру, више је вероватно да она има МИДИ интерфејс. Пре наставка напредовања, упркос чињеници да постоје одређени технички детаљи који могу навести некога да верује у супротно, мора бити врло јасно да МИДИ није аудио.

Креирајте сопствени МИДИ контролер помоћу овог једноставног водича

Једном када се са овим јасно разумемо, сигурно ће вам бити много лакше да схватите да је МИДИ једноставно сет инструкција способан да подржи до 16 независних канала, што значи да може бити до 16 различитих уређаја који међусобно комуницирају независно. Ови уређаји морају бити повезани помоћу 5-пинског ДИН кабла, који је у основи кабл са пет пинова унутар конектора. Као детаљ, прилично је уобичајено користити УСБ уместо 5-пинског ДИН-а, у случају коришћења УСБ-а морамо створити УСБ-МИДИ интерфејс.

Без даљег одлагања остављам вам везу на којој можете пронаћи Туториал корак по корак са пуно описне слике где можемо извршити све потребне радње за стварање сопственог МИДИ контролера.

Повезани чланак:
Како да променим корисничко име и лозинку за Пи на нашој Распберри Пи

Како направити свој властити МИДИ контролер помоћу Ардуина

миди конектор

Многи су људи који из различитих разлога, како из личног, тако и из професионалног разлога, морају да користе а потпуно прилагођени МИДИ контролер Јер можда и као пример, у неком тренутку вашег живота као уметника, куповина јефтиног МИДИ контролера можда неће испунити ваша очекивања или потребе док, када за то дође време, одлучивање за професионалну верзију може бити претерано у оба финансијска ресурса. потребе, као и велики број функција које могу да понуде.

Због овога, данас желим да вам покажем све што вам је потребно како бисте могли да направите сопствени МИДИ контролер, назначујући и све што је потребно за његову изградњу и нудећи вам софтвер који ћете морати да инсталирате. Као детаљ, за овај пројекат је од кључне важности употреба Ардуино плоче, контролера који је довољно моћан да изврши овај задатак.

Како направити робота
Повезани чланак:
Како направити робота: 3 различите опције

Шта је МИДИ контролер?

миди

У основи, МИДИ контролер је одговоран, широко говорећи, за међусобно повезивање различитих музичких уређаја. Многи су инструменти који садрже МИДИ интерфејс, мада то мора бити врло јасно, јер има много корисника који су често збуњени, МИДИ није аудио датотека, већ врло једноставан сет упутстава која инструмент може примити. или подешавања звука.

Унутар МИДИ-а постоје два различита типаС једне стране имамо ону под називом Цханге Цонтрол, која има број контролера и вредност између 0 и 127. Захваљујући томе, могу се издавати поруке где се могу променити различити параметри као што су јачина или тон. Различити инструменти који прихватају МИДИ треба да понесу са собом приручник који објашњава који су канали и поруке подразумевано подешени и како их променити.

На другом месту је промена програма, серија порука које су заузврат много једноставније од оних које чине контролу промене. Ове врсте порука се користе за промену унапред подешене поставке или закрпе уређаја. Као и код контроле промена, произвођач мора заједно са вашим инструментом садржати и приручник који показује које су унапред подешене поставке промењене одређеном поруком.

Делови потребни за израду сопственог домаћег МИДИ контролера

Шема Миди конектора

Да бисте могли да направите свој властити МИДИ контролер, требат ће вам низ дијелова поред, као што смо већ споменули, Ардуино плоче. Пре него што наставите, само вам реците да ће вам можда у будућности, јер желите да проширите пројекат, требати још ствари, иако ћете у овом тренутку имати неколико комада.

Требаће нам женски 5-полни ДИН кабл, 2 отпорника од 220 ома, 2 тренутна прекидача, 2 отпорника од 10 к ома, прикључне жице, плочица, МИДИ кабл и МИДИ уређај или УСБ интерфејс. Са само овим деловима можете започети, пратећи моје кораке, да направите свој властити МИДИ контролер.

Први кораци

Ардуино миди шема

Пре почетка остављам вам слику на којој можете видети пинове вашег МИДИ кабла, на тај начин можемо правилно идентификовати пинове, а посебно где треба повезати сваки. Уопштено говорећи, све што у овом тренутку треба да урадите је да повежете пин 5 кабла на отпорник од 220 охма, а одатле на Ардуино Трансмит 1, пин 4 на отпорник од 220 охма, а одатле на 5В утичницу Ардуино док пин 2 мора бити повезан на прикључак уземљења вашег контролера.

Једном када је овај корак завршен, на фотографији немате детаљан дијаграм који се налази одмах испод ових линија, време је да повежете тастере. Идеја у овом одељку је постићи да се помоћу пин-а дигиталРеад (способног за детекцију када се напон који га достигне) омогући коришћење транзистора притиском на дугме. За то морамо користити само дугме тако да га на левој страни повежемо на 5В, десну на отпор од 220 охма и одатле на земљу, док заузврат такође повежемо десну страну на пин 6 Друго дугме би се инсталирало на исти начин, иако га, као што видите на дијаграму, уместо пина 6 повезујемо са 7.

Софтвер за употребу за кућни миди контролер

Када завршимо са свим хардвером, време је да повежемо свој инструмент и тестирамо. Пре тога морамо да имамо УСБ-МИДИ интерфејс и МИДИ кабл да повежемо плочу која шаље податке са нашим рачунаром. Да бисмо то постигли, одлучили смо се за МИДИ в4.2 библиотеку коју су креирали момци из Форти Севен Еффецтс коју смо морали инсталирати на наш Ардуино и укључити у пројекат.

У случају рачунара, биће нам потребан програм који је у стању да надгледа све МИДИ податке који му стижу из Ардуина. За ово имамо различите могућности као што су МИДИ Монитор (ОС Кс), МИДИ-ОКС (Виндовс) или Кмидимон (Линук)

Да бисмо направили мали тест, само морамо повезати Ардуино са рачунаром и извршити следећи код:

#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
}

Ако је све прошло у реду, можете да пређете на тест дугмета, у случају да вам тест није успео, морате се уверити да су све везе исправне, коло је потпуно исто као и претходни дијаграм, коло је повезан са УСБ-МИДИ интерфејсом МИДИ каблом, каблови МИДИ порта су правилно повезани, МИДИ кабл је повезан на улаз УСБ-МИДИ интерфејса, Ардуино плоча је правилно повезана на електричну мрежу и има довољно снаге ...

Тестирање исправности тастера

Пре него што наставите да храните наш програм новим функционалностима и кодом у којима се можемо изгубити, вреди зауставити се на тренутак и тестирајте да ли дугмад исправно раде. За њих морамо учитати следећи код:

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);
}
}

}

Овај код једноставно треба да се компајлира и изврши тако да нам, са повезаним УСБ каблом, програм каже да ли је било које дугме притиснуто.

Креирамо наш домаћи МИДИ контролер

Једном када смо извршили ове тестове, време је да окупимо сопствени МИДИ контролер за то, мораћете да саставите само следећи код:

#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);
}
}
}

Као детаљ, реците вам да овог пута не можете користити наредбу Сериал.принтлн () са МИДИ излазом, ако желите да прикажете неку врсту поруке на рачунару, само промените:

midiOut.sendControlChange(42,127,1);

по:

midiOut.sendControlChange(value, channel);

при чему вредност и канал морају да имају жељене вредности које желите да прикажете.

Пример операције:


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

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

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.

  1.   Алфред дијо

    Ардуино вам нуди много могућности да сами предузимате пројекте https://www.juguetronica.com/arduino . Једна од најбољих ствари је што можете почети без стручности и наставити учити, мотивишући се тако да будете самоуки.

  2.   Данел Роман дијо

    Поздрав.

    Покушавам да изведем овај фантастични водич ... али #инцлудес није потпун ....

    Можете ли ми рећи који су неопходни?

    Пуно Вам хвала.

  3.   Уелл дијо

    Здраво.
    Желео бих да направим електронски бубњарски модул заменом тастера са улазним прикључцима на које ће стизати пиезоелектрични сигнал.
    Да ли би то било могуће учинити?

  4.   Едуардо Валензуела дијо

    Молим вас, ако бисте могли да дате делове овог кода, заинтересован сам за овај пројекат.