Izveidojiet pats savu MIDI kontrolieri, izmantojot Arduino

MIDI

Ja esat mūzikas mīļotājs vai tieši amatieris vai profesionāls mūziķis, noteikti savās mājās esat uzkrājis lielu mūzikas instrumentu kolekciju. Lai visi šie maisījumi būtu nevainojami, vislabāk ir iegūt MIDI kontrolieris. Diemžēl šāda veida objekti parasti ir diezgan dārgi, tāpēc personai, kurai nav pārāk daudz resursu, ir grūti piekļūt visam, ko viņš var piedāvāt.

Lai daudz labāk saprastu, kas ir MIDI kontrolieris, pasakiet, ka vārds MIDI nāk no Mūzikas instrumentu digitālā saskarne, tas ir, sava veida kontrolieris, kas liek elektroniskām mūzikas ierīcēm sazināties savā starpā. Ja jums mājās ir, piemēram, elektroniskā tastatūra, vairāk nekā iespējams, ka tai ir MIDI saskarne. Pirms turpināt virzību, neskatoties uz to, ka ir noteiktas tehniskas detaļas, kas var likt domāt par pretējo, tam jābūt ļoti skaidram MIDI nav audio.

Izveidojiet pats savu MIDI kontrolieri, izmantojot šo vienkāršo apmācību

Kad mums tas būs skaidrs, jums noteikti būs daudz vieglāk saprast, ka MIDI ir vienkārši vienkāršs instrukciju kopa, kas spēj atbalstīt līdz pat 16 neatkarīgiem kanāliem, kas nozīmē, ka var būt līdz pat 16 dažādām ierīcēm, kas savstarpēji sazinās neatkarīgi. Šīs ierīces ir jāpievieno, izmantojot 5 kontaktu DIN kabeli, kas būtībā ir kabelis ar piecām tapām savienotāja iekšpusē. Kā detaļa ir diezgan bieži USB, nevis 5-pin DIN, izmantošana USB gadījumā, ja izmantojat USB, mums jāizveido USB-MIDI interfeiss.

Bez papildu domām es jums atstāju saiti, kurā varat atrast konsultācija soli pa solim ar daudz aprakstošie attēli kur mēs varam veikt visas nepieciešamās darbības, lai izveidotu savu MIDI kontrolieri.

saistīto rakstu:
Kā nomainīt Pi lietotājvārdu un paroli mūsu Raspberry Pi

Kā izveidot savu MIDI kontrolieri ar Arduino

midi savienotājs

Daudzi ir cilvēki, kuriem dažādu personisku un profesionālu iemeslu dēļ ir jāizmanto a pilnībā pielāgots MIDI kontrolieris Tāpēc, ka, iespējams, un kā piemēru, kādā brīdī jūsu kā mākslinieka dzīvē lēta MIDI kontroliera iegāde var neatbilst jūsu cerībām vai vajadzībām, savukārt, kad pienāks laiks, izvēloties profesionālu versiju, abos finanšu resursos var būt pārmērīgi daudz. vajadzību, kā arī lielo funkciju skaitu, ko tās var piedāvāt.

Tāpēc šodien es vēlos jums parādīt visu nepieciešamo, lai jūs varētu izveidot savu MIDI kontrolieri, norādot gan visu, kas nepieciešams tā uzbūvei, gan piedāvājot jums programmatūru, kas jums būs jāinstalē. Kā detaļa, šim projektam ir būtiska Arduino dēļa izmantošana - kontrolieris, kas ir pietiekami jaudīgs, lai veiktu šo uzdevumu.

Kā padarīt robotu
saistīto rakstu:
Kā izgatavot robotu: 3 dažādas iespējas

Kas ir MIDI kontrolieris?

midi

Būtībā MIDI kontrolieris kopumā ir atbildīgs par dažādu mūzikas ierīču savienošanu savā starpā. Daudzi no tiem ir instrumenti, kas ietver MIDI saskarni, lai gan tam jābūt ļoti skaidram, jo ​​ir daudz lietotāju, kuri bieži tiek sajaukti, MIDI nav audio fails, bet ļoti vienkāršs instrukciju kopums, ko instruments var saņemt, lai veiktu atšķirīgu vadību vai skaņas iestatījumi.

MIDI iekšpusē ir divi dažādi veidiNo vienas puses, mums ir tā sauktā Change Control, kur tā kontroliera numurs un vērtība ir no 0 līdz 127. Pateicoties tam, var tikt nosūtīti ziņojumi, kur var mainīt dažādus parametrus, piemēram, skaļumu vai signālu. Dažādiem instrumentiem, kas pieņem MIDI, jāņem līdzi rokasgrāmata, kurā paskaidroti, kuri kanāli un ziņojumi ir iestatīti pēc noklusējuma un kā tos mainīt.

Otrajā vietā mums ir Program Change, ziņojumu sērija, kas savukārt ir daudz vienkāršāka nekā tie, kas veido Change Control. Šāda veida ziņojumus izmanto, lai mainītu ierīces sākotnējo iestatījumu vai ielāpu. Tāpat kā izmaiņu vadībā, ražotājam kopā ar instrumentu jāiekļauj rokasgrāmata, kurā norādīts, kuri iestatījumi ir mainīti ar konkrētu ziņojumu.

Daļas, kas vajadzīgas, lai izveidotu pats savu MIDI kontrolieri

Midi savienotāju shēma

Lai varētu izveidot savu MIDI kontrolieri, jums būs nepieciešama virkne gabalu papildus, kā jau minējām, Arduino dēlim. Pirms turpināt, vienkārši pasakiet, ka, iespējams, nākotnē, tā kā vēlaties paplašināt projektu, jums ir nepieciešamas vairāk lietas, lai gan šajā laikā ar dažiem gabaliem jums būs daudz.

Mums būs nepieciešams 5 polu sieviešu DIN kabelis, 2 220 omu rezistori, 2 īsslēdži, 2 10 k omi rezistori, savienojuma vadi, shēma, MIDI kabelis un MIDI ierīce vai USB interfeiss. Tikai ar šiem gabaliem jūs varat sākt, sekojot maniem soļiem, izveidot savu MIDI kontrolieri.

Pirmie soļi

Arduino midi shematisks

Pirms sākšanas es atstāju jums attēlu, kurā varat redzēt sava MIDI kabeļa tapas, tādā veidā mēs varam pareizi identificēt tapas un it īpaši, kur katru no tām savienot. Vispārīgi runājot, viss, kas jums jādara šajā brīdī, ir savienot kabeļa tapu 5 ar 220 omi rezistoru un no turienes ar Arduino Transmit 1, kontaktu 4 ar 220 omu rezistoru un no turienes ar Arduino 5V kontaktligzdu, kamēr tapa 2 jābūt savienotam ar jūsu kontroliera zemes pieslēgumu.

Kad šī darbība ir pabeigta, fotoattēlā nav detalizētas diagrammas, kas atrodas tieši zem šīm līnijām, ir pienācis laiks savienot pogas. Šīs sadaļas ideja ir panākt, izmantojot digitalRead tapu (kas spēj noteikt, kad mainās spriegums, kas to sasniedz), lai sasniegtu tranzistoru, tikai nospiežot pogu. Lai to izdarītu, mums jāizmanto tikai poga, lai tās kreiso pusi mēs savienotu ar 5 V, labajā pusē ar 220 omu pretestību un no turienes ar zemi, savukārt, savukārt, mēs arī pievienotu labo pusi, lai piespraustu 6. Otrā poga tiktu uzstādīta tādā pašā veidā, lai gan, kā redzams diagrammā, 6 tapas vietā mēs to savienojam ar 7.

Programmatūra mājas midi kontrolierim

Kad esam pabeiguši visu aparatūru, ir pienācis laiks savienot instrumentu un pārbaudīt. Pirms tam mums ir jābūt USB-MIDI interfeiss un MIDI kabelis lai savienotu dēli, kas sūta datus, ar mūsu datoru. Lai to panāktu, mēs esam izvēlējušies MIDI v4.2 bibliotēku, ko izveidojuši puiši no Četrdesmit septiņiem efektiem un kas mums noteikti ir jāinstalē mūsu Arduino un jāiekļauj projektā.

Datora gadījumā mums būs nepieciešama programma, kas spēj uzraudzīt visus MIDI datus, kas tajā nonāk no Arduino. Tam mums ir dažādas iespējas, piemēram, MIDI Monitor (OS X), MIDI-OX (Windows) vai Kmidimon (Linux)

Lai veiktu nelielu pārbaudi, mums vienkārši jāpievieno Arduino mūsu datoram un jāizpilda šāds kods:

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

Ja viss ir izdevies, varat doties uz pogu pārbaudi, ja šis tests jums nav izdevies, jums jāpārliecinās, vai visi savienojumi ir pareizi, ķēde ir tieši tāda pati kā iepriekšējā shēma, ķēde ir savienots ar USB-MIDI interfeisu ar MIDI kabeli, MIDI porta kabeļi ir pareizi pievienoti, MIDI kabelis ir pievienots USB-MIDI saskarnes ieejai, Arduino plate ir pareizi pievienota elektrotīklam un tai ir pietiekami daudz jaudas ...

Pārbauda, ​​vai pogas darbojas pareizi

Pirms turpināt barot mūsu programmu ar jaunām funkcijām un kodu, kurā varam apmaldīties, ir vērts uz brīdi apstāties un pārbaudiet, vai pogas darbojas pareizi. Viņiem mums ir jāielādē šāds kods:

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

}

Šis kods ir tikai jāapkopo un jāizpilda tā, lai, pievienojot USB kabeli, programma mums paziņotu, vai kāda no pogām ir nospiesta.

Mēs izveidojam savu pašmāju MIDI kontrolieri

Kad būsim izpildījuši šos testus, ir pienācis laiks savākt savu MIDI kontrolieri, jums būs jāapkopo tikai šāds kods:

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

Kā detaļu sakiet, ka šoreiz nevar izmantot komandu Serial.println () ar MIDI izvadi, ja vēlaties datorā parādīt kāda veida ziņojumu, vienkārši mainiet:

midiOut.sendControlChange(42,127,1);

līdz:

midiOut.sendControlChange(value, channel);

kur vērtībai un kanālam jābūt vēlamajām vērtībām, kuras vēlaties parādīt.

Darbības piemērs:


4 komentāri, atstājiet savus

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   Alfrēds teica

    Arduino piedāvā daudzas iespējas patstāvīgi veikt projektus https://www.juguetronica.com/arduino . Viena no labākajām lietām ir tā, ka jūs varat sākt nebūt eksperts un turpināt mācīties, tādējādi motivējot sevi būt pašmācītam.

  2.   Danels Romāns teica

    Sveicieni.

    Mēģinu veikt šo fantastisko apmācību ... bet #includes nav pilnīgas ...

    Vai jūs varētu man pateikt, kuri no tiem ir nepieciešami?

    Liels paldies.

  3.   uell teica

    Sveiki.
    Es gribētu izgatavot elektronisku bungu moduli, aizstājot pogas ar domkrata ieejām, pie kurām pienāks pjezoelektriskais signāls.
    Vai būtu iespējams to izdarīt?

  4.   Eduardo Valencuela teica

    Lūdzu, ja jūs varētu sniegt šī koda komplektāciju, mani interesē šis projekts.