Tee oma MIDI-ohjaimesi Arduinolla

MIDI

Jos olet musiikin ystävä tai suoraan amatööri tai ammattimuusikko, olet varmasti kotiisi koonnut suuren kokoelman soittimia. Jotta kaikki nämä sekoitettaisiin täydellisesti, on parasta saada a MIDI-ohjain. Valitettavasti tämän tyyppiset esineet ovat yleensä melko kalliita, joten henkilöllä, jolla ei ole liikaa resursseja, on vaikea päästä kaikkeen mitä voi tarjota.

Ymmärtääksesi paremmin MIDI-ohjaimen, sano, että sana MIDI tulee Soittimen digitaalinen käyttöliittymäeli eräänlainen ohjain, joka saa elektroniset musiikkilaitteet kommunikoimaan keskenään. Jos sinulla on esimerkiksi elektroninen näppäimistö kotona, on enemmän kuin todennäköistä, että sillä on MIDI-liitäntä. Ennen etenemisen jatkamista, on huolimatta siitä, että on olemassa tiettyjä teknisiä yksityiskohtia, jotka voivat saada ajattelemaan toisin MIDI ei ole ääni.

Luo oma MIDI-ohjain tällä yksinkertaisella opetusohjelmalla

Kun olemme selvillä asiasta, on varmasti paljon helpompaa ymmärtää, että MIDI on vain yksinkertainen käskyjoukko, joka tukee jopa 16 riippumatonta kanavaa, mikä tarkoittaa, että voi olla jopa 16 erilaista laitetta, jotka kommunikoivat itsenäisesti keskenään. Nämä laitteet on kytkettävä 5-napaisella DIN-kaapelilla, joka on periaatteessa kaapeli, jossa on viisi nastaa liittimen sisällä. Yksityiskohtaisesti on melko yleistä käyttää USB: tä 5-nastaisen DIN: n sijaan, jos käytetään USB: tä, on luotava USB-MIDI-liitäntä.

Jätän teille ilman lisäselvitystä linkin, josta löydät oppitunti askel askeleelta paljon kuvaavat kuvat jossa voimme suorittaa kaikki tarvittavat toimet oman MIDI-ohjaimen luomiseksi.

Aiheeseen liittyvä artikkeli:
Kuinka vaihtaa Pi-käyttäjänimi ja salasana Raspberry Pi -laitteessamme

Kuinka tehdä oma MIDI-ohjain Arduinolla

midi-liitin

On monia ihmisiä, jotka tarvitsevat erilaisista sekä henkilökohtaisista että ammattimaisista syistä käyttää a täysin mukautettu MIDI-ohjain Koska kenties ja esimerkiksi, joskus elämässäsi taiteilijana, halvan MIDI-ohjaimen ostaminen ei välttämättä vastaa odotuksiasi tai tarpeitasi, kun taas ammatillisen version valitseminen saattaa olla kohtuutonta molemmissa taloudellisissa resursseissa. tarve sekä niiden tarjoama suuri määrä ominaisuuksia.

Tämän vuoksi haluan tänään näyttää sinulle kaiken tarvitsemasi, jotta voit tehdä oman MIDI-ohjaimen, joka ilmoittaa sekä kaikki sen rakentamiseen tarvittavat että tarjoavan sinulle asennettavan ohjelmiston. Yksityiskohtaisesti tässä projektissa on välttämätöntä käyttää Arduino-korttia, joka on riittävän tehokas ohjain tämän tehtävän suorittamiseen.

Kuinka tehdä robotti
Aiheeseen liittyvä artikkeli:
Kuinka tehdä robotti: 3 erilaista vaihtoehtoa

Mikä on MIDI-ohjain?

midi-

Pohjimmiltaan MIDI-ohjain on vastuussa laajasti ottaen eri musiikkilaitteiden liittämisestä toisiinsa. Monet ovat instrumentteja, joissa on MIDI-liitäntä, vaikka tämän on oltava hyvin selvää, koska on monia hämmentyneitä käyttäjiä, MIDI ei ole äänitiedosto, vaan hyvin yksinkertainen ohjeisto, jonka instrumentti voi vastaanottaa. tai ääniasetukset.

Sisällä MIDI on olemassa kahta erilaista tyyppiäToisaalta meillä on nimeltään Change Control, jossa sillä on ohjaimen numero ja arvo välillä 0 - 127. Tämän ansiosta voidaan lähettää viestejä, joissa voidaan muuttaa erilaisia ​​parametreja, kuten äänenvoimakkuutta tai ääntä. Eri laitteiden, jotka hyväksyvät MIDI: n, tulisi tuoda mukanaan käsikirja, jossa selitetään, mitkä kanavat ja viestit on asetettu oletuksena ja miten niitä muutetaan.

Toisella sijalla meillä on Ohjelmamuutos, sarja viestejä, jotka puolestaan ​​ovat paljon yksinkertaisempia kuin muutosohjauksen muodostavat. Tämän tyyppisiä viestejä käytetään muuttamaan laitteen esiasetusta tai korjaustiedostoa. Kuten muutoksenhallinnassa, valmistajan on instrumentin mukana toimitettava käsikirja, joka ilmoittaa, mitkä esiasetukset on muutettu tietyllä viestillä.

Oman kotitekoisen MIDI-ohjaimen rakentamiseen tarvittavat osat

Midi-liitin on kaavamainen

Oman MIDI-ohjaimen rakentamiseksi tarvitset sarjan kappaleita, kuten olemme jo maininneet, Arduino-levylle. Ennen kuin jatkat, kerro vain, että ehkä tulevaisuudessa, koska haluat laajentaa projektia, tarvitset lisää asioita, vaikka tällä hetkellä muutamalla kappaleella sinulla on paljon.

Tarvitsemme naaraspuolisen 5-napaisen DIN-kaapelin, 2 ohmin vastuksen, 220 hetkellistä kytkintä, 2 2 k ohmin vastusta, liitäntäjohdot, piirilevyn, MIDI-kaapelin ja MIDI-laitteen tai USB-liitännän. Vain näillä paloilla voit aloittaa omien MIDI-ohjaimiesi seuraamalla vaiheitani.

Ensimmäiset vaiheet

Arduino midi -kaavio

Ennen aloittamista jätän sinulle kuvan, josta näet MIDI-kaapelisi nastat. Tällä tavoin voimme tunnistaa nastat oikein ja varsinkin mihin ne on kytkettävä. Laajasti sanottuna sinun tarvitsee vain liittää kaapelin nasta 5 220 ohmin vastukseen ja sieltä Arduino Transmit 1: een, nasta 4 220 ohmin vastukseen ja sieltä Arduinon 5 V: n liitäntään 2 on kytkettävä ohjaimen maadoitusliitäntään.

Kun tämä vaihe on valmis, valokuvassa ei ole yksityiskohtaista kaaviota, joka sijaitsee juuri näiden viivojen alapuolella, on aika kytkeä painikkeet. Tämän osan idea on saavuttaa käyttämällä digitalRead-nastaa (joka pystyy havaitsemaan, kun sen saavuttama jännite muuttuu) käyttämään transistoria saavuttaakseen vain yhdellä napin painalluksella. Tätä varten meidän on käytettävä vain nappia, jotta sen vasen puoli liitetään se 5 V: n, oikea puoli 220 ohmin vastukseen ja sieltä maahan, kun taas puolestaan ​​yhdistämme oikean puolen tapiin 6 Toinen painike asennettaisiin samalla tavalla, vaikka, kuten kaaviosta näet, liitämme sen nastan 6 sijasta 7: ään.

Ohjelmisto käytettäväksi kodin midi-ohjaimessa

Kun kaikki laitteistot on suoritettu, on aika liittää instrumenttimme ja testata. Ennen sitä meillä on oltava USB-MIDI-liitäntä ja MIDI-kaapeli liittää taulua, joka lähettää tietoja, tietokoneeseemme. Tämän saavuttamiseksi olemme valinneet MIDI v4.2 -kirjaston, jonka ovat luoneet Forty Seven Effectsin kaverit ja jotka meidän on oltava asennettuna Arduinoon ja sisällytetty projektiin.

Tietokoneen tapauksessa tarvitsemme ohjelman, joka pystyy valvomaan kaikkia Arduinosta siihen saapuvia MIDI-tietoja. Tätä varten meillä on erilaisia ​​mahdollisuuksia, kuten MIDI Monitor (OS X), MIDI-OX (Windows) tai Kmidimon (Linux)

Pienen testin suorittamiseksi meidän on vain liitettävä Arduino tietokoneeseemme ja suoritettava seuraava 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
}

Jos kaikki on mennyt hyvin, voit siirtyä painiketestiin, jos tämä testi ei ole onnistunut, sinun on varmistettava, että kaikki liitännät ovat oikein, piiri on täsmälleen sama kuin edellinen kaavio, piiri on kytketty USB-MIDI-liitäntään MIDI-kaapelilla, MIDI-portin kaapelit on kytketty oikein, MIDI-kaapeli on kytketty USB-MIDI-liitännän tuloon, Arduino-kortti on kytketty oikein sähköverkkoon ja sillä on riittävästi virtaa ...

Testataan, että painikkeet toimivat oikein

Ennen kuin jatkat ohjelmamme syöttämistä uusilla toiminnoilla ja koodilla, joihin voimme eksyä, kannattaa pysähtyä hetkeksi ja testaa, että painikkeet toimivat oikein. Heille meidän on ladattava seuraava 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);
}
}

}

Tämä koodi on vain koottava ja suoritettava niin, että USB-kaapelin ollessa kytkettynä ohjelma kertoo meille, onko mitään painikkeita painettu.

Luomme kotitekoisen MIDI-ohjaimen

Kun olemme suorittaneet nämä testit, on aika koota oma MIDI-ohjain sitä varten, sinun on vain koottava seuraava 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);
}
}
}

Kerro yksityiskohtaisesti, että et tällä hetkellä voi käyttää Serial.println () -komentoa MIDI-lähdöllä, jos haluat näyttää tietyntyyppisen viestin tietokoneessa, muuta vain:

midiOut.sendControlChange(42,127,1);

by:

midiOut.sendControlChange(value, channel);

missä arvolla ja kanavalla on oltava haluamasi arvot, jotka haluat näyttää.

Käyttöesimerkki:


4 kommenttia, jätä omasi

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   Alfred dijo

    Arduino tarjoaa sinulle monia mahdollisuuksia toteuttaa projekteja yksin https://www.juguetronica.com/arduino . Yksi parhaista on se, että voit aloittaa olematta asiantuntija ja jatkaa oppimista motivoimalla itseäsi siten itseoppimiseen.

  2.   Danel Roman dijo

    Tervehdys.

    Yritän suorittaa tämän upean opetusohjelman ... mutta #tiedot eivät ole täydellisiä ....

    Voisitteko kertoa minulle, mitkä ovat välttämättömiä?

    Paljon kiitoksia.

  3.   uell dijo

    Hei.
    Haluaisin tehdä elektronisen rumpumoduulin korvaamalla painikkeet liittimillä, joihin pietsosähköinen signaali saapuu.
    Olisiko mahdollista tehdä se?

  4.   Eduardo Valenzuela dijo

    Ole hyvä, jos voisit antaa tämän koodin sisältämät tiedot, olen kiinnostunut tästä projektista.