Maacht Äre eegene Midi Controller mat Arduino

MIDI

Wann Dir e Museksfrënn sidd oder direkt en Amateur oder professionelle Museker, sécher an Ärem Heem hutt Dir eng grouss Sammlung vu musikaleschen Instrumenter gesammelt. Fir all dës Mëschung perfekt ze maachen, ass et besser e MIDI Kontroller. Leider sinn dës Aarte vun Objeten normalerweis zimlech teuer, sou datt eng Persoun ouni ze vill Ressourcen schwéieren Zougang zu alles huet wat se ubidde kënnen.

Fir vill besser ze verstoen wat e Midi Controller ass, sot Dir datt d'Wuert Midi kënnt Museksinstrument Digital Interface, dat heescht eng Aart Controller, déi elektronesch musikalesch Geräter maache kënne matenee kommunizéieren. Am Fall wou Dir eng elektronesch Tastatur doheem hutt, zum Beispill, ass et méi wéi wahrscheinlech datt et eng Midi Interface huet. Ier Dir weiderfuere wëllt, trotz der Tatsaach datt et gewësse technesch Detailer sinn déi een dozou féiere kënnen anescht ze gleewen, muss et ganz kloer sinn datt MIDI ass net Audio.

Erstellt Ären eegene Midi Controller mat dësem einfachen Tutorial

Wa mir dëst kloer sinn, ass et sécher vill méi einfach fir Iech ze verstoen datt Midi just en einfachen ass Instruktiounsset fäeg ze ënnerstëtzen bis zu 16 onofhängege Kanäl, dat heescht datt et bis zu 16 verschidden Apparater kënnen onofhängeg matenee kommunizéieren. Dës Geräter musse mat engem 5-Pin DIN Kabel verbonne sinn, wat am Fong e Kabel mat fënnef Pins an engem Connector ass. Als Detail ass et relativ heefeg en USB ze benotzen amplaz e 5-Pin DIN, am Fall vun engem USB musse mir eng USB-MIDI Interface erstellen.

Ouni weider Ado verloossen ech Iech de Link wou Dir den Tutorial Schrëtt fir Schrëtt mat vill vun deskriptiv Biller wou mir all déi néideg Aktiounen ausféiere kënnen fir eisen eegenen Midi Controller ze kreéieren.

Verbonnen Artikel:
Wéi ännert de Pi Benotzernumm a Passwuert op eiser Raspberry Pi

Wéi Dir Ären eegene Midi Controller mat Arduino maacht

Midi Stecker

Et gi vill Leit, déi aus verschiddene Grënn, perséinlech a professionell, e benotze mussen voll personaliséierte Midi Controller Well vläicht an als Beispill, irgendwann an Ärem Liewen als Kënschtler, kaafen e preiswerte Midi Controller vläicht net Ären Erwaardungen oder Besoinen erfëllen, wärend wann et Zäit ass, eng professionell Versioun ze wielen a béide finanzielle Ressourcen exzessiv ka sinn. Dir braucht, wéi och déi grouss Unzuel u Funktiounen déi se ubidden.

Duerfir wëll ech Iech haut alles weisen wat Dir braucht fir datt Dir Ären eegene Midi Controller maacht, wat alles bezeechent wat Dir braucht fir säi Bau ze maachen an Iech d'Software ze bidden déi Dir installéiere musst. Als Detail, fir dëse Projet ass d'Benotzung vun engem Arduino Board essentiel, e Controller dee staark genuch ass fir dës Aufgab auszeféieren.

Verbonnen Artikel:
Wéi een e Roboter mécht: 3 verschidden Optiounen

Wat ass e Midi Controller?

Midi

Prinzipiell ass e Midi Controller verantwortlech, breed gesi fir verschidde musikalesch Geräter mateneen ze verbannen. Vill sinn d'Instrumenter déi eng Midi Interface integréieren, awer dëst muss ganz kloer sinn, well et vill Benotzer sinn déi dacks duerchernee sinn, Midi ass net eng Audio Datei, awer e ganz einfache Set vun Instruktiounen déi en Instrument ka kréien. Kontroll- oder Tounastellungen.

Bannen Midi et ginn zwou verschidden ZortenEngersäits hu mir deen Change Control genannt, wou et d'Controller Nummer huet an e Wäert tëscht 0 an 127. Dank deem kënne Messagen ausgestallt ginn, wou verschidde Parameter wéi Volumen oder Toun kënne geännert ginn. Verschidde Instrumenter déi MIDI akzeptéieren, sollten e Handbuch matbréngen fir z'erklären wéi eng Kanäl a Messagen als Standard gesat sinn a wéi een se ännert.

Op zweeter Plaz hu mir de Programm Change, eng Serie vu Messagen, déi am Tour vill méi einfach si wéi déi, déi de Change Control ausmaachen. Dës Aarte vu Messagen gi benotzt fir de Viraus oder de Patch vun engem Apparat z'änneren. Wéi am Change Control, zesumme mat Ärem Instrument, muss den Hiersteller eng Handbuch enthalen, déi uginn, wéi eng Presets duerch e bestëmmte Message geännert ginn.

Deeler néideg fir Ären eegenen hausgemaachte Midi Controller ze bauen

Midi Connector schematesch

Fir Ären eegene Midi Controller ze bauen braucht Dir eng Serie vu Stécker zousätzlech, wéi mir scho gesot hunn, zu engem Arduino Board. Ier Dir weidergitt, sot just datt vläicht, an Zukunft well Dir de Projet ausbaue wëllt, Dir méi Saache braucht, obwuel Dir zu dëser Zäit mat e puer Stécker vill hutt.

Mir brauchen e 5-Pol weiblechen DIN Kabel, 2 220 ohm Widderstänn, 2 Momentwiessel, 2 10k ohm Widderstänn, Verbindungsleitungen, e Circuit Board, MIDI Kabel an e MIDI Apparat oder USB Interface. Mat just dëse Stécker kënnt Dir ufänken, no menge Schrëtt, Ären eegene Midi Controller ze maachen.

Éischt Schrëtt

Arduino Midi schematesch

Ier ech ufänke loossen ech Iech e Bild wou Dir d'Pins vun Ärem Midi Kabel gesitt, op dës Manéier kënne mir d'Pins korrekt identifizéieren a besonnesch wou een all matenee verbënnt. Ganz gesinn ass alles wat Dir op dësem Punkt maache musst de Pin 5 vum Kabel mat engem 220 ohm Widerstand verbannen a vun do un den Arduino Transmit 1, Pin 4 op en 220 Ohm Widerstand a vun do un de 5V Socket vun Arduino wärend PIN 2 muss mat der Groundverbindung vun Ärem Controller verbonne sinn.

Wann dëse Schrëtt fäerdeg ass, hutt Dir keen detailléierten Diagramm op der Foto dee just ënner dëse Linne läit, et ass Zäit d'Knäppercher ze verbannen. D'Iddi an dëser Sektioun ass et ze erreechen, mam DigitalRead Pin (fäeg ze detektéieren wann d'Spannung déi et erreecht ännert) fir en Transistor ze benotzen fir ze erreechen, mat der Presse vun engem Knäppchen. Fir dëst musse mir nëmmen e Knäppche benotzen, fir datt mir déi lénks Säit op 5V verbannen, déi riets Säit op e Widderstand vun 220 Ohm a vun do aus op de Buedem, wärend mir och déi riets Säit op de Pin verbannen 6. Deen zweete Knäppchen wier op déiselwecht Manéier installéiert, obwuel, wéi Dir am Diagramm gesitt, amplaz vum Pin 6 mir en op 7 verbannen.

Software fir doheem Midi Controller ze benotzen

Wa mir mat der ganzer Hardware fäerdeg sinn, ass et Zäit eist Instrument ze verbannen an ze testen. Virdru musse mir e USB-Midi Interface an e Midi Kabel de Comité, deen Date schéckt, mat eisem Computer ze verbannen. Fir dëst z'erreechen, hu mir eis fir d'MIDI v4.2 Bibliothéik entscheet, déi vun de Kärele vu Forty Seven Effects erstallt goufen, déi mir mussen op eisem Arduino installéiert hunn an am Projet abegraff sinn.

Am Fall vum Computer brauche mir e Programm dee fäeg ass all d'MIDI Daten z'iwwerwaachen déi vun Arduino ukommen. Fir dëst hu mir verschidde Méiglechkeeten wéi MIDI Monitor (OS X), MIDI-OX (Windows) oder Kmidimon (Linux)

Fir e klengen Test ze maachen, musse mir den Arduino mat eisem Computer verbannen an de folgende Code ausféieren:

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

Wann alles gutt gelaf ass, kënnt Dir op de Knäppchen Test goen, am Fall wou dësen Test net fir Iech geschafft huet musst Dir sécher sinn datt all d'Verbindunge richteg sinn, de Circuit ass genau déiselwecht wéi dat viregt Diagramm, de Circuit ass mat engem USB-Midi Interface mat engem Midi Kabel verbonnen, d'Kabele vum MIDI Hafen si richteg ugeschloss, de MIDI Kabel ass mat dem Input vun der USB-MIDI Interface verbonnen, den Arduino Board ass korrekt mat dem elektresche Réseau ugeschloss an et huet genuch Kraaft ...

Testen datt d'Knäppercher richteg funktionnéieren

Ier Dir weider eise Programm mat neie Funktionalitéiten a Code fiddert, an deem mir eis kënne verléieren, ass et derwäert e Moment ze stoppen an test datt d'Knäppercher richteg funktionnéieren. Fir si musse mir de folgende Code lueden:

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

}

Dëse Code muss just kompiléiert an ausgefouert ginn, sou datt, mam USB Kabel ugeschloss, de Programm eis seet, ob ee vun de Knäpp gedréckt ass.

Mir kreéieren eisen hausgemaachte Midi Controller

Wann mir dës Tester ausgefouert hunn, ass et Zäit eisen eegene Midi Controller dofir zesummenzebauen, Dir musst just de folgende Code kompiléieren:

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

Als Detail sot Dir datt Dir de Kommando Serial.println () net mat enger Midi-Output dës Kéier benotze kënnt, wann Dir eng Aart Noriicht um Computer wëllt weisen, ännert just:

midiOut.sendControlChange(42,127,1);

por:

midiOut.sendControlChange(value, channel);

wou Wäert a Kanal mussen déi gewënschte Wäerter hunn déi Dir affichéiere wëllt.

Operatioun Beispill:


Den Inhalt vum Artikel hält sech un eis Prinzipie vun redaktionnell Ethik. Fir e Feeler ze mellen klickt hei.

4 Kommentaren, loosst ären

Gitt Äre Kommentar

Är Email Adress gëtt net publizéiert ginn. Néideg Felder sinn markéiert mat *

*

*

  1. Responsabel fir d'Daten: Miguel Ángel Gatón
  2. Zweck vun den Donnéeën: Kontroll SPAM, Kommentarmanagement.
  3. Legitimatioun: Är Zoustëmmung
  4. Kommunikatioun vun den Donnéeën: D'Donnéeë ginn net un Drëttubidder matgedeelt ausser duerch legal Verpflichtung.
  5. Datenspeicher: Datebank gehost vun Occentus Networks (EU)
  6. Rechter: Zu all Moment kënnt Dir Är Informatioun limitéieren, recuperéieren an läschen.

  1.   Alfred sot

    Arduino bitt Iech vill Méiglechkeeten fir alleng Projeten ze maachen https://www.juguetronica.com/arduino . Eng vun de beschte Saache ass datt Dir ufänkt ouni en Expert ze sinn a weider ze léieren, sou datt Dir Iech motivéiert selwer geléiert ze ginn.

  2.   Danel Roman sot

    Merci.

    Ech probéieren dëst fantastescht Tutorial ze maachen ... awer d '#includes sinn net komplett ....

    Kënnt Dir mir soen déi néideg sinn?

    Villmools Merci.

  3.   Uell sot

    Hallo.
    Ech géif gären en elektronescht Trommelmodul maachen andeems d'Knäppercher mat Jackingängen ersat ginn op déi e piezoelektrescht Signal kënnt.
    Wier et méiglech et ze maachen?

  4.   Eduardo Valenzuela sot

    W.e.g. wann Dir d'Inhalter vun dësem Code kéint ginn, sinn ech un dësem Projet interesséiert.