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.
Jak si vyrobit vlastní MIDI kontrolér s Arduino
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.
Co je MIDI kontrolér?
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
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
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:
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.
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.
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?
Prosím, pokud byste mohli uvést obsah tohoto kódu, mám zájem o tento projekt.