Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-23 15:12
Ang isa pang kahon ng MIDI to CV ay isang proyekto na binuo ko nang isang Korg MS10 ang kumatok sa aking pintuan at naganap sa aking studio. Ang pagiging ang aking pag-setup ay lubos na nauugnay sa MIDI upang i-automate at i-syncronize ang lahat ng mga instrumento, nang binili ko ang MS10 ang unang problema na dapat kong harapin ay kung paano ipatupad ang naturang kontrol.
Ang Korg MS20 / 10 ay hindi ang pinakamadaling synths upang ipatupad ang MIDI sa: una sa lahat, umaasa sila sa Hz / V control (linear na ugnayan sa pagitan ng boltahe ng kontrol at dalas ng tala), sa halip na okt / V (1V bawat oktaba); pangalawa, upang mapalitaw ang isang tala dapat kang magpadala ng isang negatibong signal ng gate at paikliin ang input sa ground (S-Trig), hindi isang signal na +5 V (V-trig).
Mayroong iba't ibang mga solusyon sa komersyo upang makontrol ang mga naturang instrumento sa kasalukuyan (ibig sabihin, Arturia Beatstep Pro, Korg SQ-1, Kenton Solo) ngunit ako ay isang murang bastard at kahit 100 euro ay sobra para sa isang "hindi tunog" na aparato:).
Narito kami pagkatapos: hayaan mo akong ipakita sa iyo kung paano bumuo ng isang mababang badyet na MIDI sa kahon ng CV upang makontrol / awtomatiko ang isang pre-MIDI synth's pitch, gate, bilis at cutoff frequency na may isang panlabas na MIDI controller (Keyboard, DAW, sequencer o kung ano pa man).
"Kumusta naman ang bagong MS20 mini?"
Tulad ng alam ng halos sinuman, ang bagong MS20 ay talagang handa na MIDI: IN na may isang 5 poste na MIDI konektor at IN / OUT na may konektor ng USB.
"Kaya, kung mayroon akong isang MS20 mini ang bagay na ito ay walang silbi!"
Hindi. Nakikilala lamang ng MS20 mini ang tala sa / off na mensahe at ang keyboard ay hindi sensitibo sa tulin. Walang paraan upang mapagtagumpayan ito gamit ang MS10 / 20 vintage o mini keyboard, ngunit may midi box at isang bilis ng pagkasensitibong keyboard ikaw ay ginintuang. Bilang karagdagan, sa kahon ng MIDI maaari mong i-automate ang cutoff ng filter (o anumang iba pang parameter na maaaring kontrolin ng boltahe) o gawin itong modulate ng papasok na tala ng MIDI sa bilis. Muli, ang tanging MIDI channel na MS20 mini ay tumutugon sa channel 1. Sa kahon na ito maaari mo ring pagtagumpayan ang limitasyong ito.
"Paano kung mayroon akong isang synth ng Okt / V?"
Walang problema! Ang code na isinulat ko ay compatble sa mga synthesizer ng Okt / V (hindi nasubukan, ngunit tiwala ako na gagana ang labas ng kahon;)).
Hakbang 1: !! Tandaan ng Pag-iingat - Disclaimer !
Napakahalaga ng iyong kagamitan at hindi dapat gamitin upang magsagawa ng mga pagsubok.
Ang laruang may elektrisidad ay maaaring malubhang makapinsala sa iyong kagamitan o makakasama sa iyong sarili.
Hindi ako mananagot para sa mga pinsala sa iyong kagamitan / hardware o kahit sa iyong sarili na nagmula sa alinman sa software o mga scheme o impormasyong o mga link na naiulat ko sa itinuturo na ito.
Binalaan ka!
Hakbang 2: Pag-engineering ng Hardware
Madaling magamit ang Arduino kapag nakikipag-usap sa mga proyektong tulad nito. Ang pagkakaroon ng isang malaking Komunidad at napakahusay na mga aklatan na sumasaklaw sa halos bawat karaniwang gawain na ginagawang tamang pagpipilian. Dito mai-program ang board na babasahin nito ang papasok na data ng MIDI at pagkatapos ay magpapadala ng mga naaangkop na voltages upang magmaneho:
- Pitch, sa pamamagitan ng pag-convert ng isang pwm output sa isang analog boltahe upang himukin ang VCO sa pamamagitan ng isang digital sa analog converter (DAC)
- Ang bilis, sa pamamagitan ng pag-filter ng isang pwm output upang himukin ang VCA na may isang simpleng RC filter
- Filter Frequency Frequency, sa pamamagitan ng pag-filter ng isang pwm output upang himukin ang VCF na may isang simpleng RC filter
- Gate, direkta mula sa isang digital out sa kaso ng V-trig (maglagay ng isang 1Kohm sa serye na may output upang mabawasan ang kasalukuyang alisan ng tubig) o sa pamamagitan ng isang simpleng pnp transistor na lumipat sa labas ng digital (tingnan ang eskematiko na nakakabit sa hakbang sa eskematiko).
Ang Arduino ay hindi kayang maglabas nang direkta ng mga matatag na boltahe, ngunit ang 0 / + 5 V na pulso na may iba't ibang mga panahon (PWM). Kailangan namin ng digital sa mga analog converter (DAC) para sa pourpouse. Ang mga RC filters ay ang pinakamadaling DAC na naiisip ko. Ang isang RC filter ay mahusay na hinahangad para sa boltahe na kinokontrol ng amplifier at filter (VCA at VCF). Ang mga RC filters ay pinasadya upang magresulta sa isang cutoff frequency <20Hz (pinakamababang dalas ng naririnig).
Gumawa ako ng ilang pagsubok na may mababang kapasidad na hindi polarized capacitor at nagtapos ako sa isang halaga ng kapasidad na 0.1uF upang maging pinakamahusay na magkasya. Nasubukan nang mabuti sa isang MS20 MKII.
Sa kasamaang palad, hindi kami maaaring umasa sa isang RC filter upang himukin ang boltahe na kinokontrol oscillator (VCO) dahil hindi ito tumpak na inaasahan (sa Hz / V scale, sa ibabang dulo ng dalawang adiacend semitones ay naiiba nang mas mababa sa 0.02V; sa V / oct dalawang adiacent semitones na magkakaiba para sa 0.083 V); gagamitin namin ang isang IC DAC (MPC4725) para dito.
Kilalang Mga Limitasyon
Nililimitahan ang boltahe ng drive sa 5V (ang boltahe ng output ng Arduino), ang buong saklaw na 0 hanggang 5V ay sakop para sa tulin; ang cutoff ay kalahating sakop (-5V hanggang + 5V); ang saklaw ng VCO ay bahagyang natatakpan na sa Hz / V isang boltahe ng 8 V ay kinakailangan upang maabot ang 440 Hz A4. Sa isang limitasyong output ng 5V maaari nating maitayo ang oscillator hanggang sa dalas ng D4 sa Hz / V.
Hakbang 3: Listahan ng Mga Bahagi
Kailangan mo para sa:
1X Arduino UNO (o nano)
1X MPC4725 DAC board
4X 1/8 "o 1/4" na mga konektor ng mono
Konektor ng 1X MIDI
1X 6N138 optocoupler
1X 1N4148 diode
1X 220 ohm 1/4 W risistor
1X 470 ohm 1/4 W risistor
1X 10K ohm 1/4 W risistor
4X 1K ohm 1/4 W risistor
2X 0.1 uF capacitor
1X BC547 pnp transistor (sa kaso ng S-trig)
1X ABS box (hindi bababa sa 55 x 70 x 100 mm)
… at malinaw naman ang breadboard o perfboard, solder iron, solder wire at cable (2 metro ng 28 AWG ay dapat na makuha).
Pansinin na sa mga larawan sa itaas ang aking prototype ay nai-mount ang 100 uF electrolitic cap, ngunit ang mga ito ay masyadong mabagal dahil sa oras ng pagsingil ng kapasidad. Ang isang kapasidad ng 0.1uF ay ang tamang pagpipilian.
Gumamit ako ng isang karagdagang konektor upang magbigay ng lakas sa aking arduino; hindi kinakailangan na posible na i-juice ang microcontroller nang direkta sa pamamagitan ng onboard mini USB konektor.
Hakbang 4: Mga Koneksyon / Iskema
MIDI IN
Ang circuit ng MIDI IN ay simple at mahusay na inilarawan sa net. Dalhin ANG mahusay na itinuturo na ito sa MIDI at Arduino ni Amanda Gassaei, halimbawa. Ginawa ko rin ang ikalimang iskema sa bagay na rin.
Pansinin na nagdagdag ako ng isang switch sa MIDI IN scheme (switch 1): kinakailangan ito kapag nag-a-upload ng isang bagong sketch sa Arduino dahil ang opto ay makagambala sa linya ng RX kahit na walang papasok na mga midi message. Dapat mong buksan ang switch bago i-upload ang iyong sketch o mabigo ang IDE na i-upload ang bagong sketch.
Maaari mong baguhin sa kalaunan ang sketch upang magamit ang isang serial software na komunikasyon.
DAC, RC Filter, Synthesizer
Ang koneksyon para sa DAC, RC filters at Synth (pitch, gate at velocity) ay ipinapakita sa diagram sa itaas. Kinuha ko para sa sanggunian ang isang Korg MS20 patch panel, ngunit sinubukan ko rin ang lahat sa isang MS10. Ang direktang koneksyon ng bilis ng CV sa VCA na "paunang nakuha" na patch point ay walang epekto (kailangan kong maghukay ng bagay na ito nang higit pa) ngunit kung ikonekta mo ito sa "Total" na patch point at itaas ang iyong kabuuang panlabas na kaldero (MG / T. EXT), maririnig mo ang magagandang mga pagkakaiba-iba ng tono bilang isang pagpapaandar ng bilis ng tala.
Ang aking mga iskema (at ang aking prototype din) ay hindi gumagamit ng isang kasalukuyang naglilimita ng risistor sa output ng DAC, ngunit palaging isang magandang ideya na maglagay ng isa upang matiyak ang mahabang buhay sa iyong mga circuit. Isang 220 ohm risistor ang ipapatupad.
Pansinin na sa mga iskema sa itaas 100 uF electrolitic cap ay naiulat, ngunit sila ay masyadong mabagal dahil sa oras ng pagsingil ng kapasidad. Non polarized, 0.1uF cap ay ang tamang pagpipilian.
Gate Out
Kung sakaling isusunod mo ang isang synth na katugma sa mga signal ng V-Trig (voltage trigger), isang 1k ohm series resistor upang mabawasan ang kasalukuyang alisan ng tubig ay magiging sapat; sa kaso ng isang S-Trig (switch trigger) synth, maaari kang gumamit ng isang simpleng circuit ng switch ng PNP (tingnan ang kalakip na pamamaraan).
Hakbang 5: Ang Software
Sinubukan kong panatilihing malinaw ang sketch at "nababasa" hangga't maaari.
Nagtrabaho ako sa isang simpleng calc sheet na nahanap ko DITO upang makuha ang isang boltahe ng Voltage Vs Note # at direktang gamitin ang equation sa microcontroller. Ang equation ay ipinapakita sa graph sa itaas. Ginamit ko ang C2 bilang tala ng sanggunian upang makakuha ng isang kaugnay na Arp / Korg na Voltage Vs note na kaugnay (C0 - 0.25V, C1 - 0.5V, C2 - 1V, C3 - 2V, C4 - 4V, C5 - 8V at iba pa).
Kailangan kong tukuyin ang ilang variable sa laruan upang makakuha ng isang mahusay na pag-tune … maglaan ng iyong oras upang mahanap ang tamang mga halaga. Kailangan ng isang tuner.
Dadagdagan namin ang pwm dalas ng isang Timer / Counter upang mabawasan ang output voltages ripple (kasing dali ng isang linya ng code).
Upang mapanatili ang tumutugon sa code sa mga papasok na byte, ang code ay umaasa nang husto sa mga function na callback.
Kailangan mo ng Sparkfun's "Adafruit_MCP4725.h" at Forty Seven Effects / "MIDI.h" na mga aklatan ni Francois Best upang mag-ipon! (Maraming salamat sa mga taong ito: nang walang kanilang pagsisikap ang proyektong ito ay hindi kailanman maisasakatuparan!).
Ipagpapalagay ko na mayroon kang handa na Arduino IDE sa iyong PC at alam mo kung paano mag-load ng isang sketch sa iyong Arduino board.
Hindi ako isang coder sa totoong buhay, kaya malamang na ang sketch ay maaaring nakasulat sa isang mas mahusay na paraan. Bukas ako sa mga mungkahi (palagi kong natututo ang isang bagay na tumitingin sa code ng coder;))
Ang mga karagdagang tala ay nakasulat sa code sa ibaba. I-install ang dalawang aklatan, buksan ang nakalakip na code sa iyong IDE, ikonekta ang iyong board, piliin ang uri ng board at i-upload.
Hakbang 6: Pag-troubleshoot
Kahit na ang proyekto ay mababa ang antas, maraming mga bagay na maaaring magkamali. Kung nakakaranas ka ng mga isyu habang sinusubukang lumikha ng iyong sariling MIDI sa CV box, sundin ang mga hakbang na ito:
1. Siguraduhin na ang Arduino ay tama na tumatanggap ng mga mensahe ng MIDI
Suriin ang output channel ng iyong keyboard o DAW o Sequencer ay naglalabas ng mga mensahe ng MIDI. Nakikinig si Arduino sa channel 1 bilang default. I-upload ang "TEST_MIDI_IN.ino" upang basahin ang isang papasok na talaON mensahe.
2. I-double check ang iyong mga wirings
… o kahit na mas mahusay: triple suriin ang mga ito! Panatilihin ang iyong oras para dito.
3. Suriin ang DAC address at output
Maaaring maitakda ang DAC upang makatanggap ng data sa ibang address kaysa sa itinakda ko sa sketch. Suriin ang address sa pamamagitan ng pagpapatakbo ng "I2C_scanner.ino". Kung nangyari ang isang error na "walang nahanap na aparato", suriin ang iyong mga kable ng DAC (ang mga input ng SDA at SCL ay magkakaiba sa iba't ibang mga board ng Arduino!). Kung mayroon kang isang oscillocope (kahit na ang mga 15 euro digital oscilloscope ay mahusay na inisip … at masaya upang laruan!) Maaari mong suriin ang output ng iyong DAC sa pamamagitan ng pag-upload ng halimbawa ng generator ng trianglewave na kasama sa pag-install ng DAC library.
Tandaan na kapag ang isang optocoupler ay konektado sa RX input ng iyong arduino board, hindi ka makakapag-upload ng bagong sketch !! Maglagay ng switch (maaaring ito ay isang simpleng jumper) bago ang RX pin.
Karamihan sa mga test sketch na ito ay hindi minahan o hindi bababa sa batay sa mayroon nang online na materyal.
Hindi bagay sa akin ang bagay na ito !?
Hindi ito isang tunay na isyu: ang equation na nakuha para sa Hz / V control ay "ideal". Ang ilang naaanod mula sa perpektong pag-uugali ay maaaring tumaas mula sa + 5V na iyong ibinibigay na hindi 5.000V, mula sa DAC at mula sa instrumento mismo. Upang malutas dapat kang kumilos sa iyong synth tune / fine tune potentiometer at "voilà" isang perpektong na-tune na kontrol ng MIDI;)
Hakbang 7: Mga Kapaki-pakinabang na Link
en.wikipedia.org/wiki/CV/gate
www.instructables.com/id/Send-and-Receive-…
www.songstuff.com/recording/article/midi_me…
pages.mtu.edu/~suits/NoteFreqCalcs.html
espace-lab.org/activites/projets/en-arduin…
learn.sparkfun.com/tutorials/midi-shield-h…
provideyourown.com/2011/analogwrite-conver…
www.midi.org/specifications/item/table-3-c…
arduino-info.wikispaces.com/Arduino-PWM-Fr…
sim.okawa-denshi.jp/en/PWMtool.php
Inirerekumendang:
Isa pang Karamihan sa 3D Naka-print na Rotary Switch: 7 Hakbang (na may Mga Larawan)
Isa pang Karamihan sa 3D Printed Rotary Switch: Habang pabalik ay lumikha ako ng isang Karamihan sa 3D Printed Rotary Switch na partikular para sa aking proyekto sa Minivac 601 Replica. Para sa aking bagong proyekto sa Think-a-Tron 2020, nahanap ko ang aking sarili na nangangailangan ng isa pang paikot na switch. Naghahanap ako para sa isang switch ng mount ng SP5T panel. Isang additi
Ngunit Isa pang Smart Weather Station, Ngunit : 6 Mga Hakbang (na may Mga Larawan)
Ngunit Isa pang Smart Weather Station, Ngunit …: OK, alam ko na maraming mga ganitong mga istasyon ng panahon na magagamit kahit saan, ngunit tumagal ng ilang minuto upang makita ang pagkakaiba … Ipinapakita ang mababang kapangyarihan 2 e-papel … ngunit 10 magkakaiba mga screen! Batay sa ESP32 ang accelerometer at mga sensor ng temperatura / halumigmig Wifi na nai-update
Ngunit Isa pang Maituturo sa Paggamit ng DIYMall RFID-RC522 at Nokia LCD5110 Sa Isang Arduino: 8 Mga Hakbang (na may Mga Larawan)
Gayunpaman Isa pang Maituturo sa Paggamit ng DIYMall RFID-RC522 at Nokia LCD5110 Gamit ang isang Arduino: Bakit ko naramdaman ang pangangailangan na lumikha ng isa pang Maituturo para sa DIYMall RFID-RC522 at Nokia LCD5110? Kaya, upang sabihin sa iyo ang katotohanan na nagtatrabaho ako sa isang Patunay ng Konsepto noong nakaraang taon gamit ang pareho ng mga aparatong ito at kahit papaano " nalagay sa lugar "
Isa pang Pi sa Wall: 16 Hakbang (na may Mga Larawan)
Isa pang Pi sa Wall: Ipinapakita sa iyo ng tutorial na ito na nakatuturo kung paano bumuo ng isang NAS (Network-Attached Storage) gamit ang isang Raspberry Pi (RasPi) at dalawang HDD. Ang tutorial na ito ay dapat magbigay sa iyo ng detalyadong mga intruction sa kung paano i-mount ang isang RasPi, dalawang HDD, at ang buong power supply o
Ngunit Isa pang Weather Station (Y.A.W.S.): 18 Hakbang (na may Mga Larawan)
Ngunit Isa pang Weather Station (Y.A.W.S.): Ang proyektong ito ang aking kinukuha sa pinakatanyag na Weather Station. Ang minahan ay batay sa isang ESP8266, a.96 ” OLED display at isang array ng sensor ng kapaligiran ng BME280. Ang mga Istasyon ng Panahon ay tila isang tanyag na proyekto. Ang minahan ay naiiba ang sarili mula sa ot