Reklama

Ako hudobník, ktorý zhromaždil zbierku hudobných nástrojov a hlukových skriniek, je skromný Arduino dokonalým nástrojom na vytvorenie vlastného MIDI kontroléra. Kým Raspberry Pi si možno vzal korunu za Internet vecí (IoT) Internet vecí: 10 užitočných produktov, ktoré musíte vyskúšať v roku 2016Internet vecí rastie v roku 2016, ale čo to presne znamená? Ako osobne profitujete z internetu vecí? Tu je niekoľko užitočných produktov na ilustráciu. Čítaj viac projekty, jednoduché Arduino Uno (aké sú rôzne druhy Arduino? Sprievodca nákupom Arduina: Ktorú dosku by ste mali dostať?Existuje toľko rôznych druhov dosiek Arduino, bolo by vám odpustené, keby ste boli zmätení. Čo by ste si mali kúpiť pre svoj projekt? Pomôžeme s týmto sprievodcom nákupom Arduino! Čítaj viac ) má viac ako dostatok energie pre tento projekt.

Prvýkrát používate Arduino? Žiadne starosti, máme komplet Sprievodca pre začiatočníkov Arduina Začíname s Arduino: Príručka pre začiatočníkovArduino je otvorená prototypová platforma elektroniky založená na flexibilnom, ľahko použiteľnom hardvéri a softvéri. Je určený pre umelcov, dizajnérov, fandov a kohokoľvek, kto má záujem vytvárať interaktívne objekty alebo prostredia.

instagram viewer
Čítaj viac aby ste si prečítali tieto informácie predtým, ako začnete tento projekt riešiť.

Arduino-Midi-Controller-Breadboard

Čo je MIDI?

MIDI znamená Digitálne rozhranie hudobných nástrojov. Nastiňuje štandardný spôsob vzájomnej komunikácie hudobných zariadení. Ak vlastníte elektronickú klávesnicu, pravdepodobne máte rozhranie MIDI. Aj keď implementácia MIDI zahŕňa niekoľko technických detailov, je dôležité pamätať na to, že MIDI nie je zvuk! MIDI dáta sú jednoduchou sadou inštrukcií (jedna inštrukcia sa nazýva „správa“), ktorú môže implementovať iné zariadenie na vytváranie rôznych zvukov alebo ovládacích parametrov.

MIDI podporuje 16 kanálov. To znamená, že každý kábel môže podporovať 16 rôznych zariadení, ktoré navzájom komunikujú nezávisle. Zariadenia sa pripájajú pomocou 5-kolíkového kábla DIN. DIN znamená „Nemecký inštitút pre normalizáciu“ a je to jednoducho kábel s piatimi kolíkmi vo vnútri konektora. USB sa často používa namiesto 5-pinového DIN, alebo sa môže použiť rozhranie USB-MIDI.

MIDI-Cable-Male

Zmena ovládania a zmena programu

Existujú dva hlavné typy MIDI správ: Control Change a Program Change.

Správy Control Change (CC) obsahujú číslo radiča a hodnotu medzi 0 a 127. Správy CC sa často používajú na zmenu nastavení, napríklad hlasitosti alebo výšky tónu. Zariadenia, ktoré akceptujú MIDI, by sa mali dodávať s príručkou vysvetľujúcou, ktoré kanály a správy sú predvolene nastavené a ako ich zmeniť (známe ako mapovanie MIDI).

Správy o zmene programu (PC) sú jednoduchšie ako správy CC. Správy z počítača pozostávajú z jedného čísla a používajú sa na zmenu predvoľby alebo opravy na zariadení. Správy z PC sú niekedy známe ako „Patch Change“. Podobne ako správy CC, výrobcovia by mali poskytnúť dokument, v ktorom uvedú, aké predvoľby sa zmenou konkrétnej správy menia.

Čo budete potrebovať

  • Arduino
  • 5-kolíková zásuvka DIN
  • 2 x 220 ohmové rezistory
  • 2 x 10 k ohmové rezistory
  • 2 x krátkodobé spínače
  • Zapojené vodiče
  • lopárik
  • Kábel MIDI
  • MIDI zariadenie alebo USB rozhranie

Plán výstavby

Tento projekt bude pomerne jednoduchý. Môžete samozrejme pridať ďalšie tlačidlá alebo hardvér podľa svojich potrieb. Hodia sa takmer všetky Arduino - v tomto príklade sú potrebné iba tri kolíky. Tento projekt pozostáva z dvoch tlačidiel na ovládanie programu, portu MIDI na odosielanie údajov a zariadenia na prijímanie správ. Tento obvod bol postavený na a lopárik Elektronika pre začiatočníkov: 10 zručností, ktoré potrebujete vedieťMnohí z nás sa nikdy nedotkli spájkovačky - ale robiť veci môže byť neuveriteľne prospešné. Tu je desať najzákladnejších elektronických zručností pre domácich majstrov, ktoré vám pomôžu začať. Čítaj viac tu je však možné ho preniesť do projektovej skrinky a spájkovaných konektorov pre robustné riešenie.

Zostava obvodov

Arduino-Midi-Controller-Circuit

Pripojenie MIDI

MIDI-pinov

Zapojte MIDI päticu takto:

  • MIDI pin 5 na Arduino Transmit (TX) 1 cez 220 ohmový rezistor
  • MIDI pin 4 na Arduino + 5V cez odpor 220 ohmov
  • MIDI pin 2 k Arduino zemi

Tlačidlo Pripojenie

Tlačidlá fungujú tak, že menia odpor, ktorý Arduino „vidí“. Kolík Arduino prechádza prepínačom priamo na zem (LOW) cez 10k ohmový rezistor („pull down“ rezistor, ktorý zaisťuje, že hodnota zostane nízka). Po stlačení tlačidla sa hodnota zobrazená v obvode zmení na + 5 V bez odporu (HIGH). Arduino dokáže túto zmenu zistiť pomocou digitalRead (pin) Príkaz. Pripojte tlačidlá na piny 6 a 7 digitálneho vstupu / výstupu Arduino (I / O). Pripojte obe tlačidlá:

  • Ľavá strana tlačidla na + 5V
  • Pravá strana tlačidla k Arduino Ground cez odpor 10 k Ohm
  • Pravá strana tlačidla k Arduino pin (6 alebo 7)

Testovanie MIDI

Po dokončení všetkého hardvéru je čas vyskúšať ho. Budete potrebovať rozhranie USB-MIDI (to dokáže veľa audio rozhraní) a kábel MIDI. Port MIDI zapojený na doštičku posúva dáta, takže je výstupom. Váš počítač prijíma údaje, preto ide o vstup. Tento projekt využíva vynikajúce Arduino Knižnica MIDI v4.2 podľa štyridsiatich siedmich efektov. Po nainštalovaní knižnice ju môžete zahrnúť do svojho kódu Skica> Zahrnúť knižnicu> MIDI.

Potrebujete tiež program na monitorovanie prichádzajúcich MIDI údajov:

  • Monitor MIDI pre OS X
  • MIDI-OX pre Windows
  • KMidimon pre Linux

Pripojte Arduino Začíname so štartovacou súpravou Arduino - Inštalácia ovládačov a nastavenie dosky a portuKúpili ste si štartovaciu súpravu Arduino a možno aj nejaké ďalšie náhodné chladné komponenty - čo teraz? Ako vlastne začnete s programovaním tejto veci Arduino? Ako to nastavíte ... Čítaj viac do svojho počítača a nahrajte nasledujúci testovací kód (nezabudnite si vybrať správnu tabuľu a port z Nástroje> Doska a Nástroje> Port menu).

#include 
#include 
#include 
#include 
#include  MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // vytvorte MIDI objekt s názvom midiOut void setup () {Serial.begin (31250); // nastavenie seriálu pre MIDI. } void loop () {midiOut.sendControlChange (56,127,1); // poslať MIDI CC - 56 = nota, 127 = rýchlosť, 1 = kanálové oneskorenie (1000); // počkajte 1 sekundu midiOut.sendProgramChange (12,1); // poslať MIDI PC - 12 = hodnota, 1 = kanálové oneskorenie (1000); // počkajte 1 sekundu. }

Tento kód odošle správu CC, počká 1 sekundu, odošle správu PC a potom čaká 1 sekundu na neurčito. Ak všetko funguje správne, na monitore MIDI by sa mala zobraziť správa.

Ak sa nič nestane, neprepadajte panike! Skúste riešenie problémov:

  • Skontrolujte, či sú všetky pripojenia správne
  • Skontrolujte, či je MIDI port správne zapojený - na vonkajších hranách by mali byť 2 náhradné kolíky
  • Skontrolujte, či je obvod správne
  • Skontrolujte, či je obvod pripojený k rozhraniu USB-MIDI pomocou kábla MIDI
  • Skontrolujte, či je kábel MIDI pripojený k vstup na vašom rozhraní USB-MIDI
  • Uistite sa, že Arduino má silu
  • Nainštalujte správny ovládač pre rozhranie USB-MIDI

Ak ste stále mať problémy, môže sa oplatiť skontrolovať doštičku. Lacné dosky môžu byť niekedy veľmi nekonzistentné a nekvalitné - stalo sa mi to pri práci na tomto projekte.

Tlačidlo Testovanie

Teraz je čas vyskúšať, či tlačidlá fungujú správne. Nahrajte nasledujúci testovací kód. Na otestovanie tejto časti nie je potrebné pripojiť MIDI.

const int buttonOne = 6; // priradiť kolík tlačidla premennej. tlačidlo const intwo = 7; // priradenie kolíka tlačidla k nastaviteľnému nastaveniu void () {Serial.begin (9600); // setup serial for text pinMode (buttonOne, INPUT); // nastavovacie tlačidlo ako vstupný pinMode (buttonTwo, INPUT); // tlačidlo nastavenia ako vstup. } void loop () {if (digitalRead (buttonOne) == HIGH) {// oneskorenie stavu tlačidla (10); // odskúšanie softvéru, ak (digitalRead (buttonOne) == HIGH) {// znovu skontrolovať stav tlačidla Serial.println ("Button One Works!"); // oneskorenie výsledku protokolovania (250); }} if (digitalRead (buttonTwo) == HIGH) {// oneskorenie stavu tlačidla (10); // odskúšanie softvéru, ak (digitalRead (buttonTwo) == HIGH) {// znovu skontrolovať stav tlačidla Serial.println ("Button Two Works!"); // oneskorenie výsledku protokolovania (250); } } }

Spustite tento kód (ale nechajte kábel USB pripojený) a otvorte Serial Monitor (Vpravo hore> Sériový monitor). Po stlačení tlačidla by sa malo zobraziť „Button One Works!“ alebo „Tlačidlo dve funguje!“ v závislosti od stlačeného tlačidla.

Z tohto príkladu je potrebné vziať jednu dôležitú poznámku - odskúšanie softvéru. Toto je jednoduché oneskorenie 10 milisekúnd (ms) medzi kontrolou tlačidla a opätovným skontrolovaním tlačidla. To zvyšuje presnosť stlačenia tlačidla a pomáha predchádzať šumu, ktorý spôsobuje Arduino. Nemusíte to robiť, aj keď sa odporúča.

Vytvorenie ovládača

Teraz, keď je všetko zapojené a funkčné, je čas zostaviť úplný ovládač.

Tento príklad odošle inú správu CC pre každé stlačené tlačidlo. Používam to na ovládanie Ableton Live 9.6 v OS X. Kód je podobný obidvom vyššie uvedeným testovacím vzorkám.

#include 
#include 
#include 
#include 
#include const int buttonOne = 6; // priradiť kolík tlačidla premennej. tlačidlo const intwo = 7; // priradiť kolík tlačidla k premennej MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // vytvorte MIDI objekt nazvaný midiOut void setup () {pinMode (buttonOne, INPUT); // nastavovacie tlačidlo ako vstupný pinMode (buttonTwo, INPUT); // tlačidlo nastavenia ako vstup Serial.begin (31250); // nastavenie MIDI výstupu. } void loop () {if (digitalRead (buttonOne) == HIGH) {// oneskorenie stavu tlačidla (10); // odskúšanie softvéru, ak (digitalRead (buttonOne) == HIGH) {// znovu skontrolovať stav tlačidla midiOut.sendControlChange (56,127,1); // poslať MIDI CC - 56 = nota, 127 = rýchlosť, 1 = kanálové oneskorenie (250); }} if (digitalRead (buttonTwo) == HIGH) {// oneskorenie stavu tlačidla (10); // odskúšanie softvéru, ak (digitalRead (buttonTwo) == HIGH) {// znovu skontrolovať stav tlačidla midiOut.sendControlChange (42,127,1); // poslať MIDI CC - 42 = nota, 127 = rýchlosť, 1 = kanálové oneskorenie (250); } } }

Poznámka - nebudete môcť používať Serial.println () s výstupom MIDI.
Ak chcete poslať správu z PC namiesto CC, jednoducho nahraďte:

midiOut.sendControlChange (42,127,1);

s:

midiOut.sendProgramChange (hodnota, kanál); 

V akcii

Nižšie je demonštrácia ako kontrolér pre Ableton Live (Najlepšie DJ softvér pre každý rozpočet Najlepšie DJ softvér pre každý rozpočetKvalitný softvér na miešanie môže zmeniť váš výkon. Či už používate Mac, Windows alebo Linux, každá úroveň zručností a rozpočtu je zabezpečená, ak chcete začať s DJingom. Čítaj viac ). V pravom hornom rohu sú zobrazené zvukomery a v strede hore prichádzajúce midi správy (prostredníctvom Monitor MIDI v OS X).

Vytvorili ste MIDI kontrolér?

Pre vlastný MIDI radič existuje veľa praktických použití. Mohli by ste postaviť obrovskú jednotku ovládanú nohou alebo elegantný ovládač štúdia. A ak máte záujem o kúpu, tu je najlepšie USB MIDI radiče 9 najlepších USB MIDI ovládačov pre hudobníkovHľadáte radič USB MIDI? Tu sú najlepšie ovládače MIDI, ktoré si môžete kúpiť práve teraz, bez ohľadu na rozpočet. Čítaj viac Môžeš kúpiť.

Obrázok Kredit: Keith Gentry cez Shutterstock.com

Joe je absolventom informatiky na University of Lincoln vo Veľkej Británii. Je to profesionálny vývojár softvéru a keď nelieta bezpilotných lietadiel alebo píše hudbu, často ho nájdu pri fotografovaní alebo výrobe videa.