Kā mūziķis, kurš ir sakrājis mūzikas instrumentu un trokšņu kastīšu kolekciju, pazemīgais Arduino ir ideāls instruments, lai izveidotu pielāgotu MIDI kontrolieri. Lai gan Raspberry Pi, iespējams, ir ieguvis kroni lietu interneta (IoT) projektiem, vienkāršam Arduino Uno (kādi ir dažādi Arduino veidi?) Šim projektam ir vairāk nekā pietiekami daudz spēka.
Vai pirmo reizi izmantojat Arduino? Neuztraucieties, mums ir pilnīga Arduino iesācēju ceļvedis jāizlasa, pirms ķeraties pie šī projekta.
Kas ir MIDI?
MIDI apzīmē mūzikas instrumentu digitālo saskarni. Tajā ir izklāstīts standarta veids, kā mūzikas ierīces savstarpēji sazināties. Ja jums pieder elektroniskā tastatūra, jums, iespējams, ir MIDI saskarne. Lai gan MIDI ieviešanā ir dažas tehniskas detaļas, ir svarīgi atcerēties, ka MIDI nav audio! MIDI dati ir vienkāršs instrukciju kopums (vienu instrukciju sauc par “ziņojumu”), ko cita ierīce var ieviest, lai radītu dažādas skaņas vai vadības parametrus.
MIDI atbalsta 16 kanālus. Tas nozīmē, ka katrs kabelis var atbalstīt 16 dažādas ierīces, kas savstarpēji sazinās neatkarīgi. Ierīces tiek savienotas, izmantojot 5 kontaktu DIN kabeli. DIN apzīmē “Vācijas standartizācijas institūtu” un ir vienkārši kabelis ar piecām tapām savienotāja iekšpusē. 5 kontaktu DIN vietā bieži tiek izmantots USB, vai arī var izmantot USB-MIDI saskarni.
MIDI-kabelis, vīrietis
Kontroles maiņa un programmas maiņa
Ir divi galvenie MIDI ziņojumu veidi: vadības maiņa un programmas maiņa.
Vadības maiņas (CC) ziņojumi satur kontroliera numuru un vērtību no 0 līdz 127. CC ziņojumus bieži izmanto, lai mainītu iestatījumus, piemēram, skaļumu vai piķi. Ierīcēm, kas pieņem MIDI, ir jābūt rokasgrāmatai, kurā paskaidrots, kādi kanāli un ziņojumi ir iestatīti pēc noklusējuma un kā tos mainīt (pazīstams kā MIDI kartēšana).
Programmu maiņas (PC) ziņojumi ir vienkāršāki par CC ziņojumiem. Datora ziņojumi sastāv no viena numura un tiek izmantoti, lai mainītu ierīces sākotnējo iestatījumu vai ielāpu. Datora ziņojumus dažreiz sauc par “Patch Change”. Līdzīgi kā CC ziņojumiem, ražotājiem ir jāiesniedz dokuments, kurā izklāstīts, kādi iestatījumi tiek mainīti ar konkrētu ziņojumu.
Kas jums būs nepieciešams
- Arduino
- 5 kontaktu DIN ligzda
- 2 x 220 omi rezistori
- 2 x 10k omu rezistori
- 2 x īslaicīgi slēdži
- Savienojami vadi
- Maizes dēlis
- MIDI kabelis
- MIDI ierīce vai USB interfeiss
Veidot plānu
Šis projekts būs pavisam vienkāršs. Jūs, protams, varat pievienot vairāk pogu vai aparatūras atbilstoši savām vajadzībām. Gandrīz jebkurš Arduino būs piemērots - šim piemēram ir vajadzīgas tikai trīs tapas. Šis projekts sastāv no divām pogām, lai kontrolētu programmu, MIDI portu datu nosūtīšanai un ierīces ziņojumu saņemšanai. Šī shēma šeit ir uzbūvēta uz maizes dēļa, tomēr ir iespējams to pārvietot uz projekta kastīti un lodētiem savienotājiem, lai iegūtu stabilu risinājumu.
Ķēdes montāža
Arduino-Midi-Controller-Circuit
MIDI savienojums
MIDI-Pinout
Pievienojiet MIDI ligzdu šādi:
- MIDI pin 5 uz Arduino Transmit (TX) 1, izmantojot 220 omu rezistoru
- MIDI pin 4 līdz Arduino +5V caur 220 omu rezistoru
- MIDI tapa 2 līdz Arduino zemei
Pogas savienojums
Pogas darbojas, mainot pretestību, ko Arduino 'redz'. Arduino tapa iet caur slēdzi taisni uz zemes ( ZEMS ), izmantojot 10k omu rezistoru (“nolaižamais” rezistors, nodrošinot vērtību zemu). Nospiežot pogu, ķēdes redzamā vērtība bez rezistora mainās uz +5v ( AUGSTS ). Arduino var noteikt šīs izmaiņas, izmantojot digitalRead (pin) komandu. Pievienojiet pogas Arduino digitālās ieejas/izejas (I/O) 6. un 7. tapai. Savienojiet abas pogas:
- Pogas kreisā puse līdz +5V
- Pogas labā puse uz Arduino Ground, izmantojot 10k omu rezistoru
- Pogas labā puse līdz Arduino tapai (6 vai 7)
MIDI pārbaude
Tagad, kad visa aparatūra ir pabeigta, ir pienācis laiks to pārbaudīt. Jums būs nepieciešams USB-MIDI interfeiss (daudzas audio saskarnes to var izdarīt) un MIDI kabelis. Maizes dēļā pieslēgtais MIDI ports sūta datus, tāpēc tā ir izeja. Jūsu dators saņem datus, tāpēc tā ir ievade. Šis projekts izmanto lielisko Arduino MIDI bibliotēka v4.2 ar četrdesmit septiņiem efektiem. Kad esat instalējis bibliotēku, varat to iekļaut savā kodā, dodoties uz Skice> Iekļaut bibliotēku> MIDI .
Jums būs nepieciešama arī programma, lai uzraudzītu ienākošos MIDI datus:
- MIDI monitors operētājsistēmai OS X
- MIDI-OX operētājsistēmai Windows
- KMidimons priekš Linux
Pievienojiet Arduino datoram un augšupielādējiet šādu testa kodu (neaizmirstiet no izvēlnes izvēlēties pareizo dēli un portu Rīki> Padome un Rīki> Ports izvēlnes).
#include
#include
#include
#include
#include
MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // create a MIDI object called midiOut
void setup() {
Serial.begin(31250); // setup serial for MIDI
}
void loop() {
midiOut.sendControlChange(56,127,1); // send a MIDI CC -- 56 = note, 127 = velocity, 1 = channel
delay(1000); // wait 1 second
midiOut.sendProgramChange(12,1); // send a MIDI PC -- 12 = value, 1 = channel
delay(1000); // wait 1 second
}
Šis kods nosūtīs CC ziņojumu, pagaidiet 1 sekundi, nosūtiet datora ziņojumu un pēc tam pagaidiet 1 sekundi bezgalīgi. Ja viss darbojas pareizi, MIDI monitorā vajadzētu redzēt ziņojumu.
Ja nekas nenotiek, nekrītiet panikā! Mēģiniet novērst problēmu:
- Pārliecinieties, vai visi savienojumi ir pareizi
- Pārbaudiet, vai MIDI ports ir pareizi pievienots vadam - ārējām malām jābūt 2 rezerves tapām
- Vēlreiz pārbaudiet, vai ķēde ir pareiza
- Pārbaudiet, vai ķēde ir savienota ar USB-MIDI saskarni, izmantojot MIDI kabeli
- Pārbaudiet, vai MIDI kabelis ir pievienots ievadi USB-MIDI saskarnē
- Pārliecinieties, vai Arduino ir spēks
- Instalējiet pareizo USB-MIDI saskarnes draiveri
Ja Jums ir joprojām ja rodas problēmas, iespējams, ir vērts pārbaudīt savu maizes dēli. Lēti dēļi dažreiz var būt ļoti pretrunīgi un nekvalitatīvi-tas notika ar mani, strādājot pie šī projekta.
Pogas pārbaude
Tagad ir pienācis laiks pārbaudīt, vai pogas darbojas pareizi. Augšupielādējiet šādu testa kodu. Lai pārbaudītu šo daļu, MIDI nav jāpievieno.
const int buttonOne = 6; // assign button pin to variable
const int buttonTwo = 7; // assign button pin to variable
void setup() {
Serial.begin(9600); // setup serial for text
pinMode(buttonOne,INPUT); // setup button as input
pinMode(buttonTwo,INPUT); // setup button as input
}
void loop() {
if(digitalRead(buttonOne) == HIGH) { // check button state
delay(10); // software de-bounce
if(digitalRead(buttonOne) == HIGH) { // check button state again
Serial.println('Button One Works!'); // log result
delay(250);
}
}
if(digitalRead(buttonTwo) == HIGH) { // check button state
delay(10); // software de-bounce
if(digitalRead(buttonTwo) == HIGH) { // check button state again
Serial.println('Button Two Works!'); // log result
delay(250);
}
}
}
Palaidiet šo kodu (bet turiet pievienotu USB kabeli) un atveriet seriālo monitoru ( Augšā pa labi> Sērijas monitors ). Nospiežot pogu, vajadzētu redzēt 'Button One Works!' vai 'Poga divi darbojas!' atkarībā no nospiestās pogas.
No šī piemēra ir jāatceras viena svarīga piezīme-programmatūras atkāpšanās. Šī ir vienkārša 10 milisekundes (ms) kavēšanās starp pogas pārbaudi un pogas atkārtotu pārbaudi. Tas palielina pogu nospiešanas precizitāti un palīdz novērst troksni, kas izraisa Arduino. Jums tas nav jādara, lai gan tas ir ieteicams.
Kontroliera izveide
Tagad, kad viss ir savienots ar vadu un darbojas, ir pienācis laiks savākt pilnu kontrolieri.
Šajā piemērā katrai nospiestajai pogai tiks nosūtīts atšķirīgs CC ziņojums. Es to izmantoju, lai kontrolētu Ableton Live 9.6 operētājsistēmā OS X. Kods ir līdzīgs abiem iepriekš minētajiem pārbaudes paraugiem.
#include
#include
#include
#include
#include
const int buttonOne = 6; // assign button pin to variable
const int buttonTwo = 7; // assign button pin to variable
MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // create a MIDI object called midiOut
void setup() {
pinMode(buttonOne,INPUT); // setup button as input
pinMode(buttonTwo,INPUT); // setup button as input
Serial.begin(31250); // setup MIDI output
}
void loop() {
if(digitalRead(buttonOne) == HIGH) { // check button state
delay(10); // software de-bounce
if(digitalRead(buttonOne) == HIGH) { // check button state again
midiOut.sendControlChange(56,127,1); // send a MIDI CC -- 56 = note, 127 = velocity, 1 = channel
delay(250);
}
}
if(digitalRead(buttonTwo) == HIGH) { // check button state
delay(10); // software de-bounce
if(digitalRead(buttonTwo) == HIGH) { // check button state again
midiOut.sendControlChange(42,127,1); // send a MIDI CC -- 42 = note, 127 = velocity, 1 = channel
delay(250);
}
}
}
Piezīme - jūs nevarēsit izmantot Serial.println () ar MIDI izeju.
Ja vēlaties nosūtīt datora ziņojumu, nevis kopiju, vienkārši nomainiet:
midiOut.sendControlChange(42,127,1);
Ar:
midiOut.sendProgramChange(value, channel);
Darbībā
Tālāk ir parādīts kā kontrolieris Ableton Live ( Labākā DJ programmatūra katram budžetam ). Augšējā labajā stūrī ir redzami audio skaitītāji, bet augšējā vidū - ienākošie midi ziņojumi (izmantojot MIDI monitors operētājsistēmā OS X).
kā rakstīt slīprakstu facebook messenger
Vai esat izveidojis MIDI kontrolieri?
Pielāgotam MIDI kontrolierim ir daudz praktisku pielietojumu. Jūs varētu izveidot plašu ar kājām vadāmu vienību vai gludu studijas kontrolieri. Un, ja jūs interesē tāda iegāde, šeit ir labākie USB MIDI kontrolieri, kurus varat iegādāties.
Attēla kredīts: Kīts Džentrijs, izmantojot vietni Shutterstock.com
Mēs ceram, ka jums patīk mūsu ieteiktie un apspriestie priekšmeti! MUO ir saistītas un sponsorētas partnerattiecības, tāpēc mēs saņemam daļu no ieņēmumiem no dažiem jūsu pirkumiem. Tas neietekmēs jūsu maksājamo cenu un palīdzēs mums piedāvāt labākos produktu ieteikumus.
Kopīgot Kopīgot Čivināt E -pasts Vai ir vērts jaunināt uz Windows 11?Windows ir pārveidots. Bet vai ar to pietiek, lai pārliecinātu jūs pāriet no Windows 10 uz Windows 11?
Lasīt Tālāk Saistītās tēmas- DIY
- DJ programmatūra
- Arduino
- Elektronika
- PUSDIENA
Džo ir absolvējis datorzinātnes Linkolnas universitātē, Lielbritānijā. Viņš ir profesionāls programmatūras izstrādātājs, un, kad viņš nelido ar droniem un neraksta mūziku, viņu bieži var atrast, fotografējot vai veidojot video.
Vairāk no Džo KobērnaAbonējiet mūsu biļetenu
Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!
Noklikšķiniet šeit, lai abonētu