Mundarija:

Boshqa MIDI CV qutisiga: 7 qadam (rasmlar bilan)
Boshqa MIDI CV qutisiga: 7 qadam (rasmlar bilan)

Video: Boshqa MIDI CV qutisiga: 7 qadam (rasmlar bilan)

Video: Boshqa MIDI CV qutisiga: 7 qadam (rasmlar bilan)
Video: FARZANDINGIZGA BU RANGDAGI OYINCHOQNI ASLO OLMANG 2024, Iyul
Anonim
Yana bir MIDI CV Box
Yana bir MIDI CV Box

Yana bir MIDI -rezyume qutisi - bu mening loyiham, Korg MS10 eshigimni taqillatib, studiyamda bo'lib o'tdi. O'rnatish MIDI -da barcha asboblarni avtomatlashtirish va sinxronlashtirish bilan bog'liq bo'lib, men MS10 -ni sotib olganimda birinchi nazoratni qanday amalga oshirish kerak edi.

Korg MS20/10 MIDI -ni amalga oshirish uchun eng oson sintez emas: birinchi navbatda, ular okt/V (oktavaga 1V) o'rniga Hz/V boshqaruviga (nazorat kuchlanish va yozuv chastotasi o'rtasidagi chiziqli korrelyatsiya) tayanadi; ikkinchidan, eslatmani ishga tushirish uchun siz salbiy eshik signalini yuborishingiz va +5 V signalini (V-trig) emas, balki erga qisqa kirishni (S-Trig) yuborishingiz kerak.

Hozirgi vaqtda bunday asboblarni boshqarish uchun har xil tijorat echimlari mavjud (masalan, Arturia Beatstep Pro, Korg SQ-1, Kenton Solo), lekin men arzon pichoqman va hatto 100 evro ham "eshitilmaydigan" qurilma uchun juda ko'p:).

Mana, mana: sizga MIDI-dan oldingi sintezning balandligi, darvozasi, tezligi va uzilish chastotasini tashqi MIDI tekshirgichi (klaviatura, DAW, ketma-ketlik yoki boshqalar) bilan boshqarish/avtomatlashtirish uchun qanday qilib byudjetni past byudjetdan CV qutisiga qurishni ko'rsatib beraman..

"Yangi MS20 mini haqida nima deyish mumkin?"

Deyarli hamma biladi, yangi MS20 aslida MIDI -ga tayyor: 5 qutbli MIDI ulagichi bilan va USB ulagichli IN/OUT.

"Shunday qilib, agar menda MS20 mini bo'lsa, bu narsa befoyda!"

Xo'sh, yo'q. MS20 mini faqat yoqish/o'chirish xabarlarini taniydi va klaviatura tezlikni sezmaydi. MS10/20 vintage yoki mini klaviatura yordamida buni bartaraf etishning iloji yo'q, lekin midi qutisi va tezlikka sezgir klaviatura bilan siz oltin rangga egasiz. Bundan tashqari, MIDI qutisi yordamida siz filtrni o'chirishni (yoki kuchlanishni boshqaradigan boshqa parametrlarni) avtomatlashtirishingiz yoki uni MIDI tezligi to'g'risidagi kiruvchi yozuv bilan modulyatsiya qilishingiz mumkin. Shunga qaramay, MS20 mini -ning yagona MIDI kanali 1 -kanal.

"Agar menda Oct/V synth bo'lsa nima bo'ladi?"

Muammo yo'q! Men yozgan kod Oct/V sintezatorlari bilan mos keladi (tekshirilmagan, lekin ishonchim komilki, bu qutidan tashqarida ishlaydi;)).

1 -qadam: !! Ogohlantirish - Ogohlantirishdan voz kechish !

Sizning uskunangiz juda qimmatli va testlarni o'tkazish uchun ishlatilmasligi kerak.

Elektr bilan o'yinchoqlar sizning qurilmangizga jiddiy zarar etkazishi yoki o'zingizga zarar etkazishi mumkin.

Men sizning ko'rsatmangizda aytilgan har qanday dasturiy ta'minot, sxemalar, ma'lumotlar yoki havolalar tufayli sizning uskunangiz/uskuna yoki hatto sizga etkazilgan zarar uchun javobgar bo'lolmayman.

Sizga ogohlantirildi!

2 -qadam: uskunani muhandislik

Arduino bunday loyihalar bilan ishlashda yordam beradi. Deyarli har bir umumiy vazifani bajaradigan katta Hamjamiyat va juda yaxshi kutubxonalarning mavjudligi uni to'g'ri tanlovga aylantiradi. Bu erda boshqaruv paneli MIDI ma'lumotlarini o'qiy oladigan va haydovchiga tegishli kuchlanishni yuboradigan qilib dasturlashtirilgan bo'ladi:

- VCOni raqamli -analogli konvertor (DAC) orqali haydash uchun pwm chiqishini analog kuchlanishga aylantirish orqali.

- VCA -ni oddiy RC -filtr bilan haydash uchun pwm chiqishini filtrlash orqali tezlik

- Filtrni kesish chastotasi, VCF -ni oddiy RC -filtr bilan haydash uchun pwm chiqishini filtrlash orqali.

- V-trig holatida to'g'ridan-to'g'ri raqamli chiqish eshigi (oqim oqimini kamaytirish uchun chiqishi bilan ketma-ket 1Kohm qo'ying) yoki oddiy pnp tranzistorli raqamli chiqishdan (sxematik qadamga biriktirilgan sxemaga qarang)..

Arduino to'g'ridan -to'g'ri turg'un kuchlanishlarni chiqara olmaydi, lekin har xil davrli (PWM) 0/+5 V pulslar. Biz raqamli va analog konvertorlarga ehtiyoj sezmoqdamiz. RC filtrlari - bu men o'ylaydigan eng oson DAC. RC filtri kuchlanish nazorat qilinadigan kuchaytirgich va filtr (VCA va VCF) uchun etarli. RC filtrlari 20 gigagertsli chastotani (eng past eshitiladigan chastota) olib kelish uchun mo'ljallangan.

Men kam quvvatli polarizatsiyalanmagan kondansatkichlar bilan sinov o'tkazdim va eng yaxshi mos bo'lishi uchun 0,1uF sig'im bilan yakunladim. MS20 MKIIda yaxshi sinovdan o'tgan.

Afsuski, biz kuchlanish nazorat qilinadigan osilatorni (VCO) haydash uchun RC filtriga tayanolmaymiz, chunki u etarli darajada emas (Hz/V shkalasida, pastki uchida ikkita adiacend semitoni 0,02 V dan kam farq qiladi; V da) /oktan ikki adiasentli yarim tonna 0,083 V uchun farq qiladi); Buning uchun biz IC DAC (MPC4725) dan foydalanmoqchimiz.

Ma'lum chegaralar

Drayv kuchlanishini 5V (Arduino chiqish voltaji) bilan cheklab, 0 dan 5V gacha bo'lgan to'liq diapazon tezlik uchun yopiladi; chegara yarim qoplangan (-5V dan +5V gacha); VCO diapazoni qisman qamrab olingan, bunda 440 Hz A4 ga erishish uchun 8 V kuchlanish kerak bo'ladi. 5V chiqish chegarasi bilan biz osilatorni D4 chastotasiga qadar Hz/V ga qo'yamiz.

3 -qadam: Komponentlar ro'yxati

Komponentlar ro'yxati
Komponentlar ro'yxati
Komponentlar ro'yxati
Komponentlar ro'yxati
Komponentlar ro'yxati
Komponentlar ro'yxati

Sizga quyidagilar kerak:

1X Arduino UNO (yoki nano)

1X MPC4725 DAC kartasi

4X 1/8 "yoki 1/4" mono ulagichlar

1X MIDI ulagichi

1X 6N138 optokupl

1X 1N4148 diodi

1X 220 ohm 1/4 Vt qarshilik

1X 470 ohm 1/4 Vt qarshilik

1X 10K ohm 1/4 Vt qarshilik

4X 1K ohm 1/4 Vt qarshilik

2X 0,1 uF kondansatör

1X BC547 pnp tranzistorli (S-trig holatida)

1 ta ABS qutisi (kamida 55 x 70 x 100 mm)

… va, albatta, non taxtasi yoki perfboard, lehim temir, lehim simlari va kabellar (2 metr 28 AWG etarli bo'lishi kerak).

E'tibor bering, yuqoridagi rasmlarda mening prototipimda 100 uF elektrolitik qopqoq o'rnatilgan, lekin ular sig'im muddati tufayli juda sekin. 0,1uF sig'im to'g'ri tanlovdir.

Men arduino -ni quvvat bilan ta'minlash uchun qo'shimcha ulagichdan foydalandim; to'g'ridan -to'g'ri o'rnatilgan mini USB ulagichi orqali mikrokontrollerni sharbatlashning hojati yo'q.

4 -qadam: ulanishlar/sxemalar

Ulanishlar/sxemalar
Ulanishlar/sxemalar
Ulanishlar/sxemalar
Ulanishlar/sxemalar
Ulanishlar/sxemalar
Ulanishlar/sxemalar

MIDI IN

MIDI IN sxemasi oddiy va tarmoqda yaxshi tasvirlangan. Misol uchun, Amanda Gassey tomonidan MIDI va Arduino -da ko'rsatiladigan BU zo'r ko'rsatmalarni oling. Men bu borada n -chi sxemani tuzdim.

E'tibor bering, men MIDI IN sxemasiga kalitni qo'shdim (1 -kalit): bu Arduino -ga yangi eskizni yuklashda kerak, chunki opto kiruvchi midi -xabarlarsiz ham RX liniyasiga xalaqit beradi. Eskizni yuklashdan oldin siz kalitni ochishingiz kerak, aks holda IDE yangi eskizni yuklay olmaydi.

Oxir -oqibat, ketma -ket dasturiy aloqani ishlatish uchun eskizni o'zgartirishingiz mumkin.

DAC, RC filtri, sintezator

DAC, RC filtrlari va Synth uchun ulanish (qadam, eshik va tezlik) yuqoridagi diagrammada ko'rsatilgan. Men ma'lumot olish uchun Korg MS20 patch panelini oldim, lekin men hamma narsani MS10 da sinab ko'rdim. VVA "boshlang'ich daromad" nuqtasiga tezlik rezyumeni to'g'ridan -to'g'ri ulanishi hech qanday ta'sir ko'rsatmaydi (men bu masalani batafsilroq ko'rib chiqishim kerak), lekin agar siz uni "Total" tuzatish nuqtasiga ulasangiz va umumiy tashqi idishlar ko'tarilsa (MG/T. EXT)), siz nota tezligining funktsiyasi sifatida ohangning yaxshi o'zgarishini eshitasiz.

Mening sxemalarim (va mening prototipim ham) DAC chiqishida joriy cheklovli rezistordan foydalanmaydi, lekin sizning davralaringizga uzoq umr ko'rish uchun ularni joylashtirish har doim yaxshi fikr. 220 ohmli rezistor etarli bo'ladi.

E'tibor bering, 100 UF dan yuqori bo'lgan sxemalarda elektrolitik qopqoqlar ko'rsatilgan, lekin ular sig'imning zaryadlanish muddati tufayli juda sekin. Polarizatsiyalanmagan 0,1uF qopqoqlari to'g'ri tanlovdir.

Darvozadan chiqish

Agar siz V-Trig (kuchlanish tetiği) signallari bilan mos keladigan sinxronni ketma-ket o'rnatmoqchi bo'lsangiz, oqim drenajini kamaytirish uchun 1k ohmli qarshilik etarli bo'ladi; Agar S-Trig (switch trigger) sinxronlash bo'lsa, siz oddiy PNP kalit sxemasidan foydalanishingiz mumkin (biriktirilgan sxemaga qarang).

5 -qadam: Dasturiy ta'minot

Dasturiy ta'minot
Dasturiy ta'minot

Men eskizni iloji boricha aniq va "o'qiladigan" qilib qo'yishga harakat qildim.

Men oddiy kalkulyator varaqasida ishladim, bu erda kuchlanish Vs Note# egri chizig'ini olish va to'g'ridan -to'g'ri mikrokontroldagi tenglamani ishlatish uchun topdim. Tenglama yuqoridagi grafikda ko'rsatilgan. Men C2 -ni Arp/Korg -ga mos keladigan kuchlanish Vs yozuvlari munosabatini olish uchun mos yozuv sifatida ishlatardim (C0 - 0.25V, C1 - 0.5V, C2 - 1V, C3 - 2V, C4 - 4V, C5 - 8V va boshqalar).

Yaxshi sozlash uchun o'yinchoqlar uchun o'zgaruvchini aniqlashim kerak edi … to'g'ri qiymatlarni topishga vaqt ajrating. Tyuner kerak.

Chiqish kuchlanishining pasayishini kamaytirish uchun taymer/taymerning pwm chastotasini oshirmoqchimiz (kod qatori kabi oson).

Kodni kiruvchi baytlarga javob berishini ta'minlash uchun kod asosan qayta qo'ng'iroq qilish funktsiyalariga tayanadi.

Sizga Sparkfun "Adafruit_MCP4725.h" va qirq yetti effekt/Fransua Bestning "MIDI.h" kutubxonalarini kompilyatsiya qilish kerak! (Bu odamlarga katta rahmat: ularning harakatisiz bu loyiha hech qachon amalga oshmaydi!).

Menimcha, sizning kompyuteringizda Arduino IDE tayyor va siz Arduino kartasiga eskizni qanday yuklashni bilasiz.

Men haqiqiy hayotda koder emasman, shuning uchun eskizni yaxshiroq yozish mumkin. Men takliflarga ochiqman (har doim koderning kodiga qarab biror narsa o'rganaman;))

Qo'shimcha izohlar quyidagi kodda yozilgan. Ikkita kutubxonani o'rnating, IDE -dagi biriktirilgan kodni oching, kartani ulang, taxta turini tanlang va yuklang.

6 -qadam: Muammolarni bartaraf etish

Loyiha past darajada bo'lsa ham, noto'g'ri bo'lishi mumkin bo'lgan juda ko'p narsalar mavjud. Agar siz o'zingizning MIDI -dan CV -ni yaratishga urinayotganda muammolarga duch kelsangiz, quyidagi amallarni bajaring.

1. Arduino MIDI xabarlarini to'g'ri qabul qilishiga ishonch hosil qiling

Klaviatura yoki DAW yoki Sequencer MIDI xabarlarini chiqaradigan chiqish kanalini tekshiring. Arduino sukut bo'yicha 1 -kanalni tinglaydi. "TEST_MIDI_IN.ino" ni yuklang, kiruvchi notON xabarini o'qing.

2. O'zingizning simlaringizni ikki marta tekshiring

… yoki undan ham yaxshiroq: ularni uch marta tekshiring! Buning uchun vaqt ajrating.

3. DAC manzilini va chiqishini tekshiring

DAC eskizda men ko'rsatgan manzildan boshqa ma'lumotlarni olish uchun o'rnatilishi mumkin. "I2C_scanner.ino" ni ishga tushirish orqali manzilni tekshiring. Agar "hech qanday qurilma topilmadi" xatosi ro'y bersa, DAC simlarini tekshiring (SDA va SCL kirishlari turli Arduino platalarida farq qiladi!). Agar sizda osiloskop bo'lsa (hatto 15 evroli raqamli osiloskoplar ham yaxshi … va o'yinchoq bilan o'ynash juda yaxshi!), Siz DAC kutubxonasiga o'rnatilgan uchburchakli generator misolini yuklash orqali DAC chiqishini tekshirishingiz mumkin.

Esda tutingki, arduino kartangizning RX kirishiga optokupl ulanganda siz yangi eskizni yuklay olmaysiz !! RX pinidan oldin kalitni joylashtiring (bu oddiy o'tish moslamasi bo'lishi mumkin).

Ushbu test eskizlarining aksariyati meniki emas yoki hech bo'lmaganda mavjud onlayn materiallarga asoslangan.

Bu gap menga mos kelmayapti !?

Bu haqiqiy muammo emas: Hz/V boshqaruvi uchun olingan tenglama "ideal" dir. Ideal xatti -harakatlardan biroz chetga chiqish, siz etkazib berayotgan 5.000V bo'lmagan +5V dan, DAC va asbobning o'zidan kelib chiqishi mumkin. Muammoni hal qilish uchun siz synth tune/nozik sozlash potentsiometrini va "voila" ni mukammal sozlangan MIDI boshqaruvini ishlatishingiz kerak;)

7 -qadam: Foydali havolalar

uz.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

Tavsiya: