Napravite svoj vlastiti MIDI kontroler sa Arduinom

MIDI

Ako ste ljubitelj muzike ili direktno amater ili profesionalni muzičar, sigurno ste u svom domu sakupili veliku kolekciju muzičkih instrumenata. Da biste sve ove kombinacije napravili savršeno, najbolje je nabaviti a MIDI kontroler. Nažalost, ove vrste predmeta su obično prilično skupe, tako da osoba bez previše resursa ima težak pristup svemu što može ponuditi.

Da biste puno bolje razumjeli što je MIDI kontroler, recite vam da riječ MIDI dolazi Digitalno sučelje muzičkih instrumenata, odnosno vrsta kontrolera koji elektroničkim muzičkim uređajima omogućava međusobnu komunikaciju. Na primjer, ako kod kuće imate elektroničku tipkovnicu, više je nego vjerovatno da ima MIDI sučelje. Prije nastavka napredovanja, uprkos činjenici da postoje određeni tehnički detalji zbog kojih se može vjerovati u suprotno, mora biti vrlo jasno da MIDI nije audio.

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

Jednom kad se jasno razumijemo, sigurno će vam biti puno lakše razumjeti da je MIDI samo jednostavan set instrukcija sposoban da podrži do 16 nezavisnih kanala, što znači da može biti do 16 različitih uređaja koji međusobno neovisno komuniciraju. Ovi uređaji moraju biti povezani putem 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 tutorski korak po korak sa puno opisne slike gdje možemo izvesti sve potrebne radnje za stvaranje vlastitog MIDI kontrolera.

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

Kako napraviti svoj vlastiti MIDI kontroler pomoću Arduina

midi konektor

Mnogi su ljudi koji iz različitih razloga, kako ličnih, 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 funkcija koje mogu ponuditi.

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

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

Šta je MIDI kontroler?

midi

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

Unutar MIDI-a postoje dva različita tipaS 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 jačine 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, seriju poruka koje su pak mnogo jednostavnije od onih koje čine Control Change. Ove vrste poruka koriste se 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

Šema midi konektora

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

Trebat će nam ženski 5-polni 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 pravilno prepoznati pinove, a posebno gdje ih treba povezati. Uopšteno govoreći, sve što u ovom trenutku morate učiniti je spojiti pin 5 kabla 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 mora biti povezan na priključak uzemljenja vašeg kontrolera.

Nakon što završite ovaj korak, na fotografiji koja se nalazi odmah ispod ovih linija nemate detaljan dijagram, vrijeme je da povežete tipke. Ideja u ovom odjeljku je postići da se pomoću pin-a digitalRead (sposobnog za otkrivanje kada se napon koji ga dostigne) omogući korištenje tranzistora, samo pritiskom na dugme. Za to moramo koristiti samo gumb tako da ga s lijeve strane povežemo na 5V, desnu na otpor od 220 ohma, a odatle na zemlju, dok zauzvrat povežemo i desnu stranu na pin 6. Drugo dugme bi se instaliralo na isti način, iako ga, kao što vidite na dijagramu, umjesto na pin 6 spajamo na 7.

Softver za upotrebu za kućni midi kontroler

Kad 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 sa našim računarom. 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čunara 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 računarom 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 ići na test dugmeta, 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 povezan na USB-MIDI sučelje MIDI kabelom, MIDI priključni kablovi su pravilno povezani, MIDI kabel je povezan na ulaz USB-MIDI sučelja, Arduino ploča je ispravno spojena na električnu mrežu i ima dovoljno snage ...

Testiranje ispravnosti tastera

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 kod jednostavno treba sastaviti i izvršiti tako da nam, s priključenim USB kabelom, program kaže je li pritisnuto bilo koje dugme.

Izrađujemo naš domaći MIDI kontroler

Nakon što izvršimo ove testove, vrijeme je da za to sastavimo vlastiti MIDI kontroler, trebat ćete samo kompajlirati 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 vam da ovaj put ne možete koristiti naredbu Serial.println () s MIDI izlazom, ako želite prikazati neku vrstu poruke na računaru, samo promijenite:

midiOut.sendControlChange(42,127,1);

od:

midiOut.sendControlChange(value, channel);

pri čemu vrijednost i kanal moraju imati željene vrijednosti koje želite prikazati.

Primjer rada:


4 komentara, ostavi svoj

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Alfred rekao je

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

  2.   Danel Roman rekao je

    Pozdrav.

    Pokušavam izvesti ovaj fantastičan vodič ... ali #includes nije potpun ....

    Možete li mi reći koji su neophodni?

    Hvala lijepo.

  3.   uell rekao je

    Zdravo.
    Želio bih napraviti elektronički bubanj modul zamjenom tipki sa ulaznim priključcima na koje će stizati piezoelektrični signal.
    Da li bi to bilo moguće?

  4.   Eduardo Valenzuela rekao je

    Molim vas, ako biste mogli dati uvrštavanja ovog koda, zanima me ovaj projekat.