Maak u eie MIDI-beheerder met Arduino

MIDI

As u 'n musiekliefhebber of regstreeks 'n amateur- of professionele musikant is, het u sekerlik 'n groot versameling musiekinstrumente in u huis versamel. Om al hierdie mengsels perfek te laat meng, is dit die beste om 'n MIDI-beheerder. Ongelukkig is hierdie tipe voorwerpe gewoonlik redelik duur, en dit is dus moeilik vir iemand sonder te veel hulpbronne om toegang te verkry tot alles wat hulle kan bied.

Om baie beter te verstaan ​​wat 'n MIDI-beheerder is, vertel u dat die woord MIDI vandaan kom Musiekinstrument digitale koppelvlak, dit wil sê 'n soort beheerder wat elektroniese musiektoestelle in staat stel om met mekaar te kommunikeer. As u byvoorbeeld 'n elektroniese sleutelbord tuis het, is dit waarskynlik dat dit 'n MIDI-koppelvlak het. Voordat u verder gaan, ten spyte van die feit dat daar sekere tegniese besonderhede is wat u kan laat anders glo, moet dit baie duidelik wees MIDI is nie klank nie.

Skep u eie MIDI-beheerder met hierdie eenvoudige handleiding

Sodra ons hieroor duidelik is, sal dit vir u baie makliker wees om te verstaan ​​dat MIDI net eenvoudig is instruksiestel wat tot 16 onafhanklike kanale kan ondersteun, wat beteken dat daar tot 16 verskillende toestelle onafhanklik met mekaar kan kommunikeer. Hierdie toestelle moet gekoppel word deur middel van 'n 5-pen DIN-kabel, wat basies 'n kabel met vyf penne binne 'n aansluiting is. As detail is dit baie algemeen om 'n USB in plaas van 'n 5-pins DIN te gebruik. In die geval van 'n USB moet ons 'n USB-MIDI-koppelvlak skep.

Sonder nadruk laat ek u met die skakel waar u die handleiding stap vir stap met baie beskrywende beelde waar ons al die nodige aksies kan uitvoer om ons eie MIDI-beheerder te skep.

Verwante artikel:
Hoe u die Pi-gebruikersnaam en wagwoord op ons Raspberry Pi kan verander

Hoe om u eie MIDI-beheerder met Arduino te maak

midi-aansluiting

Baie is mense wat, om verskillende redes, persoonlik en professioneel, a moet gebruik volledig aangepaste MIDI-beheerder Want as 'n voorbeeld, op 'n stadium in u lewe as kunstenaar, kan die koop van 'n goedkoop MIDI-beheerder miskien nie aan u verwagtinge of behoeftes voldoen nie, terwyl die keuse van 'n professionele weergawe op die oomblik moontlik in beide finansiële hulpbronne buitensporig is. behoefte, asook die groot aantal funksies wat hulle kan bied.

As gevolg hiervan wil ek u vandag alles wys wat u benodig, sodat u u eie MIDI-beheerder kan maak, wat alles aandui wat u benodig vir die konstruksie daarvan en u die sagteware bied wat u sal moet installeer. As detail is die gebruik van 'n Arduino-bord noodsaaklik vir hierdie projek, 'n beheerder wat kragtig genoeg is om hierdie taak uit te voer.

Verwante artikel:
Hoe om 'n robot te maak: 3 verskillende opsies

Wat is 'n MIDI-beheerder?

midi

Eintlik is 'n MIDI-beheerder in die breë verantwoordelik om verskillende musiektoestelle aan mekaar te koppel. Baie is die instrumente wat 'n MIDI-koppelvlak bevat, alhoewel dit baie duidelik moet wees, aangesien daar baie gebruikers is wat dikwels verward is, is MIDI nie 'n klanklêer nie, maar 'n baie eenvoudige stel instruksies wat 'n instrument kan ontvang. of klankinstellings.

Binne MIDI daar is twee verskillende soorteEnersyds het ons die naam Change Control, waar dit die beheernommer en 'n waarde tussen 0 en 127 het. Hierdeur kan boodskappe uitgereik word waar verskillende parameters soos volume of toon verander kan word. Verskillende instrumente wat MIDI aanvaar, moet 'n handleiding saambring wat verduidelik watter kanale en boodskappe standaard ingestel is en hoe u dit kan verander.

In die tweede plek het ons die Program Change, 'n reeks boodskappe wat op hul beurt baie eenvoudiger is as dié waaruit die Change Control bestaan. Hierdie tipe boodskappe word gebruik om die voorinstelling of pleister van 'n toestel te verander. Soos in Change Control, moet die vervaardiger saam met u instrument 'n handleiding bevat wat aandui watter presets deur 'n bepaalde boodskap verander word.

Onderdele wat u benodig om u eie tuisgemaakte MIDI-beheerder te bou

Skema vir Midi-aansluiting

Om u eie MIDI-beheerder te kan bou, benodig u 'n reeks stukke benewens 'n Arduino-bord, soos ons reeds genoem het. Voordat u voortgaan, moet u net vertel dat u miskien meer dinge nodig het in die toekoms omdat u die projek wil uitbrei, hoewel u op die oomblik met 'n paar stukke genoeg sal hê.

Ons benodig 'n 5-polige vroulike DIN-kabel, 2 220 ohm-weerstande, 2 kortstondige skakelaars, 2 10 ohm-weerstande, aansluitdrade, 'n stroombaanbord, MIDI-kabel en 'n MIDI-toestel of USB-koppelvlak. Met net hierdie stukke kan u, volgens my stappe, begin om u eie MIDI-beheerder te maak.

Eerste stappe

Arduino midi-skema

Voordat ek begin, laat ek vir u 'n foto waarin u die penne van u MIDI-kabel kan sien. Op hierdie manier kan ons die penne korrek identifiseer en veral waar elkeen gekoppel moet word. In die algemeen is alles wat u op hierdie stadium hoef te doen, om pen 5 van die kabel aan te sluit op 'n 220 ohm-weerstand en van daar af aan die Arduino Transmit 1, pen 4 aan 'n 220 ohm-weerstand en daarvandaan na die 5V-aansluiting van Arduino terwyl dit pen is. 2 moet gekoppel wees aan die grondverbinding van u beheerder.

Sodra hierdie stap gedoen is, het u nie 'n gedetailleerde diagram op die foto wat net onder hierdie lyne is nie; dit is tyd om die knoppies aan te sluit. Die idee in hierdie afdeling is om, met behulp van die digitalRead-pen (wat kan opspoor wanneer die spanning wat daarby kom, verander) om 'n transistor te kan gebruik om dit te bereik, met die druk van 'n knoppie. Hiervoor hoef ons net 'n knoppie te gebruik sodat ons dit aan die linkerkant aan 5V koppel, die regterkant op 'n weerstand van 220 ohm en van daar af na die grond toe terwyl ons weer die regte kant aan pen 6 koppel Die tweede knoppie sal op dieselfde manier geïnstalleer word, alhoewel, soos u in die diagram kan sien, koppel ons dit in plaas van pen 6 aan 7.

Sagteware om te gebruik vir tuis-midi-beheerder

Sodra ons klaar is met al die hardeware, is dit tyd om ons instrument aan te sluit en te toets. Voor dit moet ons 'n USB-MIDI-koppelvlak en 'n MIDI-kabel om die bord, wat data stuur, met ons rekenaar te verbind. Om dit te bereik, het ons gekies vir die MIDI v4.2-biblioteek wat geskep is deur die ouens van Forty Seven Effects wat ons op ons Arduino moes installeer en by die projek ingesluit het.

In die geval van 'n rekenaar het ons 'n program nodig wat toesig hou oor al die MIDI-data wat vanaf Arduino bereik word. Hiervoor het ons verskillende moontlikhede, soos MIDI Monitor (OS X), MIDI-OX (Windows) of Kmidimon (Linux)

Om 'n klein toets te doen, moet ons die Arduino op ons rekenaar koppel en die volgende kode uitvoer:

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

As alles goed afgeloop het, kan u na die knopietoets gaan. As hierdie toets nie vir u werk nie, moet u seker maak dat al die verbindings korrek is, die stroombaan is presies dieselfde as die vorige diagram, die stroombaan is verbind met 'n USB-MIDI-koppelvlak met 'n MIDI-kabel, die kabels van die MIDI-poort is korrek gekoppel, die MIDI-kabel is gekoppel aan die ingang van die USB-MIDI-koppelvlak, die Arduino-kaart is korrek gekoppel aan die elektriese netwerk en dit het genoeg krag ...

Om te toets dat die knoppies korrek werk

Voordat ons voortgaan om ons program met nuwe funksies en kode waarin ons kan verdwaal, te voer, is dit die moeite werd om vir 'n oomblik te stop en toets dat die knoppies behoorlik werk. Vir hulle moet ons die volgende kode laai:

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

}

Hierdie kode moet net saamgestel en uitgevoer word sodat die program ons, as die USB-kabel gekoppel is, vertel of daar op een van die knoppies gedruk is.

Ons skep ons tuisgemaakte MIDI-beheerder

Nadat ons hierdie toetse uitgevoer het, is dit tyd om ons eie MIDI-beheerder daarvoor saam te stel, u hoef slegs die volgende kode saam te stel:

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

Vertel u as detail dat u nie die Serial.println () -opdrag met 'n MIDI-uitvoer hierdie keer kan gebruik nie, as u 'n boodskap op die rekenaar wil wysig, verander dan net:

midiOut.sendControlChange(42,127,1);

deur:

midiOut.sendControlChange(value, channel);

waar waarde en kanaal die gewenste waardes moet hê wat u wil vertoon.

Bedryfsvoorbeeld:


Die inhoud van die artikel voldoen aan ons beginsels van redaksionele etiek. Klik op om 'n fout te rapporteer hier.

4 kommentaar, los joune

Laat u kommentaar

Jou e-posadres sal nie gepubliseer word nie.

*

*

  1. Verantwoordelik vir die data: Miguel Ángel Gatón
  2. Doel van die data: Beheer SPAM, bestuur van kommentaar.
  3. Wettiging: U toestemming
  4. Kommunikasie van die data: Die data sal nie aan derde partye oorgedra word nie, behalwe deur wettige verpligtinge.
  5. Datastoor: databasis aangebied deur Occentus Networks (EU)
  6. Regte: U kan u inligting te alle tye beperk, herstel en verwyder.

  1.   Alfred dijo

    Arduino bied u baie moontlikhede om self projekte aan te pak https://www.juguetronica.com/arduino . Een van die beste dinge is dat u kan begin sonder om 'n kundige te wees en verder te leer en sodoende u self te motiveer om selfonderrig te wees.

  2.   Danel Roman dijo

    Groete.

    Ek probeer hierdie fantastiese handleiding uitvoer ... maar die #includes is nie volledig nie ...

    Kan u my sê watter een nodig is?

    Baie dankie.

  3.   uell dijo

    Hello.
    Ek wil graag 'n elektroniese trommelmodule maak deur die knoppies te vervang deur jack-insette waarna 'n piëzo-elektriese sein sal kom.
    Sou dit moontlik wees om dit te doen?

  4.   Eduardo Valenzuela dijo

    As u die kode vir hierdie kode insluit, stel ek belang in hierdie projek.

Engelse toetsToets KatalaansSpaanse vasvra