Napravite vlastiti MIDI kontroler s Arduinom

MIDI

Ako ste ljubitelj glazbe ili izravno amater ili profesionalni glazbenik, sigurno ste u svom domu sakupili veliku kolekciju glazbenih instrumenata. Da bi sve ove kombinacije bile savršeno, najbolje je nabaviti MIDI kontroler. Nažalost, ove su vrste predmeta obično prilično skupe, pa je osobi bez previše resursa teško pristupiti svemu što može ponuditi.

Da biste puno bolje razumjeli što je MIDI kontroler, recite vam da riječ MIDI dolazi Digitalno sučelje glazbenih instrumenata, odnosno svojevrsni kontroler koji elektroničkim glazbenim uređajima omogućuje međusobnu komunikaciju. Na primjer, ako kod kuće imate elektroničku tipkovnicu, više je nego vjerojatno da ima MIDI sučelje. Prije nastavka kretanja naprijed, unatoč činjenici da postoje određeni tehnički detalji koji bi vas mogli navesti da vjerujete u suprotno, morate biti vrlo jasni da MIDI nije audio.

Stvorite svoj vlastiti MIDI kontroler pomoću ovog jednostavnog vodiča

Jednom kad to jasno shvatimo, zasigurno će vam biti puno lakše razumjeti da je MIDI samo jednostavan set uputa sposoban podržati do 16 neovisnih kanala, što znači da može postojati do 16 različitih uređaja koji međusobno neovisno komuniciraju. Ovi uređaji moraju biti povezani pomoću 5-pinskog DIN kabela, koji je u osnovi kabel s pet pinova unutar konektora. Kao detalj, prilično je uobičajeno koristiti USB umjesto 5-pinskog DIN-a, u slučaju upotrebe USB-a moramo stvoriti USB-MIDI sučelje.

Bez daljnjega, ostavljam vam vezu na kojoj možete pronaći udžbenik korak po korak s puno opisne slike gdje možemo izvesti sve potrebne radnje za stvaranje vlastitog MIDI kontrolera.

Povezani članak:
Kako promijeniti korisničko ime i lozinku za Pi na našoj Raspberry Pi

Kako izraditi vlastiti MIDI kontroler s Arduinom

midi konektor

Mnogo je ljudi koji iz različitih razloga, kako osobnih, tako i profesionalnih, trebaju koristiti a potpuno prilagođeni MIDI kontroler Jer možda i kao primjer, u nekom trenutku vašeg života kao umjetnika, kupnja jeftinog MIDI kontrolera možda neće ispuniti vaša očekivanja ili potrebe dok, kada za to dođe vrijeme, odlučivanje za profesionalnu verziju može biti pretjerano u oba financijska resursa. potrebe, kao i veliki broj značajki koje mogu ponuditi.

Zbog toga vam danas želim pokazati sve što vam treba kako biste mogli izraditi vlastiti MIDI kontroler koji pokazuje i sve što je potrebno za njegovu izgradnju i ponuditi vam softver koji ćete trebati instalirati. Kao detalj, za ovaj je projekt ključna upotreba Arduino ploče, kontrolera koji je dovoljno moćan da izvrši ovaj zadatak.

Kako napraviti robota
Povezani članak:
Kako napraviti robota: 3 različite opcije

Što je MIDI kontroler?

midi

U osnovi je MIDI kontroler odgovoran, široko govoreći, za međusobno povezivanje različitih glazbenih uređaja. Mnogi su instrumenti koji uključuju MIDI sučelje, iako to mora biti vrlo jasno, jer postoji mnogo korisnika koji su često zbunjeni, MIDI nije zvučna datoteka, već vrlo jednostavan set uputa koje instrument može primiti. ili postavke zvuka.

Unutar MIDI-ja postoje dvije različite vrsteS jedne strane imamo onu pod nazivom Change Control, koja ima broj kontrolera i vrijednost između 0 i 127. Zahvaljujući tome mogu se izdavati poruke gdje se mogu mijenjati različiti parametri poput glasnoće ili tona. Različiti instrumenti koji prihvaćaju MIDI trebali bi sa sobom ponijeti priručnik koji objašnjava koji su kanali i poruke zadani i kako ih promijeniti.

Na drugom mjestu imamo Program Change, niz poruka koje su pak mnogo jednostavnije od onih koje čine Control Change. Te se vrste poruka koriste za promjenu unaprijed postavljene postavke ili zakrpe uređaja. Kao i kod kontrole promjena, zajedno s vašim instrumentom, proizvođač mora uključiti priručnik koji pokazuje koje su unaprijed postavljene postavke promijenjene određenom porukom.

Dijelovi potrebni za izradu vlastitog domaćeg MIDI kontrolera

Shema Midi konektora

Da biste mogli izraditi vlastiti MIDI kontroler, trebat će vam niz dijelova uz Arduino ploču, kao što smo već spomenuli. Prije nastavka, samo vam recite da vam je možda u budućnosti, jer želite proširiti projekt, potrebno još stvari, iako ćete u ovom trenutku s nekoliko komada imati dovoljno.

Trebat će nam 5-polni ženski DIN kabel, 2 otpora od 220 ohma, 2 trenutna prekidača, 2 otpornika od 10 k ohma, priključne žice, pločica, MIDI kabel i MIDI uređaj ili USB sučelje. Sa samo ovim dijelovima možete, slijedeći moje korake, započeti izradu vlastitog MIDI kontrolera.

Prvi koraci

Arduino midi shematski

Prije početka ostavljam vam sliku na kojoj možete vidjeti pinove vašeg MIDI kabela, na taj način možemo ispravno prepoznati pinove, a posebno gdje svaki treba spojiti. Široko govoreći, sve što u ovom trenutku morate učiniti je spojiti pin 5 kabela na otpornik od 220 ohma, a odatle na Arduino Transmit 1, pin 4 na otpornik od 220 ohma, a odatle na 5V utičnicu Arduino dok pin 2 moraju biti spojeni na priključak uzemljenja vašeg kontrolera.

Nakon što završite ovaj korak, na fotografiji koja se nalazi odmah ispod ovih crta nemate detaljan dijagram, vrijeme je da povežete gumbe. Ideja u ovom odjeljku je postići da se pomoću pin-a digitalRead (koji može otkriti kada se napon koji ga dosegne) pritiskom gumba postigne mogućnost korištenja tranzistora. Za to moramo koristiti samo gumb tako da ga s lijeve strane povežemo na 5V, s desne strane na otpor od 220 ohma, a odatle na masu, dok zauzvrat spojimo i desnu stranu na pin 6 Drugi gumb instalirao bi se na isti način, iako ga, kao što vidite na dijagramu, umjesto klina 6 spajamo na 7.

Softver za upotrebu za kućni midi kontroler

Nakon što završimo sa svim hardverom, vrijeme je da spojimo svoj instrument i testiramo. Prije toga moramo imati USB-MIDI sučelje i MIDI kabel za povezivanje ploče koja šalje podatke s našim računalom. Da bismo to postigli, odlučili smo se za MIDI v4.2 biblioteku koju su kreirali momci iz Forty Seven Effects koju smo morali instalirati na naš Arduino i uključiti u projekt.

U slučaju računala trebat će nam program koji je sposoban nadzirati sve MIDI podatke koji mu stižu iz Arduina. Za to imamo različite mogućnosti kao što su MIDI Monitor (OS X), MIDI-OX (Windows) ili Kmidimon (Linux)

Da bismo napravili mali test, jednostavno moramo povezati Arduino s našim računalom i izvršiti sljedeći kod:

#include
#include
#include
#include
#include

MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // crear objeto de salida MIDI llamado midiOut

void setup() {
Serial.begin(31250); // configuracion de serial para MIDI
}

void loop() {
midiOut.sendControlChange(56,127,1); // envío de señal MIDI CC -- 56 = nota, 127 = velocidad, 1 = canal
delay(1000); // retraso
midiOut.sendProgramChange(12,1); // envío de una señal MIDI PC -- 12 = valor, 1 = canal
delay(1000); // retraso de 1 segundo
}

Ako je sve prošlo u redu, možete prijeći na test gumba, u slučaju da vam test nije uspio, morate se pobrinuti da su sve veze ispravne, sklop je potpuno isti kao i prethodni dijagram, sklop je spojen na USB-MIDI sučelje MIDI kabelom, kabeli MIDI priključka ispravno su spojeni, MIDI kabel spojen je na ulaz USB-MIDI sučelja, ploča Arduino ispravno je spojena na električnu mrežu i ima dovoljno snage ...

Testiranje ispravnosti gumba

Prije nego što nastavite hraniti naš program novim funkcionalnostima i kodom u kojima se možemo izgubiti, vrijedi na trenutak zaustaviti i provjerite rade li tipke ispravno. Za njih moramo učitati sljedeći kod:

const int boton1 = 6; // asignacion del boton a una variable
const int boton2 = 7; // asignacion del boton a una variable

void setup() {
Serial.begin(9600); // configuracion del serial
pinMode(boton1,INPUT); // configuracion del boton1 como entrada
pinMode(boton2,INPUT); // configuracion del boton2 como entrada
}

void loop() {

if(digitalRead(boton1) == HIGH) { // prueba de estado del boton1
delay(10); // retraso
if(digitalRead(boton1) == HIGH) { // prueba de estado de nuevo
Serial.println("Boton 1 funciona correctamente!"); // log
delay(250);
}
}

if(digitalRead(boton2) == HIGH) { // prueba de boton 2
delay(10); // retraso
if(digitalRead(boton2) == HIGH) { // prueba de estado de nuevo
Serial.println("Boton 2 funciona correctamente!"); // log
delay(250);
}
}

}

Ovaj se kod jednostavno mora sastaviti i izvršiti tako da nam, s priključenim USB kabelom, program kaže je li pritisnuta bilo koja tipka.

Izrađujemo naš domaći MIDI kontroler

Nakon što pokrenemo ove testove, vrijeme je da za to sastavimo vlastiti MIDI kontroler, morat ćete sastaviti samo sljedeći kod:

#include
#include
#include
#include
#include

const int boton1 = 6; // asignamos boton a la variable
const int boton2 = 7; // asignamos boton a la variable

MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // create a MIDI object called midiOut

void setup() {
pinMode(boton1,INPUT); // configuracion del boton1 como una entrada
pinMode(boton2,INPUT); // configuracion del boton2 como una entrada
Serial.begin(31250); // configuracion MIDI de salida
}

void loop() {
if(digitalRead(buttonOne) == HIGH) { // comprobacion de estado
delay(10); // retraso
if(digitalRead(buttonOne) == HIGH) { // comprobacion de estado de nuevo
midiOut.sendControlChange(56,127,1); // envío un MIDI CC -- 56 = nota, 127 = velocidad, 1 = canal
delay(250);
}
}

if(digitalRead(buttonTwo) == HIGH) { // comprobacion de estado
delay(10); // retraso
if(digitalRead(buttonTwo) == HIGH) { // nueva comprobacion de estado
midiOut.sendControlChange(42,127,1); // envío un MIDI CC -- 42 = nota, 127 = velocidad, 1 = canal
delay(250);
}
}
}

Kao detalj, recite nam da ovaj put ne možete koristiti naredbu Serial.println () s MIDI izlazom, ako želite prikazati neku vrstu poruke na računalu, samo promijenite:

midiOut.sendControlChange(42,127,1);

por:

midiOut.sendControlChange(value, channel);

gdje vrijednost i kanal moraju imati željene vrijednosti koje želite prikazati.

Primjer rada:


4 komentara, ostavi svoj

Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Alfred dijo

    Arduino vam nudi brojne mogućnosti da samostalno započnete projekte https://www.juguetronica.com/arduino . Jedna od najboljih stvari je da možete započeti bez da ste stručnjak i nastaviti učiti, motivirajući se tako da budete samouki.

  2.   Danel Roman dijo

    Pozdrav.

    Pokušavam napraviti ovaj fantastičan vodič ... ali #includes nije cjelovit ....

    Možete li mi reći koje su potrebne?

    Puno hvala.

  3.   uell dijo

    Pozdrav.
    Želio bih izraditi elektronički bubnjarski modul zamjenom tipki s ulaznim priključcima na koje će stizati piezoelektrični signal.
    Bi li to bilo moguće učiniti?

  4.   Eduardo Valenzuela dijo

    Molim vas, ako biste mogli dati sadržaje ovog koda, zanima me ovaj projekt.