Samee koontaroole MIDI kuu gaar ah oo leh Arduino

MIDI

Haddii aad tahay qof jecel muusikada ama si toos ah hiwaayad ama muusikiiste xirfad leh, hubaal gurigaaga waxaad ku uruurisay qalab badan oo muusiko ah. Si loo sameeyo dhammaan isku-darkaan si dhammaystiran, waxaa fiican inaad hesho a Maamulaha MIDI. Nasiib darrose, walxaha noocan ahi badanaa waa qaali sidaa darteed qofka aan haysan agab badan wuxuu si dhib leh ugu helayaa wax kasta oo uu bixin karo.

Si aad si fiican u fahamto waxa uu yahay xakamaynta MIDI, wuxuu kuu sheegayaa in erayga MIDI uu ka yimid Isdhexgalka Qalabka Qalabka Muusikada, taasi waa, nooc ka mid ah xakamaynta ka dhigaysa aaladaha muusigga elektarooniga ah inay awood u yeeshaan inay wada xiriiraan. Haddii aad ku haysato kumbuyuutar elektaroonig ah guriga, tusaale ahaan, waxay u badan tahay inay leedahay interface MIDI. Kahor intaadan sii wadin horumarka, in kasta oo ay xaqiiqda tahay inay jiraan tafaasiil farsamo qaarkood oo u horseedi kara qofka inuu rumaysto si kale, waa inuu si cad u muuqdaa taas MIDI ma ahan mid maqal ah.

Ku abuuri koontaroole MIDI kuu gaar ah casharkaan fudud

Mar alla markaan si cad uga ogaanno arrintan, waxaa hubaal ah inay aad kuugu fududaan doonto inaad fahamto in MIDI ay tahay mid fudud tilmaamaha awood u leh inay taageeraan illaa 16 kanaal oo madaxbannaan, taas oo macnaheedu yahay inay jiri karaan ilaa 16 aaladood oo kala duwan oo si madax-bannaan midba midka kale ugula xiriiraya. Qalabkani waa in lagu xidho iyada oo loo marayo 5-pin DIN cable, kaas oo asal ahaan ah fiilo leh shan pin oo ku dhex jira isku xiraha. Faahfaahin ahaan, waa wax caadi ah in la isticmaalo USB halkii laga isticmaali lahaa 5-pin DIN, haddii la isticmaalo USB waa inaan abuurnaa interface-USB-MIDI.

Adigoon sii dheerayn, waxaan kuu daayay isku xirka meesha aad ka heli karto tutorial tallaabo tallaabo oo badan oo sawirro sharraxaad leh halkaas oo aan ku fulin karno dhammaan ficilada lagama maarmaanka u ah abuurista kontoroolkayaga 'MIDI' u gaar ah.

Maqaalka laxiriira:
Sida loo beddelo magaca Pi iyo lambarka ereyga 'Raspberry Pi'

Sida loo sameeyo kantaroole MIDI kuu gaar ah oo leh Arduino

midi isku xira

Dad badan ayaa ah dadka u baahan, sababo kala duwan oo shaqsi iyo xirfadba leh, inay u isticmaalaan a si buuxda u maamusha MIDI Sababtoo ah laga yaabee iyo tusaale ahaan, waqti uun noloshaada farshaxan ahaan, inaad iibsato xakamaynta MIDI oo aan qaali ahayn waxaa laga yaabaa inaanay la kulmin waxyaabaha aad ka filayso ama aad ubaahan tahay, marka wakhtigu yimaado, xulashada nooc xirfadeed waxay noqon kartaa mid xad dhaaf ah labada ilaha dhaqaale. baahi, iyo sidoo kale tirada badan ee astaamaha ay bixin karaan.

Sababtaas awgeed, maanta waxaan rabaa inaan ku tuso wax kasta oo aad u baahan tahay si aad adigu u sameysid kantaroolahaaga MIDI oo tilmaamaya wax kasta oo aad ugu baahan tahay dhismihiisa oo aan ku siiyo barnaamijka aad u baahan tahay inaad rakibto. Faahfaahin ahaan, mashruucan adeegsiga guddiga Arduino waa mid lama huraan ah, xakameyn awood leh oo ku filan fulinta howshan.

Sida loo sameeyo robot
Maqaalka laxiriira:
Sida loo sameeyo robot: 3 ikhtiyaar oo kala duwan

Waa maxay xakamaynta MIDI?

midi

Asal ahaan, xakamaynta MIDI ayaa mas'uul ka ah, si ballaadhan u hadlaya, isku xirka aaladaha muusikada ee kala duwan. Kuwo badan ayaa ah aaladaha isku xiraya MIDI interface, in kastoo tani ay tahay inay aad u caddaato maaddaama ay jiraan isticmaaleyaal badan oo had iyo jeer jahwareersan, MIDI maahan feyl maqal ah, laakiin waa tilmaamo aad u fudud oo qalab lagu heli karo. ama goobaha dhawaaqa.

Gudaha MIDI waxaa jira laba nooc oo kala duwanDhinaca mid waxaan leenahay midka loo yaqaan Change Control halkaas oo uu ku leeyahay nambarka koontaroolaha iyo qiime u dhexeeya 0 iyo 127. Waad ku mahadsan tahay tan, fariimaha waa la soo saari karaa halkaasoo xuduudaha kala duwan sida mugga ama codka la beddeli karo. Qalabyo kala duwan oo aqbala MIDI waa inay keenaan buug ay ku sharxayaan kanaalada iyo farriimaha sida caadiga ah loo dejiyo iyo sida loo beddelo.

Marka labaad waxaan haynaa Barnaamijka Beddelka, farriimo taxane ah oo iyaguna si fudud uga fudud kuwa sameeya Isbedelka Xakamaynta. Noocyada farriimaha waxaa loo isticmaalaa in lagu beddelo hore-u-eegista ama balastarka aaladda. Sida ku jirta Xakamaynta Beddelka, oo ay weheliso qalabkaaga soo-saaraha waa inuu ku daraa buug tilmaamaya tilmaamaha horay loogu beddelay farriin gaar ah.

Qaybaha Loogu Baahan Yahay Inay Ku Dhisaan Milegaaga MIDI ee Gurigaaga Lagu Sameeyo

Qalabka isku xira Midi

Si aad u awoodo inaad dhisto xakamayntaada MIDI waxaad u baahan doontaa qaybo taxane ah marka lagu daro, sidii aan horeyba u soo sheegnay, guddiga Arduino. Kahor intaadan sii wadin, kaliya waxaan kuu sheegayaa in laga yaabo, mustaqbalka maxaa yeelay waxaad dooneysaa inaad balaadhiso mashruuca, waxaad u baahan tahay waxyaabo badan, inkasta oo waqtigan oo aad dhawr qaybood haysato aad wax badan heli doonto.

Waxaan u baahanahay 5-pole dine cable 2-pole, 220 2 ohm resistors, 2 badaro daqiiqado ah, 10 XNUMXk ohm resistors, fiilooyin xiriir, guddi wareeg, MIDI cable iyo aalad MIDI ama USB interface. Iyada oo kaliya qaybahaas waxaad ku bilaabi kartaa, adigoo raacaya tallaabooyinkeyga, si aad u sameysid kantaroole MIDI kuu gaar ah.

Tallaabooyinka koowaad

Arduino midi schematic

Kahor intaanan bilaabin waxaan kaa tagayaa sawir aad ku arki karto biinankaaga fiilada MIDI, qaabkan ayaan si sax ah ugu aqoonsan karnaa biinanka iyo gaar ahaan halka mid waliba ay tahay inuu ku xirnaado. Marka si guud loo hadlayo, waxa kaliya ee ay tahay inaad sameyso markan waa isku xirka pin 5 ee xarigga 220 ohm iska caabin ah halkaasna uga gudub Arduino Transmit 1, pin 4 illaa 220 ohm resistor halkaasna ilaa 5V godka Arduino halka pin 2 waa inuu ku xirnaadaa isku xirka dhulka ee xakamayntaada.

Marka talaabadan la sameeyo, ma lihid jaantus faahfaahsan sawirka ku yaal meel ka hooseysa xariiqyadan, waxaa la joogaa waqtigii lagu xiri lahaa badhamada. Fikradda qaybtani waa in la gaaro, iyadoo la adeegsanayo pin-ka digitalRead (oo awood u leh in la ogaado marka danabku gaaro uu isbeddelo) si loo awoodo in la isticmaalo transistor si loo gaaro, iyadoo la adeegsanayo badhanka. Tan waxaan kaliya u isticmaali karnaa badhan sidaas darteed, dhinaca bidix ee ka mid ah waxaan ku xireynaa 5V, dhinaca midig ilaa 220 ohm iska caabin ah iyo halkaa ilaa dhulka halka, dhanka kale, waxaan sidoo kale ku xirnaa dhinaca midig si aan u dhajinno 6 Badhanka labaad si isku mid ah ayaa loo rakibayaa in kastoo, sida aad ku arki karto jaantuska, halkii aanu ka xidhi lahayn 6 waxaan ku xidhi lahayn 7.

Sooftiweer loo adeegsado xakamaynta midi guriga

Marka aan dhammeyno dhammaan qalabka, waxaa la joogaa waqtigii aan ku xirmi lahayn qalabkeena iyo tijaabada. Intaas ka hor waxaan u baahanahay inaan helno a Isku xirka USB-MIDI iyo fiilada MIDI in lagu xiro guddiga, oo xogta diraya, kumbuyuutarkeena. Si tan loo gaaro, waxaan dooranay maktabadda MIDI v4.2 oo ay abuureen ragga ka socda afartan iyo afartan saameyn oo ay tahay inaan ku rakibno Arduino-keena oo aan ku darno mashruuca.

Marka laga hadlayo kumbuyuutarka, waxaan u baahan doonaa barnaamij awood u leh kormeerka dhammaan xogta MIDI ee ka timaadda Arduino. Tan awgeed waxaan leenahay fursado kala duwan sida MIDI Monitor (OS X), MIDI-OX (Windows) ama Kmidimon (Linux)

Si loo sameeyo wax yar oo tijaabo ah waa inaan ku xirnaa Arduino kombuyuutarkeena oo aan fulinaa nambarka soo socda:

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

Haddii wax walboo hagaagsan yihiin, waxaad aadi kartaa baaritaanka badhanka, haddii ay dhacdo in baaritaankaan uusan kuu shaqeyn adiga waa inaad hubisaa in dhammaan xiriiriyadu ay sax yihiin, wareegga wuxuu la mid yahay shaxdii hore, wareegga wuxuu kuxiranyahay interface-USB-MIDI oo leh fiilada MIDI, Fiilooyinka dekedda MIDI si sax ah ayey isugu xiran yihiin, fiilada MIDI waxay kuxirantahay soo gelinta interface-ka USB-MIDI, guddiga Arduino wuxuu si sax ah ugu xiran yahay shabakada korantada wuxuuna leeyahay awood ku filan ...

Tijaabinta in badhamadu si sax ah u shaqeeyaan

Kahor intaadan sii wadin inaad barnaamijkeenna ku quudiso howlo cusub iyo koodh aan ku dhex lumi karno, waa mudan tahay in daqiiqad la joojiyo iyo tijaabi in badhamadu si sax ah u shaqeeyaan. Iyaga waa inaan ku dhejino koodhka soo socda:

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

}

Koodhkan waa in la soo ururiyo oo la fuliyo sidaa darteed, iyada oo la adeegsanayo fiilada USB-ga ah, barnaamijku wuxuu noo sheegayaa haddii mid ka mid ah badhamada la riixay.

Waxaan abuureynaa kantaroolahayaga guriga lagu sameeyo ee MIDI

Mar alla markii aan fulinno tijaabooyinkan, waxaa la joogaa waqtigii aan ku soo ururin lahayn kantarooleheena MIDI taas, waxaad u baahan doontaa oo keliya inaad soo uruuriso lambarka soo socda:

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

Faahfaahin ahaan, waxay kuu sheegaysaa inaadan adeegsan karin amarka Serial.println () oo leh wax soo saar MIDI markan, haddii aad rabto inaad tusto nooc farriin ah kombiyuutarka, kaliya beddel:

midiOut.sendControlChange(42,127,1);

by:

midiOut.sendControlChange(value, channel);

halkaas oo qiimaha iyo kanaalka ay tahay inay lahaadaan qiimayaasha la doonayo ee aad rabto inaad muujiso.

Tusaale hawlgalka:


4 faallooyin, ka tag taada

Ka tag faalladaada

cinwaanka email aan la daabacin doonaa. Beeraha loo baahan yahay waxaa lagu calaamadeeyay la *

*

*

  1. Masuul ka ah xogta: Miguel Ángel Gatón
  2. Ujeedada xogta: Xakamaynta SPAM, maaraynta faallooyinka.
  3. Sharci: Oggolaanshahaaga
  4. Isgaarsiinta xogta: Xogta looma gudbin doono dhinacyada saddexaad marka laga reebo waajibaadka sharciga ah.
  5. Kaydinta xogta: Macluumaadka ay martigelisay Shabakadaha Occentus (EU)
  6. Xuquuqda: Waqti kasta oo aad xadidi karto, soo ceshan karto oo tirtiri karto macluumaadkaaga.

  1.   Alfred dijo

    Arduino wuxuu ku siinayaa fursado badan oo aad kaligaa ku fulin karto mashaariic https://www.juguetronica.com/arduino . Mid ka mid ah waxyaabaha ugu fiican ayaa ah inaad bilaabi karto adoon khabiir aheyn oo aad usii socoto barashada, sidaas darteed naftaada waxaad ugu dhiirigalineysaa inaad iskeed wax u barato.

  2.   Danel Roman dijo

    Thanks.

    Waxaan isku dayayaa inaan fuliyo casharkaan cajiibka ah… laakiin #kuwaani ma dhameystirna….

    Ma ii sheegi kartaa kuwan muhiimka ah?

    Waad ku mahadsantihiin.

  3.   caato dijo

    Hambalyo!
    Waxaan jeclaan lahaa inaan sameeyo aaladda elektaroonigga ah adoo adeegsanaya badhanka badhamada oo aan ku badalidoono waxqabadyo jaakad ah oo ay u imaanayso calaamadda piezoelectric.
    Suurtagal ma tahay in la sameeyo?

  4.   Eduardo Valenzuela dijo

    Fadlan haddii aad siin kartid waxa ku jira lambarkan, waxaan xiiseynayaa mashruucan.