Tehke oma MIDI-kontroller Arduinoga

MIDI

Kui olete muusikasõber või otseselt amatöör- või elukutseline muusik, on teie kodus kindlasti kogunenud suur muusikariistade kogu. Nende kõigi suurepäraseks segamiseks on kõige parem hankida MIDI kontroller. Kahjuks on seda tüüpi esemed tavaliselt üsna kallid, nii et inimesel, kellel pole liiga palju ressursse, on kõigele pakutavale keeruline juurdepääs.

Et palju paremini mõista, mis on MIDI kontroller, öelge teile, et sõna MIDI pärineb Muusikariista digitaalne liides, see tähendab mingi kontroller, mis paneb elektroonilisi muusikaseadmeid omavahel suhtlema. Kui teil on kodus näiteks elektrooniline klaviatuur, on enam kui tõenäoline, et sellel on MIDI-liides. Enne edasiliikumist peab hoolimata asjaolust, et on olemas teatud tehnilised üksikasjad, mis võivad arvata vastupidist, see olema väga selge MIDI pole heli.

Selle lihtsa õpetuse abil saate luua oma MIDI-kontrolleri

Kui see on meil selgeks tehtud, on teil kindlasti palju lihtsam mõista, et MIDI on lihtsalt lihtne käsukomplekt, mis toetab kuni 16 sõltumatut kanalit, mis tähendab, et üksteisega iseseisvalt suheldes võib olla kuni 16 erinevat seadet. Need seadmed tuleb ühendada läbi 5-kontaktilise DIN-kaabli, mis põhimõtteliselt on pistiku sees viie tihvtiga kaabel. Üksikasjalikult on üsna tavaline kasutada 5-kontaktilise DIN asemel USB-d, USB kasutamise korral peame looma USB-MIDI liidese.

Ilma pikema jututa jätan teile lingi, kust leiate juhendaja samm-sammult koos paljude kirjeldavad pildid kus saame teha kõik vajalikud toimingud oma MIDI kontrolleri loomiseks.

Seotud artikkel:
Kuidas muuta Raspberry Pi kasutajanime ja parooli

Kuidas teha oma MIDI-kontrollerit Arduinoga

midi pistik

Paljud on inimesed, kes vajavad erinevatel isiklikel ja professionaalsetel põhjustel a täielikult kohandatud MIDI kontroller Sest võib-olla ja näitena ei pruugi teie kui kunstniku elu ühel hetkel odava MIDI-kontrolleri ostmine vastata teie ootustele ega vajadustele, samal ajal kui professionaalse versiooni valimine võib mõlema rahalise ressursi puhul olla liiga suur. vajadust ning nende pakutavate funktsioonide suurt hulka.

Seetõttu tahan täna teile näidata kõike, mida vajate, et saaksite teha oma MIDI-kontrolleri, mis näitab nii kõike selle ehitamiseks vajalikku kui ka tarkvara, mille peate installima. Üksikasjalik on see, et selle projekti jaoks on Arduino plaadi kasutamine hädavajalik, kontroller, mis on selle ülesande täitmiseks piisavalt võimas.

Kuidas teha robotit
Seotud artikkel:
Kuidas teha robotit: 3 erinevat võimalust

Mis on MIDI kontroller?

midi

Põhimõtteliselt vastutab MIDI kontroller laias laastus erinevate muusikaseadmete ühendamise eest. Paljud on instrumendid, mis sisaldavad MIDI-liidest, ehkki see peab olema väga selge, kuna on palju kasutajaid, kes on sageli segaduses, ei ole MIDI helifail, vaid väga lihtne käskude kogum, mille instrument saab kätte. või heliseaded.

MIDI sees on kahte erinevat tüüpiÜhest küljest on meil nimetus Change Control, kus selle kontrolleri number ja väärtus on vahemikus 0 kuni 127. Tänu sellele saab väljastada teateid, kus saab muuta erinevaid parameetreid, näiteks helitugevust või tooni. Erinevad MIDI aktsepteerivad instrumendid peaksid kaasa võtma käsiraamatu, milles selgitatakse, millised kanalid ja sõnumid on vaikimisi seadistatud ning kuidas neid muuta.

Teisel kohal on meil Programmi muutus, rida sõnumeid, mis on omakorda palju lihtsamad kui need, mis moodustavad muudatuste juhtimise. Seda tüüpi sõnumeid kasutatakse seadme eelseadistuse või plaastri muutmiseks. Nagu muudatuste juhtimises, peab tootja koos teie instrumendiga lisama käsiraamatu, mis näitab, milliseid eelseadistusi konkreetne teade muudab.

Oma koduse MIDI-kontrolleri loomiseks vajalikud osad

Midi-pistiku skeem

Oma MIDI-kontrolleri loomiseks vajate Arduino plaadile lisaks veel mitmeid tükke, nagu me juba mainisime. Enne jätkamist öelge lihtsalt, et võib-olla tulevikus, kuna soovite projekti laiendada, vajate rohkem asju, kuigi praegu on teil mõne tükiga palju.

Vajame 5-pooluselist DIN-kaablit, 2 220 oomi takistit, 2 hetkelülitit, 2 10k oomi takistit, ühendusjuhtmeid, trükkplaati, MIDI-kaablit ja MIDI-seadet või USB-liidest. Just nende tükkide abil saate alustada minu sammude järgi oma MIDI-kontrollerit.

Esimesed sammud

Arduino midi skemaatiline

Enne alustamist jätan teile pildi, kus näete oma MIDI-kaabli nööpnõelu. Sel viisil saame nööpnõelad õigesti tuvastada ja eriti selle, kuhu igaüks ühendada. Laias laastus peate selles punktis tegema ainult kaabli tihvti 5 ühendamise 220-oomise takisti külge ja sealt Arduino Transmit 1-ga, tihvti 4 220-oomise takisti külge ja sealt Arduino 5V pistikupessa 2 peab olema ühendatud kontrolleri maandusühendusega.

Kui see samm on tehtud, pole teil fotol üksikasjalikku skeemi, mis asub nende joonte all, on aeg nupud ühendada. Selle jaotise idee on saavutada digitaalse lugemise tihvti abil (mis suudab tuvastada, millal pinge muutub, et see saavutatakse), et oleks võimalik kasutada transistori saavutamiseks vaid ühe nupuvajutusega. Selleks peame kasutama ainult nuppu, nii et vasakpoolne külg ühendame selle 5 V-ga, parem pool 220-oomise takistusega ja sealt maapinnaga, samal ajal ühendame omakorda ka parema külje tihvtiga 6 Teine nupp paigaldatakse samamoodi, kuigi, nagu skeemil näha, ühendame tihvti 6 asemel selle 7-ga.

Tarkvara, mida kasutada koduse midi kontrolleri jaoks

Kui oleme kogu riistvaraga valmis saanud, on aeg oma seade ühendada ja testida. Enne seda peab meil olema a USB-MIDI liides ja MIDI kaabel andmeid ühendava tahvli ühendamiseks meie arvutiga. Selle saavutamiseks oleme valinud neljakümne seitsme efekti tüüpide loodud MIDI v4.2 teegi, mille peame oma Arduinosse installima ja projekti kaasama.

Arvuti puhul vajame programmi, mis oleks võimeline jälgima kõiki Arduinost sinna saabuvaid MIDI-andmeid. Selleks on meil erinevad võimalused, näiteks MIDI Monitor (OS X), MIDI-OX (Windows) või Kmidimon (Linux)

Väikese testi tegemiseks peame lihtsalt ühendama Arduino arvutiga ja käivitama järgmise koodi:

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

Kui kõik on hästi läinud, võite minna nuputestile. Juhul kui see test teie jaoks ei toimi, peate veenduma, et kõik ühendused on õiged, vooluahel on täpselt sama mis eelmises skeemis, vooluring on ühendatud MIDI-kaabli abil USB-MIDI-liidesega, MIDI pordikaablid on õigesti ühendatud, MIDI kaabel on ühendatud USB-MIDI liidese sisendiga, Arduino plaat on elektrivõrguga õigesti ühendatud ja sellel on piisavalt energiat ...

Testimine, et nupud töötaksid õigesti

Enne kui jätkame oma programmi pakkumist uute funktsioonide ja koodidega, kuhu võime eksida, tasub hetkeks peatuda ja testige, et nupud töötaksid korralikult. Nende jaoks peame laadima järgmise koodi:

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

}

See kood tuleb lihtsalt kompileerida ja käivitada, nii et kui USB-kaabel on ühendatud, annab programm meile teada, kas mõnda nuppu on vajutatud.

Loome meie omatehtud MIDI kontrolleri

Kui oleme need testid käivitanud, on aeg selleks oma MIDI kontroller kokku panna, peate kompileerima ainult järgmise koodi:

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

Üksikasjalikult öelge teile, et te ei saa seekord käsku Serial.println () kasutada MIDI-väljundiga. Kui soovite arvutis näidata teatud tüüpi sõnumeid, muutke lihtsalt järgmist:

midiOut.sendControlChange(42,127,1);

poolt:

midiOut.sendControlChange(value, channel);

kus väärtusel ja kanalil peavad olema soovitud väärtused, mida soovite kuvada.

Toimimisnäide:


4 kommentaari, jätke oma

Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.

  1.   Alfred DIJO

    Arduino pakub teile palju võimalusi projektide iseseisvaks elluviimiseks https://www.juguetronica.com/arduino . Üks parimatest on see, et võite alustada asjatundmatuseta ja jätkata õppimist, motiveerides end seeläbi iseõppima.

  2.   Danel Roman DIJO

    Tervitused.

    Püüan teha seda fantastilist õpetust ... kuid # lisad pole täielikud ...

    Kas saaksite öelda, millised on vajalikud?

    Suur aitäh.

  3.   uell DIJO

    Hola.
    Tahaksin teha elektroonilise trumli mooduli, asendades nupud pesa sisenditega, kuhu jõuab piesoelektriline signaal.
    Kas oleks võimalik seda teha?

  4.   Eduardo Valenzuela DIJO

    Palun, kui saaksite anda selle koodi kaasused, olen sellest projektist huvitatud.