Vytvorte si svoj vlastný MIDI radič s Arduinom

MIDI

Ak ste milovníkom hudby alebo priamo amatérskym alebo profesionálnym hudobníkom, určite ste vo svojom dome zhromaždili veľkú zbierku hudobných nástrojov. Aby boli všetky tieto zmesi perfektné, je najlepšie zaobstarať si MIDI ovládač. Bohužiaľ, tieto typy objektov sú zvyčajne dosť drahé, takže pre človeka bez príliš veľa zdrojov je ťažké získať prístup ku všetkému, čo môže ponúknuť.

Aby ste oveľa lepšie pochopili, čo je to MIDI kontrolér, povedzte vám, že slovo MIDI pochádza z Digitálne rozhranie hudobných nástrojov, teda akýsi ovládač, ktorý umožňuje elektronickým hudobným zariadeniam vzájomnú komunikáciu. Pokiaľ máte doma napríklad elektronickú klávesnicu, je viac ako pravdepodobné, že má MIDI rozhranie. Pred pokračovaním v pokroku musí byť úplne zrejmé, že napriek tomu, že existujú určité technické podrobnosti, ktoré môžu viesť k presvedčeniu o opaku MIDI nie je zvuk.

Vytvorte si svoj vlastný MIDI kontrolér pomocou tohto jednoduchého tutoriálu

Keď v tom budeme mať jasno, určite oveľa ľahšie pochopíte, že MIDI je len jednoduchý inštrukčná sada schopná podporovať až 16 nezávislých kanálov, čo znamená, že môže existovať až 16 rôznych zariadení, ktoré navzájom komunikujú nezávisle. Tieto zariadenia musia byť pripojené pomocou 5-pinového kábla DIN, čo je v podstate kábel s piatimi kolíkmi vo vnútri konektora. Ako detail je úplne bežné používať USB namiesto 5-pólového DIN, v prípade použitia USB musíme vytvoriť USB-MIDI rozhranie.

Bez ďalších okolkov vám zanechávam odkaz, kde nájdete odkaz konzultácie krok za krokom s množstvom popisné obrázky kde môžeme vykonať všetky potrebné kroky k vytvoreniu nášho vlastného MIDI radiča.

Súvisiaci článok:
Ako zmeniť používateľské meno a heslo Pi na našom Raspberry Pi

Ako si vyrobiť vlastný MIDI radič s Arduinom

midi konektor

Mnoho ľudí je, ktorí z rôznych osobných a profesionálnych dôvodov potrebujú používať a úplne vlastný MIDI radič Pretože možno a napríklad v určitom okamihu vášho umeleckého života nemusí nákup lacného ovládača MIDI zodpovedať vašim očakávaniam alebo potrebám, zatiaľ čo v pravý čas môže byť výber profesionálnej verzie v oboch finančných zdrojoch prehnaný. potreby, ako aj veľké množstvo funkcií, ktoré môžu ponúknuť.

Z tohto dôvodu vám dnes chcem ukázať všetko, čo potrebujete, aby ste si mohli vytvoriť svoj vlastný MIDI kontrolér označujúci všetko, čo potrebujete pre jeho konštrukciu, a ponúknuť vám softvér, ktorý budete musieť nainštalovať. Ako podrobnosť uvádzame, že pre tento projekt je nevyhnutné použitie dosky Arduino, teda radiča, ktorý je dostatočne výkonný na vykonávanie tejto úlohy.

Ako vyrobiť robota
Súvisiaci článok:
Ako vyrobiť robota: 3 rôzne možnosti

Čo je to MIDI kontrolér?

midi

V zásade je MIDI kontrolér zodpovedný za vzájomné prepojenie rôznych hudobných zariadení. Existuje mnoho nástrojov, ktoré obsahujú rozhranie MIDI, aj keď to musí byť úplne jasné, pretože existuje veľa používateľov, ktorí sú často zmätení. MIDI nie je zvukový súbor, ale veľmi jednoduchá sada pokynov, ktoré môže nástroj prijať. alebo nastavenia zvuku.

Vo vnútri MIDI existujú dva rôzne typyNa jednej strane máme ten, ktorý sa volá Change Control, kde má číslo radiča a hodnotu medzi 0 a 127. Vďaka tomu môžu byť vydávané správy, kde je možné meniť rôzne parametre ako hlasitosť alebo tón. Rôzne nástroje, ktoré akceptujú MIDI, by si mali so sebou vziať príručku s vysvetlením, ktoré kanály a správy sú predvolene nastavené a ako ich zmeniť.

Na druhom mieste máme Program Change, sériu správ, ktoré sú zasa oveľa jednoduchšie ako správy, ktoré tvoria Control Change. Tieto typy správ sa používajú na zmenu predvoľby alebo opravy zariadenia. Rovnako ako v Change Control, aj tu musí výrobca spolu s vašim prístrojom zahrnúť manuál, ktorý indikuje, ktoré predvoľby sú zmenené konkrétnou správou.

Súčasti potrebné na zostavenie vlastného domáceho MIDI ovládača

Schéma midi konektora

Na to, aby ste si mohli zostaviť svoj vlastný MIDI radič, budete potrebovať na dosku Arduino okrem série aj ďalšie kúsky. Predtým, ako budete pokračovať, vám len povieme, že možno v budúcnosti, pretože chcete rozšíriť projekt, budete potrebovať viac vecí, aj keď v tejto chvíli ich budete mať naozaj veľa.

Budeme potrebovať 5-pólový ženský kábel DIN, 2 220 ohmové odpory, 2 okamžité spínače, 2 10k ohmové odpory, pripojovacie vodiče, dosku s plošnými spojmi, MIDI kábel a MIDI zariadenie alebo USB rozhranie. Len s týmito kúskami môžete začať, podľa mojich krokov, vytvoriť svoj vlastný MIDI kontrolér.

Prvé kroky

Arduino midi schéma

Pred začatím vám nechám obrázok, na ktorom uvidíte kolíky vášho MIDI kábla. Týmto spôsobom dokážeme správne identifikovať kolíky, a najmä to, kam každý z nich pripojiť. Všeobecne povedané, v tomto okamihu musíte urobiť iba pripojiť kolík 5 kábla k odporu 220 ohmov a odtiaľ k Arduino Transmit 1, kolík 4 k odporu 220 ohmov a odtiaľ k 5V zásuvke Arduina, zatiaľ čo kolík 2 musí byť pripojený k uzemňovaciemu pripojeniu vášho ovládača.

Po vykonaní tohto kroku nemáte na fotografii, ktorá sa nachádza tesne pod týmito riadkami, podrobný diagram, je čas pripojiť tlačidlá. Myšlienkou v tejto časti je dosiahnuť pomocou pinov digitalRead (schopných detekovať, keď sa zmení napätie, ktoré ich dosahuje), aby bolo možné pomocou nich dosiahnuť tranzistor pomocou stlačenia tlačidla. Na to musíme použiť iba tlačidlo, takže jeho ľavú stranu pripojíme na 5 V, pravú stranu na odpor 220 ohmov a odtiaľ na zem, pričom zasa pripojíme pravú stranu na kolík 6. . Druhé tlačidlo by bolo nainštalované rovnakým spôsobom, aj keď, ako vidíte na obrázku, namiesto kolíka 6 ho pripojíme k 7.

Softvér používaný pre domáci midi ovládač

Keď už máme hotový všetok hardvér, je čas pripojiť náš prístroj a vyskúšať. Pred tým musíme mať USB-MIDI rozhranie a MIDI kábel pripojiť dosku, ktorá odosiela údaje, k nášmu počítaču. Aby sme to dosiahli, rozhodli sme sa pre knižnicu MIDI v4.2 vytvorenú ľuďmi z Forty Seven Effects, ktorú sme si určite nainštalovali do nášho Arduina a zahrli do projektu.

V prípade počítača budeme potrebovať program, ktorý je schopný dohliadať na všetky MIDI dáta, ktoré k nemu prichádzajú z Arduina. K tomu máme rôzne možnosti ako MIDI Monitor (OS X), MIDI-OX (Windows) alebo Kmidimon (Linux)

Aby sme vykonali malý test, musíme len pripojiť Arduino k nášmu počítaču a vykonať nasledujúci kód:

#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
}

Ak všetko prebehlo dobre, môžete prejsť na test tlačidiel, v prípade, že vám tento test nepomohol, musíte sa ubezpečiť, že sú všetky pripojenia správne, obvod je úplne rovnaký ako v predchádzajúcom diagrame, obvod je pripojený k rozhraniu USB-MIDI pomocou kábla MIDI, káble portov MIDI sú správne pripojené, kábel MIDI je pripojený na vstup rozhrania USB-MIDI, doska Arduino je správne pripojená k elektrickej sieti a má dostatok energie ...

Testuje sa, či tlačidlá fungujú správne

Predtým, ako budeme pokračovať v napĺňaní nášho programu novými funkciami a kódom, v ktorých sa môžeme stratiť, stojí za to na chvíľu sa zastaviť a vyskúšajte, či tlačidlá fungujú správne. Pre nich musíme načítať nasledujúci kód:

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);
}
}

}

Tento kód treba iba skompilovať a vykonať, aby nám program s pripojeným káblom USB povedal, či bolo stlačené niektoré z tlačidiel.

Vytvárame náš domáci MIDI kontrolér

Po vykonaní týchto testov je čas na to zostaviť náš vlastný MIDI kontrolér, budete musieť zostaviť iba nasledujúci kód:

#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);
}
}
}

Ako detail vám povieme, že tentokrát nemôžete použiť príkaz Serial.println () s výstupom MIDI, ak chcete v počítači zobraziť nejaký typ správy, stačí zmeniť:

midiOut.sendControlChange(42,127,1);

od:

midiOut.sendControlChange(value, channel);

kde hodnota a kanál musia mať požadované hodnoty, ktoré chcete zobraziť.

Príklad činnosti:


4 komentáre, nechajte svoj

Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

      Alfréd dijo

    Arduino vám ponúka veľa možností, ako realizovať projekty svojpomocne https://www.juguetronica.com/arduino . Jednou z najlepších vecí je, že môžete začať bez toho, aby ste boli odborníkom, a pokračovať v učení, čím sa motivujete k samouku.

      Danel Roman dijo

    Zdravím.

    Snažím sa robiť tento fantastický návod ... ale #includes nie sú úplné ....

    Mohli by ste mi povedať, ktoré sú potrebné?

    Děkuju mnohokrát.

      uell dijo

    Dobrý deň.
    Chcel by som vyrobiť elektronický bicí modul nahradením tlačidiel vstupmi jacku, do ktorých dorazí piezoelektrický signál.
    Bolo by to možné urobiť?

      Eduardo Valenzuela dijo

    Prosím, ak by ste mohli uviesť obsah tohto kódu, mám záujem o tento projekt.