Reklaam

Muusikuna, kes on kogunud muusikariistade ja mürakarpide kollektsiooni, on alandlik Arduino ideaalne vahend kohandatud MIDI-kontrolleri loomiseks. Ehkki vaarikapi võis võta endale kroon Asjade Internet (IoT) Asjade Internet: 10 kasulikku toodet, mida peate 2016. aastal proovimaAsjade Internet on 2016. aastal tõusuteel, kuid mida see täpselt tähendab? Kuidas saate asjade Internetist isiklikult kasu? Siin on mõned kasulikud tooted illustreerimiseks. Loe rohkem projektid, lihtne Arduino Uno (Millised on erinevad Arduino tüübid? Arduino ostujuhend: millise tahvli peaksite saama?Seal on nii palju erinevaid Arduino tahvleid, teile tuleks andeks anda, et olete segaduses. Millist peaksite oma projekti jaoks ostma? Aitame teid selle Arduino ostujuhendiga! Loe rohkem ) on selle projekti jaoks enam kui piisavalt jõudu.

Arduino esmakordne kasutamine? Ärge muretsege, me oleme valmis saanud Arduino algaja juhend Arduino kasutamise alustamine: Algajate juhendArduino on avatud lähtekoodiga elektroonika prototüüpide platvorm, mis põhineb paindlikul, hõlpsasti kasutataval riist- ja tarkvaral. See on mõeldud kunstnikele, disaineritele, harrastajatele ja kõigile, kes on huvitatud interaktiivsete objektide või keskkondade loomisest.

instagram viewer
Loe rohkem enne selle projektiga tegelemist läbi lugeda.

Arduino-Midi-kontroller-leibalaud

Mis on MIDI?

MIDI tähistab muusikariistade digitaalset liidest. Selles antakse ülevaade muusikaseadmete tavapärasest viisist üksteisega suhelda. Kui teil on elektrooniline klaviatuur, on teil tõenäoliselt MIDI-liides. Kuigi MIDI juurutamisel on mõned tehnilised üksikasjad, on oluline meeles pidada, et MIDI pole heli! MIDI-andmed on lihtsad juhised (ühte käsku nimetatakse „teateks”), mida teine ​​seade võib rakendada erinevate helide või juhtimisparameetrite loomiseks.

MIDI toetab 16 kanalit. See tähendab, et iga kaabel toetab 16 erinevat seadet, mis suheldakse omavahel iseseisvalt. Seadmed ühendatakse 5-pin DIN-kaabli abil. DIN tähistab “Saksa standardimisinstituuti” ja on lihtsalt kaabel, mille pistikus on viis tihvti. 5-pin DIN asemel kasutatakse sageli USB-d või USB-MIDI-liidest.

MIDI-kaabel-mees

Juhtige muudatusi ja programmi muutusi

MIDI-teateid on kahte tüüpi: Control Change ja Program Change.

Juhtimismuutuse (CC) teated sisaldavad kontrolleri numbrit ja väärtust vahemikus 0 kuni 127. CC-teateid kasutatakse sageli selliste seadete muutmiseks nagu helitugevus või helikõrgus. MIDI-d aktsepteerivad seadmed peaksid olema varustatud juhendiga, mis selgitab, millised kanalid ja sõnumid on vaikimisi seadistatud ja kuidas neid muuta (tuntud kui MIDI-kaardistamine).

Programmi muutmise (PC) teated on lihtsamad kui CC-teated. PC-teated koosnevad ühest numbrist ja neid kasutatakse seadme eelseadistuse või plaastri muutmiseks. PC-teateid nimetatakse mõnikord “Patch Change”. Sarnaselt CC-teadetega peaksid tootjad esitama dokumendi, milles kirjeldatakse, milliseid eelseadeid konkreetne teade muudab.

Mida te vajate

  • Arduino
  • 5-kontaktiline DIN-pistikupesa
  • 2 x 220 oomi takistid
  • 2 x 10k oomi takistid
  • 2 x hetkelised lülitid
  • Haakimisjuhtmed
  • Leivalaud
  • MIDI kaabel
  • MIDI-seade või USB-liides

Ehitamise plaan

See projekt saab olema üsna lihtne. Muidugi võite oma vajadustele vastavalt vajadusele lisada veel nuppe või riistvara. Sobib peaaegu iga Arduino - selle näite jaoks on vaja ainult kolme tihvti. See projekt koosneb kahest nupust programmi juhtimiseks, MIDI-pordist andmete saatmiseks ja seadmest sõnumite vastuvõtmiseks. See vooluring on üles ehitatud a leivalaud Algaja elektroonika: 10 oskust, mida peate teadmaPaljud meist pole kunagi isegi jootekolbi puudutanud - kuid asjade tegemine võib olla uskumatult rahuldust pakkuv. Siin on kümme kõige põhilisemat DIY-elektroonikaoskust, mis aitavad teil alustada. Loe rohkem siin on aga võimalik seda robustse lahenduse jaoks üle kanda projektikarpi ja joodetud pistikutele.

Ahela kokkupanek

Arduino-Midi-kontroller-vooluring

MIDI-ühendus

MIDI-Pinout

Juhtke MIDI-pistikupesa järgmiselt:

  • MIDI-pistik 5 tuleb Arduino ülekandele (TX) 1 220 oomi takisti kaudu
  • MIDI pin 4 Arduino + 5 V külge 220 oomi takisti kaudu
  • MIDI-nööpnõel 2 Arduino maapinnale

Nuppude ühendamine

Nupud töötavad, muutes takistust, mida Arduino “näeb”. Arduino tihvt läheb läbi lüliti otse maapinnale (VÄHE) läbi 10k oomi takisti (“alla tõmmatava” takisti, tagades, et väärtus jääb madalaks). Nupule vajutamisel muutub vooluahela nähtav väärtus + 5v-ni ilma takistita (KÕRGE). Arduino saab seda muutust tuvastada, kasutades nuppu digitalRead (pin) käsk. Ühendage nupud Arduino digitaalse sisendi / väljundi (I / O) kontaktidega 6 ja 7. Ühendage mõlemad nupud:

  • Nupu vasakpoolne külg + 5 V-ni
  • Nupu parempoolne külg Arduino maapinnale 10k oomi takisti kaudu
  • Nupu parem külg Arduino tihvti (6 või 7) suunas

MIDI testimine

Nüüd, kui kogu riistvara on valmis, on aeg seda testida. Teil on vaja USB-MIDI-liidest (seda saavad teha paljud heliliidesed) ja MIDI-kaablit. Leivalauale ühendatud MIDI-port saadab andmeid, seega on see väljund. Teie arvuti võtab andmeid vastu, seetõttu on see sisend. See projekt kasutab suurepärast Arduinot MIDI raamatukogu v4.2 autoriks nelikümmend seitse efekti. Kui olete teegi installinud, saate selle oma koodi lisada, minnes Visand> Kaasa raamatukogu> MIDI.

Samuti vajate sissetulevate MIDI-andmete jälgimiseks programmi:

  • MIDI-monitor OS X jaoks
  • MIDI-OX Windowsi jaoks
  • KMidimon Linuxi jaoks

Ühendage Arduino Alustamine oma Arduino stardikomplektiga - draiverite installimine ning tahvli ja pordi seadistamineNiisiis, olete ostnud endale Arduino stardikomplekti ja võib-olla veel mõned juhuslikud lahedad komponendid - mis nüüd saab? Kuidas selle Arduino asja programmeerimisega tegelikult algust teha? Kuidas seda üles seada ... Loe rohkem oma arvutisse ja laadige üles järgmine testkood (ärge unustage, et valige õige tahvli ja pordi seast Tööriistad> Laud ja Tööriistad> Pordi menüüd).

# kaasata 
# kaasata 
# kaasata 
# kaasata 
# kaasata  MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // looge MIDI objekt nimega midiOut void setup () {Serial.begin (31250); // MIDI seadistusseeria. } void loop () {midiOut.sendControlChange (56,127,1); // saata MIDI CC - 56 = noot, 127 = kiirus, 1 = kanali viivitus (1000); // oodake 1 sekund midiOut.sendProgramChange (12,1); // saata MIDI PC - 12 = väärtus, 1 = kanali viivitus (1000); // oota 1 sekund. }

See kood saadab CC-teate, oodake 1 sekund, PC-teade ja oodake 1 sekund määramata aja jooksul. Kui kõik töötab õigesti, peaksite MIDI-ekraanile ilmuma teade.

Kui midagi ei juhtu, ärge paanitsege! Proovige tõrkeotsingut:

  • Veenduge, et kõik ühendused on õiged
  • Kontrollige, kas MIDI-port on korralikult ühendatud - välisservadel peaks olema 2 vardatihvti
  • Kontrollige vooluringi korrektsust
  • Veenduge, et vooluahel on ühendatud MIDI-kaabli abil USB-MIDI-liidesega
  • Kontrollige, kas teie MIDI-kaabel on ühendatud sisend USB-MIDI-liideses
  • Veenduge, et Arduinol oleks võim
  • Installige USB-MIDI-liidese jaoks õige draiver

Kui te olete ikka kui teil on probleeme, tasub võib-olla oma leivalaud üle vaadata. Odavad tahvlid võivad mõnikord olla väga ebajärjekindlad ja madala kvaliteediga - see juhtus minuga selle projekti kallal töötades.

Nuppude testimine

Nüüd on aeg testida, kas nupud töötavad õigesti. Laadige üles järgmine testkood. Selle osa testimiseks ei pea MIDI-d ühendama.

const int buttonOne = 6; // määra nupule pin muutujale. const int buttonKaks = 7; // määrake nupu tihvt muutuva tühisuse seadistamiseks () {Serial.begin (9600); // teksti pinMode seadistusseeria (buttonOne, INPUT); // seadistusnupp sisendina pinMode (buttonTwo, INPUT); // sisestusnupp. } void loop () {if (digitalRead (buttonOne) == HIGH) {// kontrolli nupu oleku viivitust (10); // tarkvara de-bounce if (digitalRead (buttonOne) == HIGH) {// kontrolli uuesti nuppu olekut Serial.println ("Button One Works!"); // logi tulemuse viivitus (250); }} if (digitalRead (buttonTwo) == HIGH) {// kontrolli nupu oleku viivitust (10); // tarkvara de-bounce if (digitalRead (buttonTwo) == HIGH) {// kontrolli uuesti nuppu olekut Serial.println ("Button Two Works!"); // logi tulemuse viivitus (250); } } }

Käivitage see kood (kuid hoidke USB-kaabel ühendatud) ja avage jadamonitor (Üleval paremal> jadamonitor). Nupule vajutades peaksite nägema “Button One Works!” või “Nupp kaks töötab!” sõltuvalt nupust, mida vajutasite.

Sellel näitel on üks oluline märkus - tarkvara eemaldamine. Nupu kontrollimise ja seejärel nupu uuesti kontrollimise vahel on lihtne 10 millisekundi (ms) pikkune viivitus. See suurendab nupuvajutuse täpsust ja aitab vältida müra, mis Arduino käivitab. Te ei pea seda tegema, kuigi see on soovitatav.

Kontrolleri loomine

Nüüd, kui kõik on juhtmega ja töötab, on aeg kogu kontroller kokku panna.

See näide saadab iga vajutatud nupu jaoks erineva CC-teate. Kasutan seda Ableton Live 9.6 juhtimiseks OS X-is. Kood sarnaneb mõlemale ülaltoodud testimisnäidisele.

# kaasata 
# kaasata 
# kaasata 
# kaasata 
# kaasata const int buttonOne = 6; // määra nupule pin muutujale. const int buttonKaks = 7; // määrake nupu tihvt muutujale MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // looge MIDI objekt nimega midiOut void setup () {pinMode (buttonOne, INPUT); // seadistusnupp sisendina pinMode (buttonTwo, INPUT); // seadistusnupp sisendina Serial.begin (31250); // MIDI-väljundi seadistamine. } void loop () {if (digitalRead (buttonOne) == HIGH) {// kontrolli nupu oleku viivitust (10); // tarkvara de-bounce if (digitalRead (buttonOne) == HIGH) {// kontrolli uuesti nuppu olekut midiOut.sendControlChange (56,127,1); // saata MIDI CC - 56 = noot, 127 = kiirus, 1 = kanali viivitus (250); }} if (digitalRead (buttonTwo) == HIGH) {// kontrolli nupu oleku viivitust (10); // tarkvara de-bounce if (digitalRead (buttonTwo) == HIGH) {// kontrolli uuesti nuppu olekut midiOut.sendControlChange (42,127,1); // saata MIDI CC - 42 = noot, 127 = kiirus, 1 = kanali viivitus (250); } } }

Märkus - te ei saa seda kasutada Serial.println () MIDI väljundiga.
Kui soovite CC asemel saata arvutisõnumi, asendage lihtsalt järgmine:

midiOut.sendControlChange (42,127,1);

Koos:

midiOut.sendProgramChange (väärtus, kanal); 

Tegevuses

Allpool on toodud demonstratsioon kontrolleri jaoks Ableton Live (Parim DJ tarkvara iga eelarve jaoks Parim DJ tarkvara iga eelarve jaoksHea segamistarkvara võib teie jõudluses midagi muuta. Ükskõik, kas kasutate Maci, Windowsi või Linuxi, on DJ-de alustamiseks vaja iga oskuste ja eelarve taset. Loe rohkem ). Üleval paremal on helimõõturid ja ülemises keskel sissetulevad midi-sõnumid (via MIDI-monitor OS X-is).

Kas olete teinud MIDI-kontrolleri?

Kohandatud MIDI-kontrolleri jaoks on palju praktilisi kasutusvõimalusi. Võiksite ehitada suure jalaga juhitava seadme või klanitud stuudiokontrolleri. Ja kui olete huvitatud selle ostmisest, siis siin on parimad USB MIDI kontrollerid 9 parimat muusikute jaoks mõeldud USB MIDI-kontrolleritKas otsite USB MIDI-kontrollerit? Siin on parimad MIDI-kontrollerid, mida saate kohe osta, olenemata eelarvest. Loe rohkem saate osta.

Kujutise krediit: Keith Gentry saidi Shutterstock.com kaudu

Joe on lõpetanud Ühendkuningriigi Lincolni ülikooli arvutiteaduse. Ta on professionaalne tarkvaraarendaja ja kui ta ei lenda droonidega ega kirjuta muusikat, võib teda sageli leida pildistamas või videot tootmas.