Mainos

Musiikkina, joka on kerännyt kokoelman soittimia ja melurasioita, nöyrä Arduino on täydellinen työkalu mukautetun MIDI-ohjaimen luomiseen. Vaikka vadelma Pi on saattanut ottaa kruunun Asioiden Internet (IoT) Asioiden Internet: 10 hyödyllistä tuotetta, jotka sinun on kokeiltava vuonna 2016Asioiden Internet on nousussa vuonna 2016, mutta mitä se tarkalleen tarkoittaa? Kuinka hyödyt henkilökohtaisesti Internetistä? Tässä on muutamia hyödyllisiä tuotteita valaisemaan. Lue lisää projektit, yksinkertainen Arduino Uno (mitkä ovat Arduinon erityypit? Arduinon osto-opas: minkä lautakunnan pitäisi hankkia?Siellä on niin monia erilaisia ​​Arduino-levyjä, sinulle annetaan anteeksi sekoittaaksesi. Mitä sinun pitäisi ostaa projektiisi? Autamme meitä tässä Arduinon osto-oppaassa! Lue lisää ) on enemmän kuin tarpeeksi voimaa tähän projektiin.

Ensimmäistä kertaa käytät Arduinoa? Ei hätää, meillä on täydellinen Arduinon aloittelijan opas Arduinon aloittaminen: Aloittelijan opasArduino on avoimen lähdekoodin elektroniikan prototyyppialusta, joka perustuu joustavaan, helppokäyttöiseen laitteistoon ja ohjelmistoon. Se on tarkoitettu taiteilijoille, suunnittelijoille, harrastajalle ja kaikille, jotka ovat kiinnostuneita luomaan interaktiivisia esineitä tai ympäristöjä.

Lue lisää lukea läpi ennen kuin käsittelet tätä hanketta.

Työläs-Midi-Controller-Breadboard

Mikä on MIDI?

MIDI tarkoittaa soittimien digitaalista käyttöliittymää. Siinä hahmotellaan tavanomainen tapa musiikkilaitteille kommunikoida keskenään. Jos omistat elektronisen näppäimistön, sinulla on todennäköisesti MIDI-käyttöliittymä. Vaikka MIDI: n toteuttamiseen liittyy muutamia teknisiä yksityiskohtia, on tärkeää muistaa, että MIDI ei ole ääni! MIDI-data on yksinkertainen ohjejoukko (yhtä käskyä kutsutaan ”sanomaksi”), jonka toinen laite voi toteuttaa tuottamaan erilaisia ​​ääniä tai ohjausparametreja.

MIDI tukee 16 kanavaa. Tämä tarkoittaa, että jokainen kaapeli voi tukea 16 erilaista laitetta, jotka kommunikoivat toisistaan ​​riippumattomasti. Laitteet kytketään 5-napaisella DIN-kaapelilla. DIN tarkoittaa "Saksan standardointilaitosta", ja se on yksinkertaisesti kaapeli, jossa on viisi nastaa liittimen sisällä. USB: tä käytetään usein 5-nastaisen DIN: n sijasta, tai USB-MIDI-liitäntää voidaan käyttää.

MIDI-kaapeli-uros

Hallitse muutosta ja ohjelmanvaihtoa

MIDI-sanomia on kahta päätyyppiä: Ohjausmuutos ja Ohjelmanvaihto.

Control Change (CC) -viestit sisältävät ohjaimen numeron ja arvon välillä 0–127. CC-viestejä käytetään usein asetusten, kuten äänenvoimakkuuden tai sävelkorkeuden, muuttamiseen. Laitteissa, jotka hyväksyvät MIDI: n, pitäisi olla mukana manuaalinen selitys siitä, mitkä kanavat ja viestit on oletusasetuksissa ja miten ne voidaan muuttaa (tunnetaan nimellä MIDI-kartoitus).

Program Change (PC) -viestit ovat yksinkertaisempia kuin CC-viestit. PC-viestit koostuvat yhdestä numerosta, ja niitä käytetään laitteen esiasetuksen tai korjaustiedoston vaihtamiseen. PC-viestejä kutsutaan joskus nimellä “Patch Change”. Samoin kuin CC-viestit, valmistajien on toimitettava asiakirja, jossa esitetään, mitä esiasetuksia tietty viesti muuttaa.

Mitä tarvitset

  • Työläs
  • 5-napainen DIN-naarasliitin
  • 2 x 220 ohmin vastukset
  • 2 x 10 kt ohmia
  • 2 x hetkellistä kytkintä
  • Kytkentäjohdot
  • Leipälauta
  • MIDI-kaapeli
  • MIDI-laite tai USB-liitäntä

Rakenna suunnitelma

Tämä projekti on melko yksinkertainen. Voit tietysti lisätä lisää painikkeita tai laitteita tarpeitasi vastaavasti. Lähes mikä tahansa Arduino on sopiva - vain kolme tappia tarvitaan tähän esimerkkiin. Tämä projekti koostuu kahdesta painikkeesta ohjelman ohjaamiseksi, MIDI-portista tietojen lähettämiseen ja laitteesta viestien vastaanottamiseen. Tämä piiri on rakennettu a leipälauta Aloittelijan elektroniikka: 10 taitoa, jotka sinun täytyy tietääMonet meistä eivät ole koskaan edes koskettaneet juotinta - mutta asioiden tekeminen voi olla uskomattoman palkitsevaa. Tässä on kymmenen DIY-elektroniikan perustaidoista, jotka auttavat sinua pääsemään alkuun. Lue lisää tässä on kuitenkin mahdollista siirtää se projektilaatikkoon ja juotettuihin liittimiin vankasta ratkaisusta.

Piirikokoonpano

Työläs-Midi-Controller-Circuit

MIDI-yhteys

MIDI-Pinout

Kytke MIDI-liitäntä seuraavasti:

  • MIDI-nasta 5 Arduino Transmit (TX) 1: lle 220 ohmin vastuksen kautta
  • MIDI-nasta 4 Arduino + 5V: een 220 ohmin vastuksen kautta
  • MIDI-nasta 2 Arduinon maahan

Nappiliitäntä

Painikkeet toimivat muuttamalla vastusta, jonka Arduino "näkee". Arduino-nasta menee kytkimen läpi suoraan maahan (MATALA) 10 k: n vastuksella (“veto alas” -vastuksella, varmistaen, että arvo pysyy alhaisena). Kun painiketta painetaan, piirin näkemä arvo muuttuu + 5v: ksi ilman vastusta (KORKEA). Arduino havaitsee tämän muutoksen digitalRead (nasta) komento. Kytke painikkeet nastaihin 6 ja 7 Arduino-digitaalitulossa / -ulostulossa (I / O). Yhdistä molemmat painikkeet:

  • Painikkeen vasemmalla puolella + 5 V
  • Painikkeen oikea puoli Arduino Groundiin 10 k: n vastuksen kautta
  • Painikkeen oikea puoli Arduinon tappiin (6 tai 7)

MIDI-testaus

Nyt kun kaikki laitteet on valmis, on aika testata se. Tarvitset USB-MIDI-liitännän (monet ääniliitännät voivat tehdä tämän) ja MIDI-kaapelin. Leipälevylle kytketty MIDI-portti lähettää tietoja, joten se on lähtö. Tietokonesi vastaanottaa tietoja, joten se on tulo. Tämä projekti käyttää erinomaista Arduinoa MIDI-kirjasto v4.2 kirjoittanut Forty Seven Effects. Kun olet asentanut kirjaston, voit sisällyttää sen koodiin menemällä Luonnos> Sisällytä kirjasto> MIDI.

Tarvitset myös ohjelman tulevien MIDI-tietojen seuraamiseksi:

  • MIDI-näyttö OS X: lle
  • MIDI-OX Windowsille
  • KMidimon Linuxille

Liitä Arduino Arduino Starter Kit -sovelluksen käytön aloittaminen - Ajurien asentaminen ja hallituksen ja portin asentaminenJoten olet ostanut itsellesi Arduino-aloituspakkauksen ja mahdollisesti muita satunnaisia ​​hienoja komponentteja - mitä nyt? Kuinka itse aloitat tämän Arduino-asian ohjelmoinnin? Kuinka asennat sen ... Lue lisää tietokoneellesi ja lataa seuraava testikoodi (älä unohda valita oikea kortti ja portti Työkalut> Hallitus ja Työkalut> Portti valikot).

#sisältää 
#sisältää 
#sisältää 
#sisältää 
#sisältää  MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // luo MIDI-objekti nimeltään midiOut void setup () {Serial.begin (31250); // MIDI: n asennussarja. } tyhjä silmukka () {midiOut.sendControlChange (56,127,1); // lähetä MIDI CC - 56 = huomautus, 127 = nopeus, 1 = kanavan viive (1000); // odota 1 sekunti midiOut.sendProgramChange (12,1); // lähetä MIDI PC - 12 = arvo, 1 = kanavaviive (1000); // odota 1 sekunti. }

Tämä koodi lähettää CC-viestin, odota 1 sekunti, lähettää PC-viestin ja odottaa sitten sekunnin toistaiseksi. Jos kaikki toimii oikein, MIDI-näytölle tulee näkyviin viesti.

Jos mitään ei tapahdu, älä paniikki! Kokeile vianetsintää:

  • Varmista, että kaikki liitännät ovat oikein
  • Tarkista, että MIDI-portti on kytketty oikein - ulkoreunoissa tulisi olla 2 varatappia
  • Varmista, että piiri on oikein
  • Varmista, että piiri on kytketty USB-MIDI-liitäntään MIDI-kaapelilla
  • Tarkista, että MIDI-kaapeli on kytketty panos USB-MIDI-liitännälläsi
  • Varmista, että Arduinolla on virta
  • Asenna oikea ohjain USB-MIDI-liitäntään

Jos olet vielä Jos sinulla on ongelmia, kannattaa ehkä tarkistaa leipälauta. Halvat levyt voivat joskus olla erittäin epäjohdonmukaisia ​​ja heikkolaatuisia - se tapahtui minulle työskennellessäni tässä projektissa.

Painikkeiden testaus

Nyt on aika testata, että painikkeet toimivat oikein. Lataa seuraava testikoodi. MIDI: tä ei tarvitse olla kytkettynä tämän osan testaamiseen.

const int buttonOne = 6; // määritä painiketappi muuttujalle. const int buttonTwo = 7; // määritä painiketappi muuttuvalle tyhjälle asetukselle () {Serial.begin (9600); // pinMode-tekstin asennussarja (buttonOne, INPUT); // asetuspainike syöttötapina moodina (buttonTwo, INPUT); // asetuspainike tulona. } tyhjä silmukka () {if (digitalRead (buttonOne) == HIGH) {// tarkista painikkeen tilan viive (10); // ohjelmiston poistuminen, jos (digitalRead (buttonOne) == HIGH) {// tarkista painikkeen tila uudelleen Serial.println ("Button One Works!"); // lokituloksen viive (250); }} if (digitalRead (buttonTwo) == HIGH) {// tarkista painikkeen tilan viive (10); // ohjelmiston poistuminen, jos (digitalRead (buttonTwo) == HIGH) {// tarkista painikkeen tila uudelleen Serial.println ("Button Two Works!"); // lokituloksen viive (250); } } }

Suorita tämä koodi (mutta pidä USB-kaapeli kytkettynä) ja avaa Sarjamonitori (Ylhäällä oikealla> Sarjamonitori). Kun painat painiketta, sinun pitäisi nähdä ”Button One Works!” tai “Button Two Works!” painetusta painikkeesta riippuen.

Tässä esimerkissä on yksi tärkeä huomautus - ohjelmiston poistuminen. Tämä on yksinkertainen 10 millisekunnin (ms) viive painikkeen tarkistamisen ja sitten painikkeen uudelleen tarkistamisen välillä. Tämä lisää painikkeen painalluksen tarkkuutta ja auttaa estämään melua, joka laukaisee Arduinon. Sinun ei tarvitse tehdä tätä, vaikka sitä suositellaan.

Ohjaimen luominen

Nyt kun kaikki on johdotettu ja toimii, on aika koota täysi ohjain.

Tämä esimerkki lähettää eri CC-viestin jokaiselle painetulle painikkeelle. Käytän tätä ohjaamaan Ableton Live 9.6 -käyttöjärjestelmää OS X: ssä. Koodi on samanlainen kuin molemmat yllä olevat testinäytteet.

#sisältää 
#sisältää 
#sisältää 
#sisältää 
#sisältää const int buttonOne = 6; // määritä painiketappi muuttujalle. const int buttonTwo = 7; // määritä painiketappi muuttujalle MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // luo MIDI-objekti nimeltään midiOut void setup () {pinMode (buttonOne, INPUT); // asetuspainike syöttötapina moodina (buttonTwo, INPUT); // asetuspainike sisääntulona Serial.begin (31250); // MIDI-lähtö. } tyhjä silmukka () {if (digitalRead (buttonOne) == HIGH) {// tarkista painikkeen tilan viive (10); // Ohjelmiston poistuminen, jos (digitalRead (buttonOne) == HIGH) {// tarkista painikkeen tila uudelleen midiOut.sendControlChange (56,127,1); // lähetä MIDI CC - 56 = huomautus, 127 = nopeus, 1 = kanavan viive (250); }} if (digitalRead (buttonTwo) == HIGH) {// tarkista painikkeen tilan viive (10); // Ohjelmiston poistuminen, jos (digitalRead (buttonTwo) == HIGH) {// tarkista painikkeen tila uudelleen midiOut.sendControlChange (42,127,1); // lähetä MIDI CC - 42 = huomautus, 127 = nopeus, 1 = kanavan viive (250); } } }

Huomaa - et voi käyttää Serial.println () MIDI-ulostulolla.
Jos haluat lähettää PC-viestin CC: n sijaan, korvaa vain:

midiOut.sendControlChange (42,127,1);

Kanssa:

midiOut.sendProgramChange (arvo, kanava); 

Toiminnassa

Alla on demonstraatio ohjaimelle Ableton Live (Paras DJ-ohjelmisto jokaiseen budjettiin Paras DJ-ohjelmisto jokaiseen budjettiinHyvä sekoitusohjelma voi tehdä kaiken muutoksen suorituskykyyn. Käytitkö Macia, Windowsia tai Linuxia, kaikki taitotasot ja budjetti otetaan huomioon, jos haluat aloittaa DJing. Lue lisää ). Oikeassa yläkulmassa näkyvät äänimittarit ja keskimmäisessä keskellä saapuvat midi-viestit (kautta MIDI-näyttö OS X: ssä).

Oletko tehnyt MIDI-ohjaimen?

MIDI-ohjaimelle on paljon käytännöllisiä käyttötarkoituksia. Voit rakentaa suuren jalkaohjatun yksikön tai tyylikkään studio-ohjaimen. Ja jos olet kiinnostunut ostamaan sellaisen, tässä ne ovat parhaat USB MIDI -ohjaimet 9 parasta USB-MIDI-ohjainta muusikoilleEtsitkö USB MIDI -ohjainta? Tässä ovat parhaat MIDI-ohjaimet, joita voit ostaa nyt, budjetista riippumatta. Lue lisää voit ostaa.

Kuvahyvitys: Keith Gentry Shutterstock.com-sivuston kautta

Joe on valmistunut tietojenkäsittelytieteestä Lincolnin yliopistosta, Iso-Britannia. Hän on ammattimainen ohjelmistokehittäjä, ja kun hän ei lentä drooneja tai kirjoita musiikkia, hänet voidaan usein löytää ottamasta valokuvia tai tuottamaan videoita.