Upami anjeun pameget musik atanapi langsung musisi amatir atanapi propésional, pastina di bumi anjeun anjeun parantos ngumpulkeun koleksi alat musik anu hébat. Sangkan campuran ieu sampurna, langkung saé kéngingkeun a MIDI controller. Hanjakalna, jenis objék ieu biasana lumayan mahal supados jalma anu henteu gaduh seueur sumberdaya ngagaduhan aksés sesah kana sagala anu tiasa ditawarkeun.
Pikeun langkung ngartos naon anu dimaksud MIDI controller, bejakeun yén kecap MIDI asalna Alat Musik Digital Interface, nyaéta, samacam kontrol anu ngajantenkeun alat musik éléktronik tiasa saling komunikasi. Upami anjeun ngagaduhan kibor éléktronik di bumi, contona, éta sigana henteu ngagaduhan interface MIDI. Sateuacan neraskeun mayunan, sanaos kanyataanna aya detil téknis tangtu anu tiasa ngakibatkeun hiji jalma percaya sanésna, éta kedah jelas pisan MIDI sanés audio.
daptar eusi
- 1 Ngadamel kontroler MIDI anjeun nyalira ku tutorial saderhana ieu
- 2 Kumaha carana ngadamel pengendali MIDI anjeun nyalira ku Arduino
- 3 Naon kontroler MIDI?
- 4 Bagian Dipikabutuh pikeun Ngawangun Kontrol MIDI buatan Anjeun sorangan
- 5 Léngkah munggaran
- 6 Parangkat lunak anu dianggo pikeun home Midi controller
- 7 Nguji yén tombol tiasa leres
- 8 Kami nyiptakeun controller MIDI homemade kami
Ngadamel kontroler MIDI anjeun nyalira ku tutorial saderhana ieu
Sakali kami jelas ngeunaan ieu, pastina bakal langkung gampang pikeun anjeun pikeun ngartos yén MIDI ngan saukur saderhana set instruksi sanggup ngadukung nepi ka 16 saluran mandiri, anu hartosna aya tiasa dugi ka 16 alat anu béda-béda komunikasi sacara mandiri. Alat-alat ieu kedah disambungkeun ngalangkungan kabel DIN 5-pin, anu dasarna kabel sareng lima pin dina konektor. Salaku jéntréna, lumayan pikeun ngagunakeun USB tibatan DIN 5-pin, upami nganggo USB urang kedah ngadamel interface USB-MIDI.
Tanpa ado salajengna, kuring ngantepkeun anjeun kana tautan anu anjeun tiasa mendakannana tutorial undak-usuk kalayan seueur gambar deskriptif dimana urang tiasa ngalakukeun sagala tindakan anu diperyogikeun pikeun nyiptakeun kontroler MIDI urang sorangan.
Kumaha carana ngadamel pengendali MIDI anjeun nyalira ku Arduino
Seueur jalma anu peryogi, ku alesan anu béda-béda pribadi sareng propésional, pikeun ngagunakeun pinuh MIDI controller Kusabab meureun sareng salaku conto, dina sababaraha waktos dina kahirupan anjeun salaku seniman, mésér kontributor MIDI anu murah panginten henteu tiasa dipiharepkeun sareng kabutuhan anjeun nalika, nalika waktuna waktuna, milih pikeun vérsi propésional tiasa kaleuleuwihi dina duanana sumber kauangan. peryogi, ogé sajumlah ageung fitur anu aranjeunna tiasa nawiskeun.
Kusabab ieu, dinten ieu kuring hoyong ningalikeun anjeun sadayana anu anjeun peryogikeun sahingga anjeun tiasa ngadamel pengendali MIDI anjeun nyalira nunjukkeun sadayana anu diperyogikeun pikeun pangwangunan sareng nawiskeun parangkat lunak anu anjeun kedah instal. Salaku jéntré, pikeun proyék ieu panggunaan dewan Arduino penting pisan, pengendali anu cukup kuat pikeun ngalaksanakeun tugas ieu.
Naon kontroler MIDI?
Dasarna, hiji MIDI controller tanggung jawab, sacara umum, pikeun nyambungkeun alat musik anu béda-béda. Seueur instrumen anu ngahijikeun antarbeungeut MIDI, sanaos ieu kedah jelas pisan kumargi seueur pangguna anu sering lieur, MIDI sanés file audio, tapi sét instruksi anu saderhana anu tiasa nampi instrumén pikeun ngadamel kontrol anu béda. atanapi setélan sora.
Di jero MIDI aya dua jinis anu bédaDi hiji sisi kami ngagaduhan anu disebat Change Control dimana éta ngagaduhan nomer pengendali sareng nilai antara 0 sareng 127. Hatur nuhun kana ieu, pesen tiasa dikaluarkeun dimana parameter anu béda sapertos volume atanapi nada tiasa dirobih. Instrumén anu béda anu nampi MIDI kedah nyandak manual ku aranjeunna ngajelaskeun saluran sareng pesen mana anu ditetepkeun sacara standar sareng cara ngarobihna.
Di tempat kadua urang gaduh Program Change, mangrupikeun serangkaian pesen anu dina gilirannana langkung saderhana tibatan anu ngawangun Control Change. Jinis-jinis pesen ieu dianggo pikeun ngarobih prasetél atanapi tambalan hiji alat. Sapertos dina Change Control, babarengan sareng instrumen anjeun pabrikan kedah ngalebetkeun manual nunjukkeun prédét mana anu dirobih ku pesen khusus.
Bagian Dipikabutuh pikeun Ngawangun Kontrol MIDI buatan Anjeun sorangan
Pikeun tiasa ngawangun pengendali MIDI anjeun nyalira anjeun peryogi séép potongan salian, sapertos anu parantos kami sebatkeun, ka dewan Arduino. Sateuacan neraskeun, kantun nyaritakeun yén meureun, kahareupna kusabab anjeun badé ngalegaan proyek, anjeun peryogi langkung seueur hal, sanaos dina waktos ieu ku sababaraha potongan anjeun bakal gaduh seueur.
Urang peryogi kabel DIN bikang 5-kutub, résistor 2 220 ohm, 2 sakedap saklar, 2 résistor 10k ohm, kabel sambungan, papan sirkuit, kabel MIDI sareng alat MIDI atanapi antarbeungeut USB. Kalayan ngan ukur potongan-potongan ieu anjeun tiasa ngamimitian, nuturkeun léngkah kuring, pikeun ngadamel kontroler MIDI anjeun nyalira.
Léngkah munggaran
Sateuacan ngawitan kuring ngantunkeun anjeun gambar dimana anjeun tiasa ningali pin tina kabel MIDI anjeun, ku cara ieu urang tiasa leres ngaidentipikasi pin sareng khususna dimana masing-masing kedah sambung. Sacara umum, sadayana anu anjeun kedah lakukeun dina titik ieu nyambungkeun pin 5 tina kabel kana résistor 220 ohm sareng ti sana ka Arduino Transmit 1, pin 4 ka résistor 220 ohm sareng ti ditu ka stop kontak 5V of Arduino bari pin 2 kedah disambungkeun kana sambungan Ground tina controller anjeun.
Sakali léngkah ieu réngsé, anjeun henteu ngagaduhan diagram lengkep dina poto anu aya di handapeun garis ieu, parantos waktuna sambungkeun tombol-tombolna. Gagasan dina bagian ieu nyaéta pikeun ngahontal, nganggo pin digitalRead (sanggup ngadeteksi nalika voltase anu ngahontal éta robih) janten tiasa nganggo transistor pikeun ngahontal, kalayan mencét tombol. Pikeun ieu kami ngan ukur kedah nganggo tombol sahingga, di belah kénca éta kami sambungkeun ka 5V, sisi katuhu kana résistansi 220 ohm sareng ti ditu ka darat bari, dina gilirannana, urang ogé nyambungkeun sisi katuhu ka pin 6 Tombol anu kadua bakal dipasang dina cara anu sami sanaos, sakumaha anjeun tiasa tingali dina diagram, tibatan pin 6 urang sambungkeun kana 7.
Parangkat lunak anu dianggo pikeun home Midi controller
Sakali urang parantos bérés sareng sadaya pakakasna, waktosna pikeun nyambungkeun instrumen sareng tés urang. Sateuacan éta urang kedah gaduh Antarmuka USB-MIDI sareng kabel MIDI pikeun nyambungkeun papan, anu ngirim data, sareng komputer urang. Pikeun ngahontal ieu, kami parantos milih perpustakaan MIDI v4.2 anu diciptakeun ku jalma-jalma ti Opat puluh Puluh Pangaruh anu urang kedah dipasang dina Arduino sareng dilebetkeun kana proyék.
Dina kasus komputer, urang peryogi program anu sanggup ngawaskeun sadaya data MIDI anu sumping tina Arduino. Pikeun ieu urang gaduh kamungkinan anu béda sapertos MIDI Monitor (OS X), MIDI-OX (Windows) atanapi Kmidimon (Linux)
Pikeun ngalakukeun sakedik tés urang kedah nyambungkeun Arduino kana komputer urang sareng ngajalankeun kode ieu:
#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 }
Upami sadayana parantos saé, anjeun tiasa kana tés tombol, upami tés ieu henteu hasil pikeun anjeun anjeun kedah mastikeun yén sadaya koneksi leres, sirkuitna sami sareng diagram sateuacanna, sirkuit disambungkeun kana antarmuka USB-MIDI nganggo kabel MIDI, kabel port MIDI nyambung leres, kabel MIDI disambungkeun kana input interface USB-MIDI, papan Arduino leres nyambung kana jaringan listrik sareng éta ngagaduhan kakuatan anu cekap ...
Nguji yén tombol tiasa leres
Sateuacan neraskeun tuang program kami nganggo pungsi sareng kode énggal anu tiasa urang kasasar, éta patut dieureunkeun sakedap na tés yén tombol tiasa leres. Pikeun aranjeunna urang kedah ngamuat kode ieu:
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); } } }
Kode ieu kedah disusun sareng dieksekusi ku kituna, kalayan kabel USB disambungkeun, program nyarios ka kami upami aya tombol anu diteken.
Kami nyiptakeun controller MIDI homemade kami
Sakali kami parantos ngalaksanakeun tés ieu, parantos waktuna pikeun ngarakit MIDI sorangan pikeun éta, anjeun ngan ukur kedah nyusun kode ieu:
#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); } } }
Salaku jéntré, ngawartosan anjeun yén anjeun moal tiasa nganggo paréntah Serial.println () kalayan kaluaran MIDI waktos ieu, upami anjeun hoyong nunjukkeun sababaraha jinis pesen dina komputer, tinggal robih:
midiOut.sendControlChange(42,127,1);
ku:
midiOut.sendControlChange(value, channel);
dimana nilai sareng saluran kedah ngagaduhan nilai anu dipikahoyong anu anjeun hoyong tampilkeun.
Conto operasi:
4 koméntar, tinggalkeun anjeun
Arduino nawiskeun anjeun seueur kamungkinan pikeun ngadamel proyék nyalira https://www.juguetronica.com/arduino . Salah sahiji hal anu pangsaéna nyaéta anjeun tiasa ngamimitian tanpa janten ahli sareng neraskeun diajar, sahingga memotivasi diri anjeun supaya diajar diri.
Salam.
Kuring nyobian ngalaksanakeun tutorial anu hadé ieu ... tapi anu kalebet henteu lengkep….
Naha anjeun tiasa nyarioskeun anu mana anu diperyogikeun?
Hatur nuhun pisan.
Hello.
Abdi hoyong ngadamel modul kendang éléktronik ku ngagentos tombol-tombol ku input jack anu sinyal piezoelektrik bakal sumping.
Naha mungkin pikeun ngalakukeunana?
Punten upami anjeun tiasa masihan kalebet kode ieu, kuring resep kana proyék ieu.