Mündəricat:

Arpeggiating Synthesizer (Mosquito I): 6 addım
Arpeggiating Synthesizer (Mosquito I): 6 addım

Video: Arpeggiating Synthesizer (Mosquito I): 6 addım

Video: Arpeggiating Synthesizer (Mosquito I): 6 addım
Video: Top 10 Most Expensive Synthesizers In The World 2024, Iyul
Anonim
Arpeggiating Sintezator (Ağcaqanad I)
Arpeggiating Sintezator (Ağcaqanad I)

Mosquito I, Arduino Nano və Mozzi səs sintezi kitabxanasından istifadə edən kiçik bir arpeggiating sintezatorudur. İyirmi 8 addımlı ardıcıllıq oynaya bilər, ancaq istədiyiniz qədər çox xüsusi ardıcıllıq əlavə edə bilərsiniz. Qurmaq nisbətən asandır və çoxlu hissələrə ehtiyac yoxdur.

Təchizat:

  • Arduino Nano (və ya hər hansı bir Arduino həqiqətən işləməlidir)
  • 5 ea potansiyometr (10K xətti)
  • 2 ea Push düymələri
  • 1 ədəd LED
  • 1 ea rezistor (330 ohm)
  • 2 ədəd rezistor (1K)
  • 1 ədəd rezistor (2K)
  • 1 ea Elektrolitik Kondansatör (100 uF)
  • 1 ea Seramik Kondansatör (33 nF)
  • 1 ədəd Stereo Jack
  • Bağlama teli
  • Çörək lövhəsi

Addım 1: Arduino qurmaq

Arduino qurmaq
Arduino qurmaq
Arduino qurmaq
Arduino qurmaq

Əvvəlcə çörək taxtasına Nano qoyaq və gücümüzü quraq:

  1. Nanonu çörək taxtasına qoyun. Yuxarıdakı şəkildə göstərildiyi kimi yerləşdirin. Çörək taxtasının mərkəzi kanalına keçməlidir. USB portu o tərəfə baxaraq çörək taxtasının bir ucunda yerləşməsini istəyəcəksiniz. Bu şəkildə kabel bağladığımız zaman mane olmayacaq. Uno və ya Mega kimi daha böyük bir Arduino istifadə edirsinizsə, əlbəttə ki, çörək taxtasına quraşdırmayacaqsınız.
  2. Elektrik raylarını Arduinoya bağlayın. Çörək taxtanızın müsbət (qırmızı) raylarından birini tel və ya tullanan tellərdən istifadə edərək Arduino 5V pininə qoşun. Sonra mənfi (mavi) raylardan birini Nano GND pinlərindən birinə bağlayın.
  3. Elektrik raylarını bir -birinə bağlayın. Çörək bişirmə panelinin hər iki tərəfindəki raylar boyunca güc əldə etmək üçün, bir tərəfdən pozitiv relsdən bir tərəfdən digər tərəfdən pozitiv rels çəkərək, taxtanın hər iki tərəfindəki rayları bir -birinə bağlayın. Bunu mənfi çubuqlarla təkrarlayın.

Addım 2: Nəzarətçilərin əlavə edilməsi

Nəzarətçilərin əlavə edilməsi
Nəzarətçilərin əlavə edilməsi

Mosquito I nəzarət üçün beş potensiometr və iki düymədən istifadə edir.

Potensialiometrlər:

  1. Qabları çörək qabına qoyun. Tencereleri elə yerləşdirin ki, hər pin öz sırasındadır.
  2. Qazanları elektrik raylarına bağlayın. Hər qazanın sol pinini (düymə tərəfinə baxırsınızsa) çörək taxtasındakı mənfi raylardan birinə bağlayın. Hər bir qazanın sağ tərəfindəki pimi çörək bişirmə panelinin müsbət raylarından birinə bağlayın.
  3. Qabları Arduinoya bağlayın. Hər bir qazanın mərkəzi pinini Arduino -dakı analoq pinlərdən birinə bağlayın. Birinci qazanın mərkəzi pimi A0 -a, ikinci qazan A1 -ə bağlanır və son qazan A4 -ə qoşulur.

Düymələr:

  1. Düymələri çörək taxtasına qoyun. İki düyməni çörək taxtasının üstünə qoyun ki, mərkəzi kanala keçsinlər.
  2. Müsbət tərəfləri birləşdirin. Çörək taxtasının bir tərəfində, düymənin sancaqlarından birini pozitiv raya bağlayın.
  3. Mənfi tərəfləri birləşdirin. 1K rezistorlardan birini çörək taxtasına yerləşdirin ki, bir ucu düymənin istifadə edilməmiş pininə, rezistorun digər tərəfi isə mənfi raya qoşulsun.
  4. Düyməni Arduinoya qoşun. Düyməni mənfi ray ilə D2 pininə bağlayan satırda bir tel çəkin. Digər düymə ilə eyni şeyi edin, ancaq D3 -ə qoşun.

Addım 3: Çıxışların əlavə edilməsi

Çıxışların əlavə edilməsi
Çıxışların əlavə edilməsi

Pin 9 -dan səs çıxarırıq və hər ardıcıllığın ilk addımında bir LED yanıb -sönürük. Bunun üçün aparatı necə quracağınız burada.

LED

  1. Çörək taxtasındakı boş bir yerə bir LED qoyun.
  2. LED -in mənfi (qısa) ayağını mənfi raya bağlayın.
  3. Cərəyanı məhdudlaşdıran bir rezistor qoyun. 330 ohm rezistorun bir tərəfini LED -in pozitiv (uzun) ayağına bağlayın. Rezistorun digər tərəfini Arduino D4 pininə bağlayın.

Audio Çıxış

  1. RC şəbəkəsini yerləşdirin. Arduino -dan çıxış siqnalı pin 9 -dan gəlir, lakin siqnal bəzi dinamiklərin idarə edə biləcəyindən bir qədər isti ola bilər. Xətt səviyyəsinə yaxın bir şeyə endirmək üçün bir RC şəbəkəsi əlavə etdim (Notes & Volts tərəfindən hazırlanmış bir dizayn əsasında). 33nF və 100uF kondansatörləri, 2K rezistoru ilə birlikdə şəkildə/sxemdə göstərildiyi kimi yerləşdirin. Elektrolitik 100uF kondansatörünün doğru polariteye bağlı olduğundan əmin olun (müsbət/uzun ayağın Arduino -da 9 -cu pinlə bağlanacağı və krikoya bağlı olan mənfi/qısa ayağın).
  2. Səs yuvasının mənfi tərəfini yerə bağlayın. Audio jak əlaqələri istifadə etdiyiniz növdən asılı olaraq bir qədər dəyişəcək, lakin ümumiyyətlə hamısı eyni işləyir. Krikonun qolunu yerə bağlamalıyıq. Bu bəzən mənfi simvolu ilə işarələnir və ya "qol", "üzük" və ya "gnd" olaraq etiketlənir. Audio jakınızda heç bir etiket yoxdursa, məlumat cədvəlinə müraciət etməlisiniz və ya kriko yaxından yoxlamalısınız və hansı pimin krikonun qoluna və ya xarici üzüyünə bağlı olduğunu müəyyən edə bilərsiniz.
  3. Səs yuvasının müsbət tərəfini 100uF kondansatörün mənfi tərəfinə bağlayın. Səs siqnalımız indi Arduinonun 9 -cu pinindən RC şəbəkəsindən axır və 100uF kondansatörün mənfi tərəfindən çıxır. Bunu audio jakımızın müsbət tərəfinə bağlayacağıq. Bu ümumiyyətlə bir artı işarəsi ilə işarələnir və ya "uc" olaraq etiketlənə bilər. Yenə də etiketlənməyibsə, krikonun ucuna hansı pinin bağlanacağını anlamaq üçün yoxlamanız lazım ola bilər. Ayrıca, bir stereo jak istifadə edirsinizsə, L ucu və R ucu bağlantısı ola bilər. Bir mono siqnal çıxardığımız üçün yalnız uc bağlantılarından birinə qoşula bilərsiniz.

Mühüm: Səsin çox səssiz olduğunu görürsünüzsə, 1 -ci addımda RC şəbəkəsini aradan qaldıra və Arduinonun pin 9 -dan birbaşa səsə qoşula bilərsiniz. Səsi bir səs düyməsinə sahib olduğunuz xarici kompüter dinamikləri kimi bir pre-amp ilə bir şeyə bağlayırsınızsa, bu yaxşı olar, amma qulaqlıq, qulaqlıq və ya birbaşa natiqə bağlamaq kimi şeylər üçün bunu məsləhət görməzdim. RC şəbəkəsini ləğv etmək qərarına gəlsəniz, Arduino -nu işə salmadan əvvəl dinamiklərinizin səsini tamamilə aşağıya çevirməyi və sonra dinamikləri söndürməmək üçün səsi tədricən artırmağı təklif edirəm.

Hər şeyi qurduqdan sonra, bütün əlaqələrin düzgün göründüyünü və yuxarıdakı şəklə və sxemə uyğun olduğunu bir daha yoxlayın

Addım 4: Kodu yükləyin

İndi bütün avadanlıqlar qurulduğundan, proqram tərəfini həll etməyə hazırıq:

  1. Arduino IDE -ni işə salın. Kompüterinizdə Arduino IDE -ni işə salın (yoxsa https://www.arduino.cc/en/software saytından yükləyə bilərsiniz).
  2. Mozzi kitabxanasını yükləyin. Mozzi kitabxanası, Arduinomuzu sintezator kimi istifadə etməyə imkan verən şeydir. Bu kitabxananı IDE -də əldə etmək üçün Mozzi github səhifəsinə keçin https://sensorium.github.io/Mozzi/download/. Yaşıl "Kod" düyməsini basın və Poçtu Yüklə seçin.
  3. Zip faylından Mozzi kitabxanasını quraşdırın. Arduino IDE-də, Sketch-> Kitabxanaya daxil et-> ZIP Kitabxanası əlavə edin … Əlavə etmək üçün yüklədiyiniz zip faylına gedin. İndi Sketch-> Kitabxana daxil et bölməsinin altında siyahıya salınmış Mozzi görməlisiniz.
  4. Mosquito I Arduino kodunu yükləyin. Bunu https://github.com/analogsketchbook/mosquito_one github saytımdan əldə edə bilərsiniz. (Qeyd edək ki, sxemlərə ehtiyacınız varsa, orada da mövcuddur.
  5. Arduino'yu kompüterə qoşun və kodu yükləyin.

Addım 5: Ətrafda mesajlaşma

Bu belədir. Dinamiklərinizi səs yuvasına bağlaya və o ittybitty Nanodan arpejli sintezin şirin səsini eşitməliyik! Əvvəlcə heç bir şey eşitmirsinizsə, layiqli başlanğıc dəyərləri aldığınızdan əmin olmaq üçün bütün qazanların düymələrini mərkəzləşdirməyə çalışın.

Nəzarətçilərin etdikləri budur:

Qazanlar:

Rate: Bu, sequencer -in nə qədər tez oynayacağını idarə edir. Söndürmək diskret qeydləri ardıcıllıqla oynayır. Yuxarıya döndərsəniz, notlar bir -birinə qarışar və tamamilə yeni dalğalar meydana gətirər.

Legato: İkinci qazan legato və ya not uzunluğunu idarə edir. Daha çox sola çevirmək qısa, stikatto notlar çıxarır, sağa çevirdikdə isə daha uzun notlar çıxarılır.

Pitch: Bu ardıcıllıq üçün əsas meydançanı təyin edir. Sahə nəzarəti MIDI dəyərlərini təyin edir, buna görə də fasilələrin davamlı dəyişməsi deyil, yarı tonda meydançanı artırır/azaldır.

Mərhələ: Bu düyməni sağa çevirmək incə mərhələli təsir göstərir. Texniki baxımdan bu, Mosquito I -dəki iki osilatörün bir az kəsilməsinə səbəb olur və bu da mərhələyə səbəb olur. Bununla birlikdə, meydança ilə izləmə deyil, buna görə mərhələli təsir, ehtimal ki, aşağı meydançalı notlarda daha çox nəzərə çarpır.

Filtr: Bu düymə aşağı keçid filtrinin kəsilmə tezliyini idarə edir. Sola çevirmək daha yüksək səsləri kəsir, daha səssiz səs çıxarır, sağa çevirdikdə isə daha parlaq bir səs çıxarır.

Düymələr:

Mosquito, standart olaraq oynaya biləcəyi iyirmidən çox fərqli ardıcıllığa malikdir. Düymələr hansı ardıcıllıqla oynanacağını seçməyə imkan verir. Bir düymə sizi ardıcıllıq siyahısına qaldırır, digəri isə siyahıya enir.

Addım 6: Fərdiləşdirmə

Fərdiləşdirmə
Fərdiləşdirmə

Bir çox standart ardıcıllıq əlavə etdim, əsasən fərqli tərəzilər var, ancaq ifa olunan notların ardıcıllığını dəyişdirmək, yeniləri əlavə etmək və ya ardıcıllıqla qeydlərin sayını dəyişdirmək üçün kodu olduqca asanlıqla düzəldə bilərsiniz. Aşağıda, bunu fərdiləşdirmək istəsəniz bunun necə edildiyinin təfərrüatları verilmişdir.

Qeydləri Mövcud Ardıcıllıqla Dəyişdirmək

Ardıcıllıqlar QEYDLƏR adlanan bir sıra massivdə saxlanılır. Hər bir qeyd MIDI qeyd dəyəri olaraq saxlanılır, buna görə qeydləri müəyyən bir ardıcıllıqla dəyişdirmək istəyirsinizsə, bu ardıcıllığın MIDI qeyd nömrələrini dəyişdirin. Varsayılan quraşdırma, ardıcıllıqla 8 addım oynamaqdır, buna görə bir ardıcıllıqla yalnız 8 MIDI dəyərinə sahib ola bilərsiniz (fərqli ardıcıllıq uzunluqlarına sahib olmaq istəyirsinizsə aşağıya baxın).

Diqqət yetirməli bir şey, meydança düyməsi, NOTES dizisində göstərilən MIDI dəyərlərinə bir qeyd ofset əlavə edir. Düymə ortalandıqda, serialda göstərilən MIDI qeydlərini səsləndirir, ancaq meydançanın düyməsini çevirdikdə çalınan notlara yarı ton əlavə edir və ya çıxarır.

Yeni ardıcıllıqların əlavə edilməsi

Sadəcə siyahının sonuna yeni 8 qeydli bir sıra əlavə edərək NOTES sırasına yeni ardıcıllıqlar əlavə edə bilərsiniz. Bunu etsəniz, yeni sıra ardıcıllığına uyğun olaraq numSequences dəyişəninin dəyərini də dəyişməlisiniz. Məsələn, QEYDLƏR serialında varsayılan olaraq 21 ardıcıllıq var, buna görə də numSequences dəyişəni 21 olaraq təyin olunur. Bir yeni ardıcıllıq əlavə etsəniz, numSequences dəyişənini 22 -yə dəyişməlisiniz.

İstədiyiniz qədər yeni ardıcıllıq əlavə edə bilərsiniz.

Ardıcıllıq uzunluğunun dəyişdirilməsi

Ardıcıllığınızın uzunluğunu dəyişdirmək istəyirsinizsə (4 və ya 16 addımlı bir ardıcıllıq demək istəyirsinizsə) bunu edə bilərsiniz, ancaq yeganə xəbərdarlıq bütün ardıcıllıqların eyni uzunluqda olmasıdır. NumNotes dəyişənini ardıcıllığınızın uzunluğuna uyğun olaraq təyin etməlisiniz.

Digər Dəyişikliklər

Bu təlimatın əhatə dairəsindən kənarda olan dalğa forması növlərinin dəyişdirilməsi, filtr parametrləri/dəyərləri kimi bir sıra digər fərdiləşdirmələr mövcuddur. Mozzi kodunu anlamaq əvvəlcə bir az çətin ola bilər, amma kodun müxtəlif hissələrinin nə etdiyini göstərmək üçün kodu mümkün qədər sənədləşdirməyə çalışdım.

Mozzi kodunun kifayət qədər spesifik istifadəsi olan bir neçə əsas hissəsi var və bunları sizə nə üçün istifadə edildiyi barədə fikir vermək üçün aşağıda sadaladım:

  • setup () - Bu funksiyanı tanımadan əvvəl Arduinos üçün proqramlaşdırmısınızsa və Mozzi -də eyni şəkildə istifadə olunur. Əsasən osilatörler, filtrlər və s.
  • updateControl () - Mozzi kodunun aslan payı öz işini görür. Pot və düymə dəyərlərini oxuduğumuz, xəritələndirdiyimiz və sintezatora daxil etmək üçün bu dəyərləri çevirdiyimiz yerlər və ardıcıllığın edildiyi yerdir.
  • updateAudio () - Bu Mozzi kitabxanasının son çıxışıdır. Tipik olaraq buradakı kod çox kiçikdir və arıqdır, çünki bu funksiya Mozzi tərəfindən bütün saat dövrlərini maksimum dərəcədə artırmaq üçün istifadə olunur. Sivrisinek kodunda gördüyünüz kimi, bir az sirrli ola bilər, amma biz, əsasən, müxtəlif dalğa formalarımızı birləşdirmək/çoxaltmaq və sonra müəyyən bir sıra aralığına uyğun bit dəyişdirməklə məşğul oluruq. Bu funksiyanı çox yüngül saxlamaq (Serial zənglər və ya oxumaq sancaqları deyil) və çox şeyin yerinə controlUpdate () funksiyasını qoymaq daha yaxşıdır. Mozzi sənədləri bunu daha ətraflı şəkildə izah edir.

Tövsiyə: