Vytvořte si svůj vlastní MIDI kontrolér s Arduino

MIDI

Pokud jste milovníkem hudby nebo přímo amatérským nebo profesionálním hudebníkem, určitě jste ve svém domě nashromáždili velkou sbírku hudebních nástrojů. Chcete-li všechny tyto směsi dokonale, je nejlepší získat MIDI ovladač. Bohužel jsou tyto typy objektů obvykle poměrně drahé, takže člověk bez příliš mnoha zdrojů má obtížný přístup ke všemu, co může nabídnout.

Abyste mnohem lépe porozuměli tomu, co je MIDI kontrolér, řekněte vám, že slovo MIDI pochází z Digitální rozhraní hudebních nástrojů, tj. jakýsi ovladač, díky němuž mohou elektronická hudební zařízení navzájem komunikovat. Pokud máte doma například elektronickou klávesnici, je více než pravděpodobné, že má MIDI rozhraní. Před pokračováním v postupu, navzdory skutečnosti, že existují určité technické podrobnosti, které mohou vést k domněnce opaku, musí být jasné MIDI není zvuk.

Vytvořte si svůj vlastní MIDI kontrolér pomocí tohoto jednoduchého tutoriálu

Jakmile v tom budeme mít jasno, jistě bude pro vás mnohem snazší pochopit, že MIDI je jen jednoduchý instrukční sada schopná podporovat až 16 nezávislých kanálů, což znamená, že může existovat až 16 různých zařízení, která navzájem komunikují nezávisle. Tato zařízení musí být připojena pomocí 5kolíkového kabelu DIN, což je v zásadě kabel s pěti kolíky uvnitř konektoru. Jako detail je zcela běžné používat USB místo 5kolíkové DIN, v případě použití USB musíme vytvořit rozhraní USB-MIDI.

Bez dalších okolků vám nechám odkaz, kde najdete konzultace krok za krokem se spoustou popisné obrázky kde můžeme provádět všechny nezbytné akce k vytvoření vlastního MIDI kontroleru.

Související článek:
Jak změnit uživatelské jméno a heslo pro Pi na našem Raspberry Pi

Jak si vyrobit vlastní MIDI kontrolér s Arduino

midi konektor

Mnoho lidí je, kteří potřebují z různých osobních i profesionálních důvodů používat a plně vlastní MIDI kontrolér Protože možná a například v určitém okamžiku vašeho uměleckého života nemusí nákup levného ovladače MIDI splňovat vaše očekávání nebo potřeby, zatímco až přijde čas, může být volba profesionální verze v obou finančních zdrojích nadměrná. potřeby, stejně jako velké množství funkcí, které mohou nabídnout.

Z tohoto důvodu vám dnes chci ukázat vše, co potřebujete, abyste si mohli vytvořit svůj vlastní MIDI kontroler označující vše potřebné pro jeho konstrukci a nabídnout vám software, který budete muset nainstalovat. Jako detail je pro tento projekt zásadní použití desky Arduino, což je ovladač, který je dostatečně výkonný k provedení tohoto úkolu.

Jak vyrobit robota
Související článek:
Jak vyrobit robota: 3 různé možnosti

Co je MIDI kontrolér?

midi

V zásadě je MIDI kontrolér obecně odpovědný za vzájemné propojení různých hudebních zařízení. Existuje mnoho nástrojů, které obsahují rozhraní MIDI, i když to musí být zcela jasné, protože existuje mnoho uživatelů, kteří jsou často zmatení, MIDI není zvukový soubor, ale velmi jednoduchá sada pokynů, které může nástroj přijmout, aby mohl odlišně ovládat nebo nastavení zvuku.

Uvnitř MIDI existují dva různé typyNa jedné straně máme ten, který se jmenuje Change Control, kde má číslo kontroleru a hodnotu mezi 0 a 127. Díky tomu mohou být vydávány zprávy, kde lze měnit různé parametry, jako je hlasitost nebo tón. Různé nástroje, které přijímají MIDI, by si měly přinést příručku s vysvětlením, které kanály a zprávy jsou nastaveny ve výchozím nastavení a jak je změnit.

Na druhém místě máme Program Change, řadu zpráv, které jsou zase mnohem jednodušší než ty, které tvoří Control Change. Tyto typy zpráv se používají ke změně předvolby nebo opravy zařízení. Stejně jako v nástroji Change Control musí výrobce spolu s vaším nástrojem zahrnout manuál označující, které předvolby jsou změněny konkrétní zprávou.

Díly potřebné k sestavení vlastního domácího MIDI ovladače

Schéma midi konektoru

Abyste si mohli postavit svůj vlastní MIDI kontrolér, budete potřebovat řadu desek navíc, jak jsme již zmínili, na desce Arduino. Než budete pokračovat, řekněte vám, že možná v budoucnu, protože chcete projekt rozšířit, potřebujete více věcí, i když v této době s několika kousky budete mít spoustu.

Budeme potřebovat 5pólový kabel DIN, 2 220 ohmové odpory, 2 okamžité spínače, 2 10 kO odpory, propojovací vodiče, desku plošných spojů, MIDI kabel a MIDI zařízení nebo USB rozhraní. Právě s těmito kousky můžete začít, podle mých kroků, vytvořit svůj vlastní MIDI kontrolér.

První kroky

Arduino midi schéma

Před začátkem vám nechám obrázek, kde můžete vidět piny vašeho MIDI kabelu, tímto způsobem můžeme správně identifikovat piny a zejména to, kde je každý připojit. Obecně řečeno, vše, co musíte v tomto okamžiku udělat, je připojit kolík 5 kabelu k odporu 220 ohmů a odtud k Arduino Transmit 1, kolík 4 k odporu 220 ohmů a odtud k 5V zásuvce Arduino, zatímco kolík 2 musí být připojen k uzemnění vašeho ovladače.

Jakmile je tento krok proveden, nemáte na fotografii, která se nachází těsně pod těmito řádky, podrobné schéma, je čas připojit tlačítka. Myšlenkou v této části je dosáhnout pomocí pinů digitalRead (schopných detekovat, kdy se mění napětí, které jej dosáhne), aby bylo možné použít k dosažení tranzistoru pouhým stisknutím tlačítka. K tomu musíme použít pouze tlačítko, takže jeho levou stranu připojíme na 5 V, pravou stranu na odpor 220 ohmů a odtud na zem, zatímco zase připojíme pravou stranu na kolík 6. Druhé tlačítko by bylo nainstalováno stejným způsobem, i když, jak vidíte na obrázku, namísto kolíku 6 jej připojíme k 7.

Software pro domácí midi ovladač

Jakmile dokončíme veškerý hardware, je čas připojit náš přístroj a otestovat. Před tím musíme mít USB-MIDI rozhraní a MIDI kabel připojit desku, která odesílá data, k našemu počítači. Abychom toho dosáhli, rozhodli jsme se pro knihovnu MIDI v4.2 vytvořenou kluky z Forty Seven Effects, kterou jsme museli mít nainstalovanou na našem Arduinu a zahrnutou do projektu.

V případě počítače budeme potřebovat program, který je schopen dohlížet na všechna MIDI data, která k němu přicházejí z Arduina. K tomu máme různé možnosti, jako je MIDI Monitor (OS X), MIDI-OX (Windows) nebo Kmidimon (Linux)

Chcete-li provést malý test, stačí připojit Arduino k našemu počítači a spustit následující 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
}

Pokud vše proběhlo dobře, můžete přejít na test tlačítek, pokud vám tento test nepracoval, musíte se ujistit, že jsou všechna připojení správná, obvod je přesně stejný jako v předchozím schématu, obvod je připojen k rozhraní USB-MIDI pomocí kabelu MIDI, kabely MIDI portu jsou správně připojeny, kabel MIDI je připojen ke vstupu rozhraní USB-MIDI, deska Arduino je správně připojena k elektrické síti a má dostatek energie ...

Testování, zda tlačítka fungují správně

Před pokračováním v krmení našeho programu novými funkcemi a kódem, ve kterém se můžeme ztratit, stojí za to na chvíli zastavit a vyzkoušejte, zda tlačítka fungují správně. Pro ně musíme načíst následující 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 je třeba pouze zkompilovat a provést, aby nám program s připojeným kabelem USB řekl, zda bylo stisknuto některé z tlačítek.

Vytvoříme náš domácí MIDI kontrolér

Jakmile tyto testy provedeme, je na čase sestavit náš vlastní MIDI kontrolér, budete muset pouze zkompilovat následující 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);
}
}
}

Jako detail vám řeknu, že tentokrát nemůžete použít příkaz Serial.println () s výstupem MIDI, pokud chcete v počítači zobrazit nějaký typ zprávy, stačí změnit:

midiOut.sendControlChange(42,127,1);

od:

midiOut.sendControlChange(value, channel);

kde hodnota a kanál musí mít požadované hodnoty, které chcete zobrazit.

Příklad provozu:


4 komentářů, nechte svůj

Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   Alfréd řekl

    Arduino vám nabízí mnoho možností, jak provádět projekty sami https://www.juguetronica.com/arduino . Jedna z nejlepších věcí je, že můžete začít, aniž byste byli odborníkem, a pokračovat v učení, čímž se motivujete k tomu, abyste se učili samy.

  2.   Danel Roman řekl

    Zdravím.

    Pokouším se provést tento fantastický tutoriál ... ale #includes nejsou kompletní ....

    Můžete mi říct, které z nich jsou nutné?

    Děkuju mnohokrát.

  3.   uell řekl

    Dobrý den.
    Rád bych vyrobil elektronický bicí modul nahrazením tlačítek vstupy jacku, ke kterým dorazí piezoelektrický signál.
    Bylo by to možné udělat?

  4.   Eduardo Valenzuela řekl

    Prosím, pokud byste mohli uvést obsah tohoto kódu, mám zájem o tento projekt.