Publicitate

Ca muzician care a adunat o colecție de instrumente muzicale și cutii de zgomot, umilul Arduino este instrumentul perfect pentru a crea un controler MIDI personalizat. În timp ce Zmeura Pi ar fi luat coroana pentru Internet of Things (IoT) Internet of Things: 10 produse utile pe care trebuie să le încercați în 2016Internet of Things se extinde în 2016, dar ce înseamnă asta exact? Cum beneficiați personal de Internetul lucrurilor? Iată câteva produse utile de ilustrat. Citeste mai mult proiecte, un simplu Arduino Uno (care sunt diferitele tipuri de Arduino? Ghidul de cumpărare Arduino: ce placă ar trebui să obțineți?Există atât de multe tipuri diferite de plăci Arduino, încât ai fi iertat că ai fost confuz. Ce ar trebui să cumperi pentru proiectul tău? Să ne ajutăm, cu acest ghid de cumpărare Arduino! Citeste mai mult ) are o putere mai mult decât suficientă pentru acest proiect.

Prima dată când folosești un Arduino? Fără griji, avem o completare Ghidul începătorului Arduino Noțiuni introductive cu Arduino: Ghid pentru începători

instagram viewer
Arduino este o platformă de prototipare electronică open-source bazată pe hardware și software flexibile, ușor de utilizat. Este destinat artiștilor, designerilor, pasionaților și oricui este interesat să creeze obiecte sau medii interactive. Citeste mai mult să citiți înainte să abordați acest proiect.

Arduino-Midi-Controller-Breadboard

Ce este MIDI?

MIDI este o interfață digitală cu instrumente muzicale. Prezintă un mod standard pentru dispozitivele muzicale de a comunica între ele. Dacă dețineți o tastatură electronică, probabil că aveți o interfață MIDI. Cu toate că există câteva detalii tehnice implicate în implementarea MIDI, este important să ne amintim că MIDI nu este audio! Datele MIDI sunt un set simplu de instrucțiuni (o instrucțiune se numește „mesaj”) pe care un alt dispozitiv o poate implementa pentru a emite sunete sau parametri de control diferiți.

MIDI acceptă 16 canale. Acest lucru înseamnă că fiecare cablu poate suporta 16 dispozitive diferite care comunică independent între ele. Dispozitivele sunt conectate folosind un cablu DIN cu 5 pini. DIN reprezintă „Institutul German pentru Standardizare” și este pur și simplu un cablu cu cinci pini în conector. USB este adesea utilizat în locul DIN 5-pin, sau poate fi utilizată o interfață USB-MIDI.

MIDI-Cable-Male

Control Change și Change Program

Există două tipuri principale de mesaje MIDI: Schimbare control și Schimbare program.

Mesajele Control Change (CC) conțin un număr de control și o valoare între 0 și 127. Mesajele CC sunt adesea folosite pentru a schimba setările, cum ar fi volumul sau tonul. Dispozitivele care acceptă MIDI ar trebui să vină cu un manual care să explice ce canale și mesaje sunt configurate în mod implicit și cum să le schimbi (cunoscut sub numele de mapare MIDI).

Mesajele Program Change (PC) sunt mai simple decât mesajele CC. Mesajele PC constau dintr-un singur număr și sunt utilizate pentru a schimba presetarea sau patch-ul de pe un dispozitiv. Mesajele PC sunt uneori cunoscute sub numele de „Patch Change”. Similar cu mesajele CC, producătorii ar trebui să furnizeze un document în care să prezinte presetările schimbate de un anumit mesaj.

Ce vei avea nevoie

  • Arduino
  • Priză femelă din 5 pini DIN
  • 2 x 220 ohm rezistențe
  • Rezistențe de 2 x 10k ohm
  • 2 x comutatoare momentane
  • Cabluri de cârlig
  • breadboard
  • Cablu MIDI
  • Dispozitiv MIDI sau interfață USB

Plan de construire

Acest proiect va fi destul de simplu. Desigur, puteți adăuga mai multe butoane sau hardware pentru a vă potrivi nevoile. Aproape orice Arduino va fi adecvat - sunt necesare doar trei pini pentru acest exemplu. Acest proiect constă din două butoane pentru controlul programului, un port MIDI pentru a trimite datele și un dispozitiv pentru a primi mesajele. Acest circuit a fost construit pe un breadboard Electronica pentru începători: 10 abilități pe care trebuie să le cunoștiMulți dintre noi niciodată nu au atins niciodată un fier de lipit - dar a face lucrurile pot fi incredibil de satisfăcătoare. Iată zece dintre cele mai de bază abilități electronice DIY pentru a vă ajuta să începeți. Citeste mai mult aici, cu toate acestea, este posibil să o transferați într-o casetă de proiect și conectori lipiți pentru o soluție robustă.

Ansamblu circuit

Arduino-Midi-Controller-Circuit

Conexiune MIDI

MIDI-Pinout

Conectați-vă mufa MIDI după cum urmează:

  • Pinul MIDI 5 la Transductorul Arduino (TX) 1 printr-o rezistență de 220 ohmi
  • Pinul MIDI 4 la Arduino + 5V printr-un rezistor de 220 ohmi
  • Pinul MIDI 2 până la solul Arduino

Conexiune cu buton

Butoanele funcționează schimbând rezistența pe care Arduino „o vede”. Pinul Arduino trece prin comutator direct la sol (SCĂZUT) printr-un rezistor de 10 k ohm (un rezistor „trageți în jos”, asigurând ca valoarea să rămână scăzută). Când este apăsat butonul, valoarea văzută de circuit se schimbă la + 5v fără rezistență (ÎNALT). Arduino poate detecta această modificare folosind digitalRead (pin) comanda. Conectați butoanele la pinii 6 și 7 de la intrarea / ieșirea digitală Arduino (I / O). Conectați ambele butoane:

  • Partea stângă a butonului la + 5V
  • Partea din dreapta a butonului către Arduino Ground printr-un rezistor de 10k ohm
  • Partea din dreapta a butonului spre știftul Arduino (6 sau 7)

Testare MIDI

Acum că tot hardware-ul este terminat, este timpul să îl testați. Veți avea nevoie de o interfață USB-MIDI (multe interfețe audio pot face acest lucru) și un cablu MIDI. Portul MIDI conectat pe panoul de bord trimite date, deci este rezultatul. Calculatorul dvs. primește datele, prin urmare este intrarea. Acest proiect folosește excelentul Arduino Biblioteca MIDI v4.2 de patruzeci și șapte de efecte. După ce ați instalat Biblioteca, puteți să o includeți în codul dvs. accesând Schiță> Include bibliotecă> MIDI.

De asemenea, veți avea nevoie de un program care să monitorizeze datele MIDI primite:

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

Conectați Arduino Noțiuni introductive cu setul dvs. de pornire Arduino - Instalarea de drivere și configurarea plăcii și a portuluiAșadar, v-ați cumpărat un kit de pornire Arduino și, probabil, alte alte componente aleatoare aleatorilor - acum ce? Cum te apuci de fapt cu programarea acestui lucru Arduino? Cum o configurați ... Citeste mai mult pe computer și încărcați următorul cod de testare (nu uitați să selectați placa și portul corecte din Instrumente> placă și Instrumente> Port meniuri).

#include 
#include 
#include 
#include 
#include  MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // creați un obiect MIDI numit midiOut void setup () {Serial.begin (31250); // serial de configurare pentru MIDI. } void loop () {midiOut.sendControlChange (56,127,1); // trimiteți un MIDI CC - 56 = notă, 127 = viteză, 1 = întârziere canal (1000); // așteptați 1 secundă midiOut.sendProgramChange (12,1); // trimiteți un PC MIDI - 12 = valoare, 1 = întârziere canal (1000); // așteptați 1 secundă. }

Acest cod va trimite un mesaj CC, va aștepta 1 secundă, va trimite un mesaj PC apoi va aștepta 1 secundă la nesfârșit. Dacă totul funcționează corect, ar trebui să vedeți un mesaj pe monitorul MIDI.

Dacă nu se întâmplă nimic, nu intrați în panică! Încercați depanarea:

  • Asigurați-vă că toate conexiunile sunt corecte
  • Verificați corect portul MIDI - trebuie să existe 2 pini de rezervă pe marginile exterioare
  • Verificați dublu că circuitul este corect
  • Verificați că circuitul este conectat la o interfață USB-MIDI cu un cablu MIDI
  • Verificați cablul MIDI este conectat la intrare pe interfața USB-MIDI
  • Asigurați-vă că Arduino are putere
  • Instalați driverul corect pentru interfața USB-MIDI

Daca esti încă având probleme, poate merită să vă verificați panoul. Uneori, plăcile ieftine pot fi foarte inconsistente și de calitate scăzută - mi s-a întâmplat în timp ce lucrez la acest proiect.

Testarea butoanelor

Acum este timpul să testați că butoanele funcționează corect. Încărcați următorul cod de testare. MIDI nu trebuie să fie conectat pentru a testa această parte.

buton const intOne = 6; // atribuiți pinul butonului la variabilă. butonul const intTwo = 7; // atribuiți pinul butonului la variabila void setup () {Serial.begin (9600); // serial de configurare pentru text pinMode (butonOne, INPUT); // buton de configurare ca pin de intrareMode (butonTwo, INPUT); // butonul de configurare ca intrare. } void loop () {if (digitalRead (buttonOne) == HIGH) {// verificare întârziere de stare a butonului (10); // software-de-bounce if (digitalRead (buttonOne) == HIGH) {// verifică din nou starea butonului Serial.println ("Butonul One funcționează!"); // întârzierea rezultatului jurnalului (250); }} if (digitalRead (butonTwo) == HIGH) {// verificați întârzierea stării butonului (10); // software-de-bounce if (digitalRead (buttonTwo) == HIGH) {// verifică din nou starea butonului Serial.println ("Buton Două funcții!"); // întârzierea rezultatului jurnalului (250); } } }

Rulați acest cod (dar țineți cablul USB conectat) și deschideți Serial Monitor (În dreapta sus> Monitor serial). Când apăsați un buton, ar trebui să vedeți „Butonul One funcționează!” sau „Butonul două funcționează!” în funcție de butonul pe care l-ați apăsat.

Există o notă importantă pentru a scoate din acest exemplu: abandonarea software-ului. Aceasta este o simplă întârziere de 10 milisecunde (ms) între verificarea butonului și apoi verificarea din nou a butonului. Acest lucru crește precizia apăsării butonului și ajută la prevenirea declanșării zgomotului Arduino. Nu trebuie să faceți acest lucru, deși este recomandat.

Crearea controlerului

Acum că totul este conectat și funcționează, este timpul să asamblați controlerul complet.

Acest exemplu va trimite un mesaj CC diferit pentru fiecare buton apăsat. Folosesc acest lucru pentru a controla Ableton Live 9.6 pe OS X. Codul este similar ambelor probe de testare de mai sus.

#include 
#include 
#include 
#include 
#include buton const intOne = 6; // atribuiți pinul butonului la variabilă. butonul const intTwo = 7; // alocați pinul butonului la variabila MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // creați un obiect MIDI numit midiOut void setup () {pinMode (buttonOne, INPUT); // buton de configurare ca pin de intrareMode (butonTwo, INPUT); // butonul de configurare ca intrare Serial.begin (31250); // configurare ieșire MIDI. } void loop () {if (digitalRead (buttonOne) == HIGH) {// verificare întârziere de stare a butonului (10); // software-de-bounce if (digitalRead (buttonOne) == HIGH) {// verifică din nou starea butonului midiOut.sendControlChange (56,127,1); // trimiteți un MIDI CC - 56 = notă, 127 = viteză, 1 = întârziere canal (250); }} if (digitalRead (butonTwo) == HIGH) {// verificați întârzierea stării butonului (10); // software-de-bounce if (digitalRead (buttonTwo) == HIGH) {// verifică din nou starea butonului midiOut.sendControlChange (42,127,1); // trimiteți un MIDI CC - 42 = notă, 127 = viteză, 1 = întârziere canal (250); } } }

Notă - nu veți putea utiliza Serial.println () cu ieșire MIDI.
Dacă doriți să trimiteți un mesaj PC în loc de CC, înlocuiți pur și simplu:

midiOut.sendControlChange (42,127,1);

Cu:

midiOut.sendProgramChange (valoare, canal); 

În acțiune

Mai jos este o demonstrație ca un controler pentru Ableton Live (Cel mai bun software DJ pentru fiecare buget Cel mai bun software DJ pentru fiecare bugetUn software bun de amestecare poate face toată diferența în performanța ta. Indiferent dacă utilizați un Mac, Windows sau Linux, fiecare nivel de abilitate și buget este rezervat dacă doriți să începeți jocul. Citeste mai mult ). În partea dreaptă sus se afișează contoarele audio, iar partea de sus sus arată mesajele intermediare primite (prin Monitor MIDI pe OS X).

Ați făcut un controler MIDI?

Există o mulțime de utilizări practice pentru un controler MIDI personalizat. Puteți construi o vastă unitate controlată de picior sau un controlor elegant de studio. Și dacă sunteți interesat să cumpărați unul, iată cele mai bune controlere USB MIDI Cele mai bune 9 controlere USB MIDI pentru muzicieniÎn căutarea unui controller USB MIDI? Iată care sunt cele mai bune controlere MIDI pe care le puteți cumpăra chiar acum, indiferent de buget. Citeste mai mult poti cumpara.

Credit imagine: Keith Gentry prin Shutterstock.com

Joe este absolvent în informatică de la Universitatea din Lincoln, Marea Britanie. Este un dezvoltator de software profesionist, iar când nu zboară drone sau scrie muzică, poate fi găsit adesea făcând fotografii sau producând videoclipuri.