Mundarija:

Arpeggiing sintezatori (chivin I): 6 qadam
Arpeggiing sintezatori (chivin I): 6 qadam

Video: Arpeggiing sintezatori (chivin I): 6 qadam

Video: Arpeggiing sintezatori (chivin I): 6 qadam
Video: Самый безумный хаос до сих пор 2024, Noyabr
Anonim
Arpejli sintezator (chivin I)
Arpejli sintezator (chivin I)

Mosquito I - bu Arduino Nano va Mozzi tovush sintezi kutubxonasidan foydalanadigan kichik arpejli sintezator. U yigirma sakkiz bosqichli ketma-ketlikni o'ynashi mumkin, lekin siz xohlaganingizcha ko'p shaxsiy ketma-ketlikni qo'shishingiz mumkin. O'rnatish nisbatan sodda va ko'p qismlarni talab qilmaydi.

Ta'minot:

  • Arduino Nano (yoki har qanday Arduino haqiqatan ham ishlashi kerak)
  • 5 ta potentsiometr (10K chiziqli)
  • 2 ta tugma
  • 1 ta LED
  • 1 ta rezistor (330 ohm)
  • 2 ta rezistor (1K)
  • 1 ta rezistor (2K)
  • 1 ta elektrolitik kondansatkich (100 uF)
  • 1 ta seramika kondansatkich (33 nF)
  • 1 ta stereo uyasi
  • Ulanish simlari
  • Non paneli

1 -qadam: Arduino -ni sozlash

Arduino -ni sozlash
Arduino -ni sozlash
Arduino -ni sozlash
Arduino -ni sozlash

Birinchidan, Nano -ni non paneliga qo'ying va o'z kuchimizni o'rnating:

  1. Nonni non taxtasiga joylashtiring. Yuqoridagi rasmda ko'rsatilgandek joylashtiring. U taxtaning markaziy kanalini bosib o'tishi kerak. Siz uni panelning bir chetiga, USB porti shu tomonga qaragan holda joylashtirishni xohlaysiz. Shunday qilib, biz uni ulashda kabel to'siq bo'lolmaydi. Agar siz Uno yoki Mega kabi kattaroq Arduino -dan foydalanayotgan bo'lsangiz, albatta uni non paneliga o'rnatmaysiz.
  2. Quvvat relslarini Arduino -ga ulang. Non panelidagi musbat (qizil) relslardan birini Arduino 5V piniga simli yoki o'tish simlari yordamida ulang. Keyin salbiy (ko'k) relslardan birini Nano GND pinlaridan biriga ulang.
  3. Quvvat relslarini bir -biriga ulang. Non taxtasining har ikki tomonidagi relslar bo'ylab quvvat olish uchun, bir tomondan musbat relsdan, ikkinchi tomondan musbat relsga sim o'tkazib, taxtaning har ikki tarafidagi relslarni bir -biriga ulang. Buni manfiy chiziqlar bilan takrorlang.

2 -qadam: boshqaruv elementlarini qo'shish

Boshqaruv elementlarini qo'shish
Boshqaruv elementlarini qo'shish

Mosquito I boshqaruv uchun beshta potansiyometr va ikkita tugmachani ishlatadi.

Potentsiometrlar:

  1. Idishlarni non taxtasiga joylashtiring. Idishlarni har bir pin o'z qatorida bo'lishi uchun joylashtiring.
  2. Idishlarni elektr relslariga ulang. Har bir idishning chap pinini (agar siz tugmachaga qarasangiz) non taxtasidagi manfiy relslardan biriga ulang. Har bir qozonning o'ng tomonidagi pinni non taxtasining ijobiy relslaridan biriga ulang.
  3. Idishlarni Arduino -ga ulang. Har bir qozonning markaziy pinini Arduino analog pinlaridan biriga ulang. Birinchi qozonning markaziy pimi A0 ga, ikkinchisi A1 ga va hokazo oxirgi qozon A4 ga ulanadi.

Tugmalar:

  1. Tugmalarni non paneliga qo'ying. Ikkita tugmachani non paneliga joylashtiring, shunda ular markaziy kanal bo'ylab harakatlanadi.
  2. Ijobiy tomonlarni bog'lang. Non taxtasining bir tomonida, tugmachaning pinlaridan birini musbat relsga ulang.
  3. Salbiy tomonlarni ulang. 1K rezistorlardan birini non taxtasiga joylashtiring, shunda uning bir uchi tugmachaning ishlatilmagan piniga, rezistorning boshqa tomoni esa manfiy relsga ulanadi.
  4. Arduino -ga ulanish tugmasi. Tugmani manfiy relsga D2 piniga bog'laydigan qatorda sim o'tkazing. Boshqa tugma bilan ham xuddi shunday qiling, lekin uni D3 ga ulang.

3 -qadam: Chiqishlarni qo'shish

Chiqishlarni qo'shish
Chiqishlarni qo'shish

Biz har bir ketma -ketlikning birinchi bosqichida 9 -pindan audio chiqaramiz, shuningdek LEDni yondiramiz. Buning uchun uskunani qanday sozlash kerak.

LED

  1. LEDni non panelidagi bo'sh joyga qo'ying.
  2. LEDning salbiy (qisqa) oyog'ini manfiy rayga ulang.
  3. Oqim cheklovli rezistorni joylashtiring. 330 ohmli rezistorning bir tomonini LEDning musbat (uzun) oyog'iga ulang. Rezistorning boshqa tomonini Arduino D4 piniga ulang.

Ovoz chiqishi

  1. RC tarmog'ini joylashtiring. Arduino -dan chiqish signali 9 -pindan keladi, lekin signal ba'zi dinamiklarga qaraganda ancha issiqroq bo'lishi mumkin. Buni chiziq darajasiga yaqinroq qilish uchun men RC tarmog'ini qo'shdim (Notes & Volts dizayniga asoslangan). 33nF va 100uF kondansatörlerini, 2K qarshilik bilan birga, rasmda/sxemada ko'rsatilgandek joylashtiring. Elektrolitik 100uF kondansatörü to'g'ri kutupluluğa ulanganligiga ishonch hosil qiling (musbat/uzun oyoq Arduino 9 -pinli va manfiy/qisqa oyoq ulagichga ulangan).
  2. Ovoz raz'emining salbiy tomonini erga ulang. Ovoz raz'emining ulanishi ishlatilayotgan turiga qarab biroz farq qiladi, lekin ularning barchasi bir xil ishlaydi. Jekning yengini erga ulashimiz kerak. Bu ba'zida minus belgisi bilan belgilanadi yoki "yeng", "uzuk" yoki "gnd" deb belgilanadi. Agar audio raz'emda hech qanday yorliq bo'lmasa, siz ma'lumot varag'i bilan tanishishingiz yoki uyani yaxshilab tekshirib ko'rishingiz kerak bo'ladi va siz rozetkaning bilaguzuk yoki tashqi halqasiga qaysi pin ulanganligini aniqlashingiz mumkin.
  3. Ovoz ulagichining ijobiy tomonini 100uF kondansatörünün salbiy tomoniga ulang. Bizning audio signalimiz endi Arduino -ning 9 -pinidan RC tarmog'i orqali oqadi va 100uF kondansatörünün salbiy tomondan chiqadi. Biz buni audio uyamizning ijobiy tomoniga bog'laymiz. Bu odatda ortiqcha belgisi bilan belgilanadi yoki "uchi" deb belgilanishi mumkin. Shunga qaramay, agar u belgilanmagan bo'lsa, qaysi pin uyaning uchiga ulanishini aniqlash uchun uni tekshirish kerak bo'ladi. Bundan tashqari, agar siz stereo uyadan foydalansangiz, L uchi va R uchi ulanishi bo'lishi mumkin. Biz mono signalni chiqarganimiz uchun, siz faqat ulanishlardan biriga ulanishingiz mumkin.

Muhim: Agar siz ovoz juda jim ekanligini ko'rsangiz, 1 -bosqichda RC tarmog'ini yo'q qilishingiz va Arduino -ning 9 -pinidan to'g'ridan -to'g'ri audioga ulanishingiz mumkin. Agar siz ovoz balandligi tugmachasi bo'lgan tashqi kompyuter karnaylari kabi oldindan kuchaytirgich bilan biror narsaga ulansangiz, bu yaxshi bo'lishi mumkin, lekin men buni minigarnituralar, quloqchinlar yoki karnayga to'g'ridan-to'g'ri ulash kabi narsalarni tavsiya qilmayman. Agar siz RC tarmog'ini o'chirishga qaror qilsangiz, men Arduino -ni ishga tushirishdan oldin karnaylarning ovozini oxirigacha o'chirishni va keyin karnaylarni o'chirib yubormaslik uchun ovoz balandligini asta -sekin oshirishni taklif qilaman.

Hammasi sozlanganidan so'ng, barcha ulanishlar to'g'ri ko'rinishini va yuqoridagi rasm va sxemaga mos kelishini ikki marta tekshiring

4 -qadam: Kodni yuklash

Endi uskuna tayyor bo'lgach, biz dasturiy ta'minot bilan shug'ullanishga tayyormiz:

  1. Arduino IDE -ni ishga tushiring. Kompyuteringizda Arduino IDE -ni ishga tushiring (agar u bo'lmasa, uni https://www.arduino.cc/en/software dan yuklab olishingiz mumkin).
  2. Mozzi kutubxonasini yuklab oling. Mozzi kutubxonasi bizga Arduino -dan sintezator sifatida foydalanish imkonini beradi. Ushbu kutubxonani IDE -ga kiritish uchun Mozzi github sahifasiga o'ting https://sensorium.github.io/Mozzi/download/. Yashil "Kod" tugmachasini bosing va ZIP -ni yuklashni tanlang.
  3. Zip faylidan Mozzi kutubxonasini o'rnating. Arduino IDE-da Sketch-> Kutubxonani qo'shish-> ZIP kutubxonasini qo'shish-ga o'ting … Qo'shish uchun yuklab olingan zip-faylga o'ting. Endi siz eskiz-> Kutubxonani qo'shish bo'limi ostida Mozzini ko'rishingiz kerak.
  4. Mosquito I Arduino kodini yuklab oling. Buni mening github saytimdan olishingiz mumkin https://github.com/analogsketchbook/mosquito_one. (E'tibor bering, agar siz simlar uchun ma'lumot kerak bo'lsa, sxemalar u erda ham mavjud.
  5. Arduino -ni kompyuterga ulang va kodni yuklang.

5 -qadam: atrofga xabar yuborish

Bo'ldi shu. Siz karnaylarni audio raz'emga ulashingiz va o'sha nozik Nano -dan arpejlangan sintezning yoqimli ovozini eshitishingiz kerak! Agar siz hech narsa eshitmasangiz, boshlang'ich qiymatlarni olishingizga ishonch hosil qilish uchun barcha qozonlarning tugmachalarini bir joyga to'plashga harakat qiling.

Bu erda boshqaruv elementlari nima qiladi:

Idishlar:

Baho: Bu sekvenserning qanchalik tez ijro etilishini nazorat qiladi. Uni o'chirish diskret yozuvlarni ketma -ket ijro etadi. Yuqoriga burilish notalarni bir -biriga surtib, butunlay yangi to'lqin shakllarini yaratadi.

Legato: Ikkinchi qozon legato yoki notaning uzunligini boshqaradi. Uni chapga ko'proq burish qisqa, stikatto yozuvlarni, o'ngga burish esa uzunroq yozuvlarni keltirib chiqaradi.

Pitch: Bu ketma -ketlik uchun asosiy qadamni o'rnatadi. Pitch nazorati MIDI qiymatlarini o'rnatadi, shuning uchun u pitchni doimiy siljish o'rniga semitonessda oshiradi/kamaytiradi.

Bosqich: bu tugmachani o'ngga burish nozik bosqich effektini beradi. Texnik nuqtai nazardan, bu Mosquito I -dagi ikkita osilatorning biroz uzilishiga olib keladi, bu esa bosqichma -bosqich sabab bo'ladi. Biroq, bu maydonni kuzatib borish emas, shuning uchun bosqichma -bosqich ta'sir pastroq notalarda ko'proq seziladi.

Filtr: Bu tugma past o'tkazgichli filtrning kesish chastotasini boshqaradi. Uni chapga burish yuqori chastotalarni o'chiradi, bu esa sustroq ovozni chiqaradi, o'ngga burish esa yorqinroq ovoz chiqaradi.

Tugmalar:

Mosquito sukut bo'yicha o'ynashi mumkin bo'lgan yigirmadan ortiq turli ketma -ketlikka ega. Tugmalar sizga qaysi ketma -ketlikni tanlashni tanlash imkonini beradi. Bitta tugma sizni ketma -ketliklar ro'yxatiga ko'taradi, ikkinchisi esa ro'yxatga tushadi.

6 -qadam: sozlash

Moslashtirish
Moslashtirish

Men bir nechta standart ketma -ketlikni qo'shdim, asosan turli xil o'lchovlar, lekin siz ijro etiladigan yozuvlar ketma -ketligini o'zgartirish, yangilarini qo'shish yoki ketma -ketlikdagi yozuvlar sonini o'zgartirish uchun kodni juda oson sozlashingiz mumkin. Quyida, agar siz uni sozlashni xohlasangiz, bu qanday amalga oshirilayotgani haqida batafsil ma'lumot berilgan.

Eslatmalarni mavjud ketma -ketlikda o'zgartirish

Tartiblar NOTES deb nomlangan qatorlar qatorida saqlanadi. Har bir eslatma MIDI eslatma qiymati sifatida saqlanadi, shuning uchun agar siz eslatmalarni ma'lum bir ketma -ketlikda o'zgartirmoqchi bo'lsangiz, o'sha ketma -ketlik uchun MIDI eslatma raqamlarini o'zgartiring. Odatiy sozlash - har bir ketma -ketlikda 8 ta qadamni bajarish, siz ketma -ket 8 ta MIDI qiymatiga ega bo'lishingiz mumkin (agar siz har xil ketma -ketlik uzunligiga ega bo'lishni xohlasangiz, pastga qarang).

Ta'kidlash joizki, qadam tugmasi NOTES qatorida ko'rsatilgan MIDI qiymatlariga eslatmani qo'shib qo'yadi. Tugma o'rtada bo'lsa, u qatorda ko'rsatilgan MIDI yozuvlarini o'ynaydi, lekin siz tugmachani aylantirganingizda, u chalayotgan yozuvlarga yarim ton qo'shadi yoki olib tashlaydi.

Yangi ketma -ketliklarni qo'shish

Ro'yxat oxiriga yangi 8 ta eslatmani qo'shib, NOTES qatoriga yangi ketma-ketliklar qo'shishingiz mumkin. Agar shunday qilsangiz, siz numSequences o'zgaruvchisining qiymatini yangi ketma -ketlik soniga mos ravishda o'zgartirishingiz kerak bo'ladi. Masalan, NOTES qatorida sukut bo'yicha 21 ketma -ketlik bor, shuning uchun numSequences o'zgaruvchisi 21 ga o'rnatiladi. Agar bitta yangi ketma -ketlikni qo'shsangiz, numSequences o'zgaruvchisini 22 ga o'zgartirishingiz kerak bo'ladi.

Siz xohlagancha yangi ketma -ketlikni qo'shishingiz mumkin.

Tartib uzunligini o'zgartirish

Agar siz ketma-ketliklar uzunligini o'zgartirmoqchi bo'lsangiz (agar siz 4 bosqichli yoki 16 bosqichli ketma-ketlikni aytmoqchi bo'lsangiz), buni qilishingiz mumkin, lekin yagona ogohlantirish shundaki, barcha ketma-ketliklar bir xil uzunlikda bo'lishi kerak. Shuningdek, numNotes o'zgaruvchisini ketma -ketligingiz uzunligiga mos keladigan qilib sozlashingiz kerak bo'ladi.

Boshqa o'zgarishlar

Bu o'quv qo'llanmasidan tashqarida bo'lgan to'lqin shakli turlarini almashtirish, filtr sozlamalari/qiymatlari kabi boshqa bir qancha sozlashlar mavjud. Mozzi kodini aniqlash dastlab biroz qiyin bo'lishi mumkin, lekin kodning turli qismlari nima qilayotganini ko'rsatish uchun kodni iloji boricha hujjatlashtirishga harakat qildim.

Mozzi kodining bir nechta asosiy qismlari bor, ular juda aniq ishlatilgan va men sizga ularni nima uchun ishlatilgani haqida tushuncha berish uchun quyida sanab o'tdim:

  • setup () - Agar siz Arduinos uchun bu funktsiyani bilishdan oldin dasturlashtirilgan bo'lsangiz va u Mozzi -da deyarli bir xil ishlatilgan bo'lsa. Biz asosan osilatorlar, filtrlar va boshqalar uchun standart sozlamalarni o'rnatish uchun foydalanamiz.
  • updateControl () - Bu erda Mozzi kodining sher ulushi o'z ishini bajaradi. Bu erda biz pot va tugma qiymatlarini o'qiymiz, bu qiymatlarni xaritaga kiritamiz va ularni sintezatorga o'tkazamiz va bu erda ketma -ketlik amalga oshiriladi.
  • updateAudio () - Bu Mozzi kutubxonasining yakuniy chiqishi. Odatda bu erda kod juda kichik bo'lib qoladi, chunki bu funktsiyani Mozzi barcha soat aylanishlarini maksimal darajada oshirish uchun ishlatadi. Chivin kodida ko'rib turganingizdek, bu biroz sirli bo'lishi mumkin, lekin biz asosan turli to'lqin shakllarimizni birlashtirish/ko'paytirish va keyin ularni ma'lum bir raqamlar diapazoniga moslashtirish uchun bitshifting qilamiz. Bu funktsiyani juda yengil ushlab turish (Serial qo'ng'iroqlar yoki o'qish pinlari emas) va ko'p narsalarni controlUpdate () funktsiyasiga qo'yish yaxshidir. Mozzi hujjatlari bu haqda batafsil ma'lumot beradi.

Tavsiya: