Kako napraviti MIDI kontroler s Arduinom

  • Michael Fisher
  • 0
  • 5404
  • 805
Oglas

Kao glazbenik koji je skupio kolekciju glazbenih instrumenata i zvučnih kutija, ponizni Arduino savršen je alat za stvaranje prilagođenog MIDI kontrolera. Iako je Raspberry Pi možda preuzeo krunu za Internet of Things (IoT) Internet stvari: 10 korisnih proizvoda koje morate isprobati u 2016. Internet stvari: 10 korisnih proizvoda koje morate pokušati u 2016. Internet stvari se povećava 2016., ali što to točno znači? Kako vam osobno koristi Internet stvari? Evo nekoliko korisnih proizvoda za ilustraciju. projekti, jednostavan Arduino Uno (koje su različite vrste Arduino-a? Arduino vodič za kupnju: Koju ploču trebate nabaviti? Arduino vodič za kupnju: Koju ploču trebate nabaviti? Postoji toliko mnogo različitih vrsta Arduino ploča, vani biste oprostiti što ste zbunjeni. Što biste trebali kupiti za svoj projekt? Pomozite nam, ovaj vodič za kupnju Arduino!) ima više nego dovoljno snage za ovaj projekt.

Prvi put koristite Arduino? Bez brige, imamo cjelovit Arduino vodič za početnike Prvi koraci s Arduinom: Vodič za početnike Početak rada s Arduinom: Vodič za početnike Arduino je platforma za prototiranje elektronike otvorenog koda koja se temelji na fleksibilnom hardveru i softveru koji se lako koristi. Namijenjen je umjetnicima, dizajnerima, hobistima i svima koji su zainteresirani za stvaranje interaktivnih objekata ili okruženja. za čitanje prije nego što se pozabavite ovim projektom.

Što je MIDI?

MIDI je kratica za Digitalno sučelje za glazbene instrumente. Predstavlja standardni način komunikacije glazbenih uređaja. Ako posjedujete elektroničku tipkovnicu, vjerojatno imate MIDI sučelje. Iako je nekoliko tehničkih detalja uključenih u implementaciju MIDI-a, važno je zapamtiti da MIDI nije zvučan! Podaci MIDI-a su jednostavan skup uputstava (jedna se uputa zove a “poruka”) koji drugi uređaj može implementirati za stvaranje različitih zvukova ili kontrolnih parametara.

MIDI podržava 16 kanala. To znači da svaki kabel može podržavati 16 različitih uređaja koji međusobno neovisno komuniciraju. Uređaji su povezani pomoću 5-polnog DIN kabela. DIN označava “Njemački institut za standardizaciju”, a to je jednostavno kabel s pet pinova unutar konektora. USB se često koristi umjesto 5-polnog DIN-a ili se može koristiti USB-MIDI sučelje.

Promjena kontrole i promjena programa

Postoje dvije glavne vrste MIDI poruke: Promjena kontrole i Promjena programa.

Poruke kontrole promjene (CC) sadrže broj kontrolera i vrijednost između 0 i 127. CC poruke često se koriste za promjenu postavki poput glasnoće ili tona. Uređaji koji prihvaćaju MIDI trebaju imati priručnik s objašnjenjem koji su kanali i poruke postavljeni prema zadanim postavkama i kako ih promijeniti (poznato kao MIDI preslikavanje).

Poruke o promjeni programa (PC) jednostavnije su od CC poruka. PC poruke sastoje se od jednog broja i koriste se za promjenu unaprijed postavljenih postavki ili zakrpa na uređaju. PC poruke su ponekad poznate i kao “Patch Change”. Slično CC porukama, proizvođači bi trebali pružiti dokument u kojem se opisuju koje se postavke postavljaju u određenu poruku.

Što će vam trebati

  • Težak
  • 5-polna DIN utičnica
  • Otpornici 2 x 220 ohm
  • Otpornici 2 x 10k ohm
  • 2 x trenutne sklopke
  • Žice za spajanje
  • daska za kruh
  • MIDI kabel
  • MIDI uređaj ili USB sučelje

Izgradite plan

Ovaj će projekt biti vrlo jednostavan. Naravno možete dodati više gumba ili hardvera koji će odgovarati vašim potrebama. Gotovo svaki Arduino bit će prikladan - za ovaj primjer potrebne su samo tri igle. Ovaj se projekt sastoji od dva gumba za upravljanje programom, MIDI priključka za slanje podataka i uređaja za primanje poruka. Ovaj krug izgrađen je na ploči za početnike Elektronika: 10 vještina koje trebate znati Početnička elektronika: 10 vještina koje trebate znati Mnogi od nas nikada nisu ni dotakli glačalo za lemljenje - ali stvaranje stvari može biti nevjerojatno korisno. Evo deset najosnovnijih vještina izrade elektroničke elektronike koje će vam pomoći da započnete s radom. ovdje je, međutim, moguće prenijeti u projektni okvir i lemljene priključke za robusno rješenje.

Sklop kruga

MIDI veza

Uključite MIDI utičnicu na sljedeći način:

  • MIDI pin 5 za Arduino Transmit (TX) 1 putem otpornika od 220 ohma
  • MIDI pin 4 za Arduino + 5V preko otpornika 220 ohma
  • MIDI pin 2 na Arduino tlo

Spajanje gumba

Gumbi djeluju mijenjajući otpor Arduino “vidi”. Arduino igle idu preko prekidača ravno na zemlju (LOW) putem otpornika od 10k ohma (a “povući dolje” otpornik, osiguravajući da vrijednost ostane niska). Kad se pritisne gumb, vrijednost koju vidi krug mijenja se u + 5V bez otpornika (HIGH). Arduino može ovu promjenu otkriti pomoću digitalRead (pin) naredba. Gumbe spojite na igle 6 i 7 na Arduino digitalnom ulazu / izlazu (I / O). Povežite oba gumba:

  • Lijeva strana tipke do + 5V
  • Desna strana tipke do Arduino uzemljenja preko otpornika od 10k ohma
  • Desna strana tipke za Arduino pin (6 ili 7)

MIDI testiranje

Sad kad je sav hardver gotov, vrijeme je da ga testiramo. Trebat će vam USB-MIDI sučelje (to mogu učiniti mnogi audio sučelja) i MIDI kabel. MIDI port ožičen na ploči šalje podatke, pa je to izlaz. Vaše računalo prima podatke, stoga je to ulaz. Ovaj projekt koristi izvrsnu Arduino MIDI knjižnicu v4.2 tvrtke Forty Sedam Effects. Nakon što instalirate Knjižnicu, možete je uključiti u svoj kôd na Skica> Uključi knjižnicu> MIDI.

Trebat će vam i program za nadzor dolaznih MIDI podataka:

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

Povežite Arduino početak rada sa svojim Arduino Starter Kitom - Instaliranje upravljačkih programa i postavljanje ploče i priključka Početak rada s Arduino Starter Kitom - Instaliranje upravljačkih programa i postavljanje ploče i priključka Dakle, sebi ste kupili Arduino starter kit i možda neke druge nasumične komponente - što sad? Kako zapravo započinjete s programiranjem ove Arduino stvari? Kako to postaviti ... na računalo i prenijeti sljedeći testni kôd (ne zaboravite odabrati ispravnu ploču i priključak s Alati> Ploča i Alati> Luka izbornici).

#include #include #include #include #include MIDI_CREATE_INSTANCE (HardverSerial, Serijski, midiOut); // stvoriti MIDI objekt nazvan midiOut void setup () Serial.begin (31250); // serijski postavljanje za MIDI void petlju () midiOut.sendControlChange (56,127,1); // poslati MIDI CC - 56 = napomena, 127 = brzina, 1 = kašnjenje kanala (1000); // pričekajte 1 sekundu midiOut.sendProgramChange (12,1); // poslati MIDI PC - 12 = vrijednost, 1 = kašnjenje kanala (1000); // pričekaj 1 sekundu

Ovaj će kôd poslati CC poruku, pričekati 1 sekundu, poslati PC poruku, a zatim pričekati 1 sekundu neograničeno. Ako sve radi ispravno, trebala bi se vidjeti poruka na vašem MIDI monitoru.

Ako se ništa ne dogodi, nemojte paničariti! Pokušajte rješavanje problema:

  • Provjerite jesu li svi priključci ispravni
  • Provjerite je li MIDI priključak pravilno spojen - na vanjskim rubovima trebaju biti 2 rezervna igla
  • Dvaput provjerite je li strujni krug
  • Provjerite je li spoj spojen na USB-MIDI sučelje s MIDI kabelom
  • Provjerite je li vaš MIDI kabel spojen na ulazni na vašem USB-MIDI sučelju
  • Provjerite ima li Arduino snage
  • Instalirajte ispravan upravljački program za vaše USB-MIDI sučelje

Ako ste još Ako imate problema, možda bi bilo vrijedno provjeriti svoju ploču. Jeftine ploče ponekad mogu biti vrlo nedosljedne i nekvalitetne - dogodilo mi se dok radim na ovom projektu.

Testiranje gumba

Sada je vrijeme za provjeru da gumbi rade pravilno. Prenesite sljedeći testni kôd. Za testiranje ovog dijela MIDI ne treba biti povezan.

const int buttonOne = 6; // dodijeliti kontaktnu tipku varijabli const int buttonTwo = 7; // dodijeliti pin gumba promjenjivom setu void () Serial.begin (9600); // serijski postavljanje za tekst pinMode (buttonOne, INPUT); // gumb za postavljanje kao ulazni pinMode (gumbTwo, INPUT); // gumb za postavljanje kao ulaz void petlja () if (digitalRead (buttonOne) == HIGH) // odgoda stanja tipke (10); // softver se odbacuje ako (digitalRead (buttonOne) == HIGH) // ponovno provjeri stanje gumba Serial.println ("gumb jedan djeluje!"); // odgoda rezultata prijavljivanja (250);  if (digitalRead (buttonTwo) == HIGH) // odgoda stanja tipke (10); // softver se odbacuje ako (digitalRead (buttonTwo) == HIGH) // ponovno provjeri stanje gumba Serial.println ("Gumb Dva djela!"); // odgoda rezultata prijavljivanja (250);  

Pokrenite ovaj kôd (ali USB kabel držite spojenim) i otvorite serijski monitor (Gore desno> Serijski monitor). Kad pritisnete gumb trebali biste vidjeti “Gumb jedan djeluje!” ili “Dva djela gumba!” ovisno o gumbu koji ste pritisnuli.

Postoji jedna važna zabilješka za oduzimanje od ovog primjera - softver odustaje. Ovo je jednostavno 10 milisekundi (ms) kašnjenja između provjere gumba i ponovne provjere gumba. To povećava točnost pritiska na tipku i pomaže u sprečavanju buke koja pokreće Arduino. Ne morate to raditi, iako se preporučuje.

Izrada kontrolera

Sad kad je sve ožičeno i radi, vrijeme je za sastavljanje punog regulatora.

Ovaj će primjer poslati drugu CC poruku za svaki pritisnuti gumb. To koristim za kontrolu Ableton Live 9.6 na OS X. Kod je sličan oba gornja uzorka testiranja.

#include #include #include #include #include const int buttonOne = 6; // dodijeliti kontaktnu tipku varijabli const int buttonTwo = 7; // dodijeliti pin za varijablu MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // stvoriti MIDI objekt nazvan midiOut void setup () pinMode (buttonOne, INPUT); // gumb za postavljanje kao ulazni pinMode (gumbTwo, INPUT); // gumb za postavljanje kao ulaz Serial.begin (31250); // postavi MIDI izlaz void petlja () if (digitalRead (buttonOne) == HIGH) // odgoda stanja tipke (10); // softver odustaje ako (digitalRead (buttonOne) == HIGH) // ponovno provjeri stanje gumba midiOut.sendControlChange (56,127,1); // poslati MIDI CC - 56 = napomena, 127 = brzina, 1 = kašnjenje kanala (250);  if (digitalRead (buttonTwo) == HIGH) // odgoda stanja tipke (10); // softver odustaje ako (digitalRead (buttonTwo) == HIGH) // ponovno provjeri stanje gumba midiOut.sendControlChange (42,127,1); // poslati MIDI CC - 42 = napomena, 127 = brzina, 1 = kašnjenje kanala (250);  

Napomena - nećete je moći koristiti Serial.println () s MIDI izlazom.
Ako želite poslati PC poruku umjesto CC jednostavno zamijenite:

midiOut.sendControlChange (42,127,1);

S:

midiOut.sendProgramChange (vrijednost, kanal); 

U akciji

Slijedi demonstracija kao kontroler za Ableton Live (najbolji DJ softver za svaki proračun Najbolji softver za DJ za svaki proračun Najbolji softver za DJ za svaki proračun Dobar softver za miješanje može uvelike promijeniti vašu izvedbu. Bilo da koristite Mac , Windows ili Linux, ako želite započeti s DJ-om, ispunjava se svaka razina vještina i proračuna. Gornje desno prikazuje audio brojila, a gornja sredina prikazuje dolazne midi poruke (putem MIDI monitora na OS X).

Jeste li napravili MIDI kontroler?

Puno je praktične uporabe za prilagođeni MIDI kontroler. Možete izgraditi veliku jedinicu koja kontrolira stopala ili uglađen upravljački studio. A ako vas zanima kupnja, evo najboljih USB MIDI kontrolera 9 najboljih USB MIDI kontrolera za glazbenike 9 najboljih USB MIDI kontrolera za glazbenike Tražite li USB MIDI kontroler? Ovdje su najbolji MIDI kontroleri koje trenutno možete kupiti, bez obzira na proračun. možeš kupiti.

Kreditna slika: Keith Gentry putem Shutterstock.com




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.