Mündəricat:

Başqa bir MIDI CV Box: 7 Addım (Şəkillərlə birlikdə)
Başqa bir MIDI CV Box: 7 Addım (Şəkillərlə birlikdə)

Video: Başqa bir MIDI CV Box: 7 Addım (Şəkillərlə birlikdə)

Video: Başqa bir MIDI CV Box: 7 Addım (Şəkillərlə birlikdə)
Video: Kim nə başa düşdü ❓ 2024, Noyabr
Anonim
Başqa bir MIDI CV Box
Başqa bir MIDI CV Box

Digər bir MIDI -CV qutusu, bir Korg MS10 qapımı döyəndə və studiyamda yer alanda hazırladığım bir layihədir. Quruluşumun bütün alətləri avtomatlaşdırmaq və sinxronizasiya etmək üçün MIDI ilə çox əlaqəli olması səbəbindən MS10 -u satın aldığımda qarşılaşdığım ilk problem bu cür idarəetməni necə tətbiq etmək idi.

Korg MS20/10, MIDI -ni tətbiq etmək üçün ən asan sintezlər deyil: ilk növbədə, okt/V (oktavada 1V) yerinə, Hz/V nəzarətinə (nəzarət gərginliyi ilə qeyd tezliyi arasındakı xətti korrelyasiya) güvənirlər; İkincisi, bir notu işə salmaq üçün mənfi bir qapı siqnalı göndərməlisiniz və girişi yerə +5 V siqnalı (V-trig) yox, yerə (S-Trig) qısaltmalısınız.

Hal-hazırda bu cür alətləri idarə etmək üçün müxtəlif kommersiya həlləri mövcuddur (yəni Arturia Beatstep Pro, Korg SQ-1, Kenton Solo), amma mən ucuz bir piçəm və hətta 100 avro da "səslənməyən" bir cihaz üçün çoxdur:).

Buradayıq: xarici MIDI nəzarətçisi (Klaviatura, DAW, sekanser və ya hər hansı bir) ilə MIDI əvvəli synth-in meydançasını, qapısını, sürətini və kəsilmə tezliyini idarə etmək/avtomatlaşdırmaq üçün CV-dən aşağı büdcəli bir MIDI qurmağı sizə göstərim..

"Yeni MS20 mini haqqında nə demək olar?"

Demək olar ki, hər kəsin bildiyi kimi, yeni MS20 əslində MIDI -yə hazırdır: 5 dirəkli MIDI konnektoru ilə və USB konnektoru olan IN/OUT.

"Beləliklə, bir MS20 mini varsa, bu şey faydasızdır!"

Yaxşı, yox. MS20 mini yalnız açma/söndürmə mesajlarını tanıyır və klaviatura sürətə həssas deyil. MS10/20 vintage və ya mini klaviatura ilə bunun öhdəsindən gəlmək üçün heç bir yol yoxdur, ancaq midi qutusu və sürətə həssas bir klaviatura ilə qızılısınız. Əlavə olaraq, MIDI qutusu ilə filtr kəsilməsini (və ya hər hansı digər gərginliyə nəzarət edilə bilən parametri) avtomatlaşdıra bilərsiniz və ya daxil olan sürətlə əlaqədar MIDI qeydi ilə modulyasiya edə bilərsiniz. Yenə MS20 mini -nin cavab verdiyi MIDI kanalı kanal 1 -dir. Bu qutu ilə bu limiti də aşa bilərsiniz.

"Bir Oct/V synth varsa nə etməliyəm?"

Problem deyil! Yazdığım kod Oct/V sintezatorları ilə uyğundur (sınaqdan keçirilməyib, amma əminəm ki, qutudan kənarda işləyəcək;)).

Addım 1: !! Diqqət Diqqəti - İmtina

Avadanlıqlarınız çox dəyərlidir və testlər aparmaq üçün istifadə edilməməlidir.

Elektriklə oynamaq oyuncağınıza ciddi ziyan vura bilər və ya özünüzə zərər verə bilər.

Bu təlimatda bildirdiyim hər hansı bir proqramdan, sxemdən və ya məlumatlardan və ya bağlantılardan gələn avadanlıqlarınıza/aparatlarınıza və hətta özünüzə dəyən ziyana görə məsuliyyət daşımıram.

Sənə xəbərdarlıq edildi!

Addım 2: Avadanlıq Mühəndisliyi

Arduino bu cür layihələrlə məşğul olarkən əlverişlidir. Böyük bir Topluluğun və demək olar ki, hər bir ümumi işi əhatə edən çox yaxşı kitabxanaların olması onu düzgün seçim edir. Burada lövhə daxil olan MIDI məlumatlarını oxuyacaq və sonra idarə etmək üçün müvafiq gərginliklər göndərəcək şəkildə proqramlaşdırılacaq:

- VC -ni rəqəmsaldan analoqa çevirici (DAC) vasitəsilə idarə etmək üçün pwm çıxışını analoq gərginliyə çevirərək addım atın.

- VCA -nı sadə bir RC filtri ilə idarə etmək üçün bir pwm çıxışını süzərək sürət

- VCF -ni sadə bir RC filtri ilə idarə etmək üçün bir pwm çıxışını süzərək Filter Cutoff Frequency.

- V-trig vəziyyətində birbaşa rəqəmsal bir çıxışdan (cari boşalmanı azaltmaq üçün çıxışı ilə 1Kohm seriyası qoyun) və ya rəqəmsal çıxışdan sadə bir pnp tranzistor açarı ilə (sxematik mərhələyə əlavə edilmiş sxemə baxın).

Arduino birbaşa sabit gərginliklər çıxara bilmir, lakin müxtəlif dövrlərdə (PWM) 0/+5 V impulslar verir. Dökmə evi üçün rəqəmsaldan analoqa çeviricilərə (DAC) ehtiyacımız var. RC filtrləri düşünə biləcəyim ən asan DAC -dır. Bir RC filtri, gərginlik idarə olunan gücləndirici və filtr (VCA və VCF) üçün kifayətdir. RC filtrləri <20Hz (ən aşağı səs tezliyi) bir kəsmə tezliyi ilə nəticələnmək üçün hazırlanmışdır.

Aşağı tutumlu polarizasız kondansatörlərlə bir sınaq keçirdim və ən yaxşı uyğunlaşmaq üçün 0.1uF tutum dəyəri ilə başa vurdum. MS20 MKII -də yaxşı sınaqdan keçirildi.

Təəssüf ki, gərginlik idarə olunan osilatoru (VCO) idarə etmək üçün RC filtrinə arxalana bilmərik, çünki kifayət qədər dəqiq deyil (Hz/V miqyasında, aşağı ucunda iki adiasend semitonu 0.02V -dən az fərqlənir; V -də) /okt iki adiasent semiton 0.083 V üçün fərqlənir); Bunun üçün bir IC DAC (MPC4725) istifadə edəcəyik.

Bilinən Limitlər

Sürücü gərginliyini 5V (Arduino çıxış gərginliyi) ilə məhdudlaşdıraraq, 0 -dan 5V -ə qədər olan sürət, sürət üçün əhatə olunur; kəsmə yarısı örtülüdür (-5V- +5V); VCO diapazonu qismən əhatə olunur, çünki Hz/V -də 440 Hz A4 -ə çatmaq üçün 8 V gərginlik tələb olunur. 5V çıxış limiti ilə osilatoru D4 frekansına qədər Hz/V -də yerləşdirə bilərik.

Addım 3: Komponentlərin siyahısı

Komponentlər siyahısı
Komponentlər siyahısı
Komponentlər siyahısı
Komponentlər siyahısı
Komponentlər siyahısı
Komponentlər siyahısı

Ehtiyacınız var:

1X Arduino UNO (və ya nano)

1X MPC4725 DAC lövhəsi

4X 1/8 "və ya 1/4" mono konnektorlar

1X MIDI konnektoru

1X 6N138 optocoupler

1X 1N4148 diod

1X 220 ohm 1/4 W müqavimət

1X 470 ohm 1/4 W müqavimət

1X 10K ohm 1/4 W müqavimət

4X 1K ohm 1/4 W müqavimət

2X 0.1 uF kondansatör

1X BC547 pnp tranzistor (S-trig vəziyyətində)

1X ABS qutusu (ən az 55 x 70 x 100 mm)

… Və açıqca çörək taxtası və ya perfboard, lehimləmə dəmiri, lehim teli və kabellər (2 metrlik 28 AWG kifayət olmalıdır).

Yuxarıdakı şəkillərdə prototipimdə 100 uF elektrolitik qapaqlar quraşdırıldığına diqqət yetirin, lakin tutumun yüklənmə müddəti səbəbindən çox yavaş olur. 0.1uF kapasitans doğru seçimdir.

Arduinomu enerji ilə təmin etmək üçün əlavə bir bağlayıcı istifadə etdim; Mikro nəzarətçini birbaşa daxili USB konnektoru vasitəsilə sıxmaq lazım deyil.

Addım 4: Bağlantılar/Şemalar

Əlaqələr/Şemalar
Əlaqələr/Şemalar
Əlaqələr/Şemalar
Əlaqələr/Şemalar
Əlaqələr/Şemalar
Əlaqələr/Şemalar

MIDI GİRİŞ

MIDI IN dövrəsi sadədir və şəbəkədə yaxşı təsvir edilmişdir. Misal üçün Amanda Gassaei tərəfindən MIDI və Arduino üzrə BU əla təlimatı götürün. Neysə bu mövzuda nci sxematik etdim.

MIDI IN sxeminə bir keçid əlavə etdiyimə diqqət yetirin (keçid 1): bu, Arduino -ya yeni bir eskiz yükləyərkən lazımdır, çünki opto gələn midi mesajları olmadan da RX xəttinə müdaxilə edir. Eskizinizi yükləməzdən əvvəl açarı açmalısınız, əks halda IDE yeni eskizi yükləyə bilməyəcək.

Nəhayət bir eskizi dəyişdirərək serial proqram ünsiyyətindən istifadə edə bilərsiniz.

DAC, RC Filtri, Sintezator

DAC, RC filtrləri və Synth üçün əlaqə (meydança, qapı və sürət) yuxarıdakı diaqramda göstərilmişdir. İstinad üçün Korg MS20 patch panelini götürdüm, amma hər şeyi bir MS10 -da sınadım. Sürət CV -nin VCA "ilkin mənfəət" yamaq nöqtəsinə birbaşa qoşulmasının heç bir təsiri yoxdur (bunu daha da qazmalıyam), ancaq "Total" yama nöqtəsinə bağlasanız və ümumi xarici qablarınızı qaldırsanız (MG/T. EXT)), qeyd sürətinin bir funksiyası olaraq gözəl ton dəyişiklikləri eşidəcəksiniz.

Şemalarım (və mənim də prototipim) DAC çıxışında cərəyan məhdudlaşdıran bir rezistor istifadə etmir, ancaq dövrələrinizə uzun ömür təmin etmək üçün birini yerləşdirmək həmişə yaxşı bir fikirdir. 220 ohm müqavimət kifayətdir.

Sxemlərdə 100 uF -dən yuxarı elektrolitik qapaqlar bildirildiyinə diqqət yetirin, lakin tutumun doldurma müddəti səbəbindən çox yavaş olur. Qütbləşməmiş 0.1uF qapaqlar düzgün seçimdir.

Gate Out

V-Trig (gərginlik tetikleyicisi) siqnalları ilə uyğun bir synth sıralamaq niyyətindəsinizsə, cərəyanı azaltmaq üçün 1k ohm seriyalı rezistor kifayət edər; S-Trig (keçid tetikleyicisi) sintezi halında, sadə bir PNP keçid dövrəsindən istifadə edə bilərsiniz (əlavə edilmiş sxemə baxın).

Addım 5: Proqram təminatı

Proqram təminatı
Proqram təminatı

Eskizi mümkün qədər aydın və "oxunaqlı" saxlamağa çalışdım.

Sadə bir hesab vərəqi üzərində işlədim, BURADA bir Voltaj Vs Qeyd# əyrisi çıxarmaq və birbaşa mikrokontrolördəki tənliyi istifadə etmək üçün tapdım. Tənlik yuxarıdakı qrafikdə göstərilmişdir. Arp/Korg uyğun Voltaj Vs qeyd əlaqəsi əldə etmək üçün C2 istifadə etdim (C0 - 0.25V, C1 - 0.5V, C2 - 1V, C3 - 2V, C4 - 4V, C5 - 8V və s.).

Yaxşı bir tənzimləmə əldə etmək üçün oyuncağa bir dəyişən təyin etməliydim … doğru dəyərləri tapmaq üçün vaxt ayırın. Bir tuner lazımdır.

Çıxış gərginliyini azaltmaq üçün Taymer/Sayğacın pwm tezliyini artıracağıq (kod xətti qədər asan).

Kodun gələn baytlara cavab verməsini təmin etmək üçün kod çox vaxt funksiyaların geri çağırılmasına əsaslanır.

Sparkfun "Adafruit_MCP4725.h" və qırx yeddi effekt/Francois Bestin "MIDI.h" kitabxanalarının tərtib edilməsinə ehtiyacınız var! (Bu şəxslərə çox sağ olun: onların səyləri olmadan bu layihə heç vaxt gerçəkləşməyəcək!).

Kompüterinizdə Arduino IDE -nin hazır olduğunu və Arduino lövhəsinə bir eskiz yükləməyi bilirsiniz.

Mən real həyatda kod yazan adam deyiləm, buna görə də eskizi daha yaxşı bir şəkildə yazmaq ehtimalı yüksəkdir. Təkliflərə açıqam (kodlayıcı koduna baxaraq hər zaman bir şey öyrənirəm)))

Əlavə qeydlər aşağıdakı kodda yazılmışdır. İki kitabxananı quraşdırın, IDE -də əlavə edilmiş kodu açın, lövhənizi bağlayın, lövhənin növünü seçin və yükləyin.

Addım 6: Problemlərin aradan qaldırılması

Layihə aşağı səviyyədə olsa da, yanlış gedə biləcək bir çox şey var. Öz MIDI -dən CV qutusu yaratmağa çalışarkən problem yaşayırsınızsa, bu addımları izləyin:

1. Arduinonun MIDI mesajlarını düzgün qəbul etdiyinə əmin olun

Klaviatura və ya DAW və ya Sequencer -in MIDI mesajlarını çıxardığı çıxış kanalını yoxlayın. Arduino standart olaraq 1 -ci kanalı dinləyir. Daxil olan notON mesajını oxumaq üçün "TEST_MIDI_IN.ino" yükləyin.

2. Kablolarınızı iki dəfə yoxlayın

… Və ya daha yaxşı: üç dəfə yoxlayın! Bunun üçün vaxtınızı ayırın.

3. DAC ünvanını və çıxışını yoxlayın

DAC, eskizdə təyin etdiyimdən fərqli bir ünvanda məlumat almaq üçün qurula bilər. "I2C_scanner.ino" proqramını işlədərək ünvanı yoxlayın. "Cihaz tapılmadı" xətası baş verərsə, DAC kabellərinizi yoxlayın (SDA və SCL girişləri fərqli Arduino lövhələrində fərqlidir!). Bir osiloskopunuz varsa (hətta 15 avroluq rəqəmsal osiloskoplar kifayət qədər yaxşı … və oyuncaqla əylənmək!) DAC kitabxanasının quraşdırılmasına daxil olan üçbucaqlı generator nümunəsini yükləyərək DAC -ın çıxışını yoxlaya bilərsiniz.

Unutmayın ki, bir optocoupler arduino lövhənizin RX girişinə qoşulduqda yeni bir eskiz yükləyə bilməyəcəksiniz !! RX pinindən əvvəl bir keçid qoyun (sadə bir tullanan ola bilər).

Bu test eskizlərinin çoxu mənim deyil və ya heç olmasa mövcud onlayn materiala əsaslanır.

Bu şey mənə uyğun gəlmir !?

Bu real bir məsələ deyil: Hz/V nəzarət üçün çıxarılan tənlik "idealdır". İdeal davranışdan bəzi sapmalar 5.000V olmayan +5V -dan, DAC -dan və alətin özündən çıxa bilər. Həll etmək üçün synth melodiyası/incə tune potansiyometriniz və "voilà" ilə mükəmməl uyğunlaşdırılmış bir MIDI idarəsi ilə hərəkət etməlisiniz;)

Addım 7: Faydalı bağlantılar

az.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/az/PWMtool.php

Tövsiyə: