Mündəricat:
- Addım 1: Asılılıqlar
- Addım 2: Midi Giriş Dəyərlərini Konfiqurasiya edin
- Addım 3: Nümunələrlə Əlavə Qovluqlar əlavə edin
- Addım 4: Yeni Qovluqlarda Əlavə Nümunələr əlavə edin və Konfiqurasiya edin
- Addım 5: Number Pad Reference
Video: Raspberry Pi Baraban Maşını: 5 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Nümunə Sequencer, Raspberry Pi + Python vasitəsilə.
Sekvenser 4 polifoniyaya malikdir və istifadəçiyə real vaxtda dəyişə biləcəyi 6 fərqli ardıcıllığı saxlamağa və işarə etməyə imkan verir və fərqli nümunələr arasında dəyişmə qabiliyyətini dəstəkləyir.
Ssenarini həqiqətən hər hansı bir MIDI nəzarətçisi və səsləri ilə tamamilə işlək bir şəkildə yazdım. 18 fərqli səs bankından istifadə edirəm, hər biri 16 nümunədir, lakin bankları və nümunələri əlavə etmək və ya çıxarmaq asandır və çoxlu dəyişiklik tələb etmir. Hər hansı bir probleminiz varsa, mənə bir e -poçt göndərin: [email protected]
GitHub -da kodu tapın:
Zəhmət olmasa istifadə etdiyinizi və xüsusən də onunla video çəkdiyiniz zaman mənə bildirin!
Addım 1: Asılılıqlar
Bu proqram aşağıdakı Python Modullarını tələb edir:
mido
oyun oyunu
əsəbi
Midonun özü bir neçə asılılıq tələb etdiyi üçün Mido bəzi fəsadlar yaradır. Hamısının quraşdırıldığından əmin olmaq üçün Raspberry Pi -nin terminalına aşağıdakı əmrləri daxil edin ('$' işarəsi qoyulmadan) və hər şey yaxşı olacaq. Digər modullar normal olaraq quraşdırıla bilər.
$ sudo apt-get yeniləməsi
$ sudo apt-get install build-vacibdir
$ sudo apt-get libasound-dev və ya libasound2-dev quraşdırın
$ sudo apt-get libjack0 quraşdırın
$ sudo apt-get libjack-dev quraşdırın
$ sudo apt-get python-pip quraşdırın
$ sudo apt-get python-dev quraşdırın
$ sudo pip python-rtmidi quraşdırın
$ sudo pip mido quraşdırın
Addım 2: Midi Giriş Dəyərlərini Konfiqurasiya edin
Əsas Python Script daxilində 16 tam ədəddən ibarət olan noteList adlı bir sıra mövcuddur (xətt 165.) Bunlar nəzarətçimizin səsləri tetiklemek üçün Pi -yə göndərdiyi MIDI qeyd dəyərləridir. Hər bir midi nəzarətçi fərqlidir, buna görə də bir Akai LPD8 -ə sahib olmadığınız halda, çox güman ki, bu dəyərləri cihazınıza uyğun olaraq dəyişdirməlisiniz.
Github repo, bu məqsəd üçün xüsusi olaraq hazırlanan "midihelp.py" adlı başqa bir skript də ehtiva edir! Etdiyi şey, kompüterin tanıdığı ilk MIDI nəzarətçisindən giriş dəyərlərini konsola yazdırmaqdır. Etməyiniz lazım olan şey, bu dəyərlərin notList -ə daxil olanlardan fərqli olduğu təqdirdə dizidəki yerini dəyişdirməkdir.
Qeydlərin sırası, hər bir qovluq üçün hansı səs effektinin oynanıldığı ilə də əlaqədardır, buna görə də bunu unutmayın.
Addım 3: Nümunələrlə Əlavə Qovluqlar əlavə edin
Ssenari daxilindəki nümunə dəstləri, eyni qovluqdakı qovluqlar vasitəsilə saxlanılır, 808 dəstinin GitHub faylında necə olduğunu dəqiq qurun. Bu şəkildə asanlıqla təşkil edilən və dəyişdirilən qovluqlarda saxlanılan müxtəlif növ nümunə dəstlərinə sahib ola bilərəm.
Ssenarinin özündə dəyişdirilə biləcək yeganə şey, skriptə neçə nümunə qovluğunun olduğunu izah edən foldNum dəyişənidir. Eyni qovluqda yalnız bir alt qovluq olduğu üçün bu anda skript birdir (808 dəsti). Bu anda skriptin idarə edə biləcəyi maksimum qovluq 18 -dir, bu da neçə istifadə etdiyimdir, lakin bu, kifayət qədər mənasızdır. bunu dəyişdirin, kömək istəsəniz mənə bildirin.
Script yalnız eyni qovluqdakı qovluqların miqdarını oxuduğundan və yolları bu şəkildə tutduğundan qovluqların adlarının heç bir əhəmiyyəti yoxdur (hamısı fərqli olduğu müddətcə). Faylların adlarının özləri önəmli olsa da, növbəti addımda bu barədə daha çox məlumat verilir.
Addım 4: Yeni Qovluqlarda Əlavə Nümunələr əlavə edin və Konfiqurasiya edin
Səslər, 0-15 arasında nömrələnmiş.wav faylları olan eyni qovluqdakı qovluqlar vasitəsilə nümunə götürənə yüklənir. Bunun nümunəsi üçün daxil olan 808 qovluğuna baxın. Nümunələri olan hər alt qovluq bir -birinə bənzəməlidir.
NoteList dizisindəki MIDI girişlərinin indeksi tam olaraq.wav fayl adına uyğundur.
Misal üçün:
- noteList [0] -də saxlanılan MIDI qeydini işə saldığınızda 0.wav wav faylı çalınacaq.
- notList [8] -də saxlanılan MIDI qeydini işə saldığınızda 8.wav wav faylı oynayacaq.
Bunu hər bir MIDI nəzarətçisinin skriptlə işləmək üçün asanlıqla qurulmasını və nümunəni və giriş nömrəsini asanlıqla genişləndirə və ya məhdudlaşdıra biləcəyim, faylları və skripti zərb alətinə görə təşkil edə biləcəyim üçün bunu qismən etdim. səslər, məsələn, həmişə 0.wav olaraq qeyd ediləcək və ilk MIDI notu ilə tetiklenecektir.
Nəzarətçimdəki 16 girişə uyğun gəlmək üçün özbaşına 16 dəyər seçdim, buna görə yalnız 1 nümunə və ya daha çox nümunə ilə bir ardıcıllıq düzəltmək istəsəniz, etməli olduğunuz audio faylları buna uyğun olaraq nömrələmək və noteList massivində saxlanılan nömrələri uyğunlaşdırmaq üçün çıxarın və ya əlavə edin.
Daxil olan 808 dəsti düzgün işləyir, ancaq öz nümunələrinizlə probleminiz varsa, həll, ehtimal ki, faylların nümunə sürətini PyGame -in 22, 050khz nümunə sürətinə və 16 bit dərinliyinə uyğun olaraq dəyişdirmək olardı. Bunu Audacity və ya hər hansı digər Audio redaktə proqramı. Oradan mükəmməl işləməlidirlər!
Addım 5: Number Pad Reference
Tamam, əvvəlcədən düşündüyümdən daha çox şey sıralayıcıda baş verənlər var, buna görə də artan funksionallığa uyğunlaşmaq üçün bir sıra Pad üzərində sıxışdım. Bunu nəzərə alaraq, Ulduz * və Dövr. hər ikisi də funksional düymə kimi fəaliyyət göstərir.
REFERANS
ƏMƏK FONKSİYALARI
[8] - Metronomu yandırın və söndürün
[9] - Qeyd rejimini yandırın və söndürün
[Daxil et] - Çal/Durdur ardıcıllığı
[0] - Ardıcıllıqdakı Cari Qeyd silin
[Num Lock və *] - Bağlayın
[MIDI Qeyd və.] - Nömrələri cütləşdirməyin
TEMPO FUNKSİYALARI
[+] - Kurs BPM sürətləndirir
[-] - BPM Yavaşlama Kursu
[+ və *] - BPM sürətini sürətləndirin
[- və *] - BPM -ni sürətlə yavaşlatın
[+ və.] - İncə BPM sürətləndirin
[- və.] - Fine Slow Down BPM
SEQUENCE FUNCTIONS
[1-6] 1-6 ardıcıllığını xatırlayın
[1-6 və.] Mağaza Sırası 1-6
[0 və.] Cari Ardıcıllığı Sil
NÜMUNƏ QƏLƏBƏLƏRİNİ DEĞİŞTİRMƏK
[1-9 və *]-1-9 Qovluqlarında Nümunə Paketinə keçin
[1-9 və * və.]-10-18 Qovluqlarında Nümunə Paketinə keçin
DİZİLİK İPUÇLARI:
-Mövcud ardıcıllığı [0 və.] Silin və yaddaşdan silinməsini istədiyiniz ardıcıllıqla saxlayın.
Bir ardıcıllığı xatırlayın və kopyalamaq üçün fərqli bir nömrəyə saxlayın.
Tövsiyə:
Arduino Uno və Mozzi ilə sadə baraban maşını: 4 addım
Arduino Uno və Mozzi ilə sadə baraban maşını: Argentinada yaşamaq, beynəlxalq poçtların oğurlanması və ya gömrükdə ilişib qalması deməkdir. Coronavirus karantini əlavə edin və növbəti layihəniz köhnə bir Arduino Uno lövhəsi ilə məhdudlaşacaq. Yaxşı xəbər? Rolling Stones -dan olan böyük şairin dediyi kimi: "Zaman m
Zombi Yük maşını, Arduino ilə Nəhəng Bir Yük maşını necə hazırlanır: 5 addım
Zombi Yük maşını, Arduino ilə Nəhəng Bir Yük maşını necə hazırlanır: Salam uşaqlar, bu gün sizə bir zombi yük maşını (arduino üzərində işləyən təkmilləşdirilmiş canavar maşını) hazırlayacağam. Materiallar aşağıdakılardır:
Makey Makey Elektrikli Tambur / Baraban Maşını: 8 Addım
Makey Makey Elektrikli Tamburlar / Tambur Maşını: Elektrikli davul dəstinin necə qurulacağına dair bu dərslik, Makey Makey müsabiqəsinə daxil olan materialdır, mövcudluğu və şəxsi seçimlərindən asılı olaraq dəyişir. Karton daha dayanıqlı materiallarla əvəz edilə bilər və təbəqəli ola bilər. teks üçün köpük/ digər
HX1 -DM - Yenilənmiş Arduino DUE Powered DIY Baraban Maşını (Ölü Maschine MK2 ilə hazırlanmışdır): 4 addım
HX1 -DM - Yenilənmiş Arduino DUE Powered DIY Baraban Maşını (Ölü Maschine MK2 ilə hazırlanmışdır): Xüsusiyyətlər. Hibrid Midi idarəedici / baraban maşını: Arduino DUE powered! Hər hansı bir Midi #CC əmrinə təyin edilə bilən çox aşağı gecikmə 1 & ms 8 düyməli 16 Sürət algılayıcı yastıq 16ch Daxili sekanser (kompüterə ehtiyac yoxdur!) MIDI giriş/çıxış/funksiya vasitəsilə
Arduino Servo Baraban Maşını: 4 addım
Arduino Servo Baraban Maşını: Bu sadə iki mikro-servo və Arduino Uno idarə olunan baraban maşını və ya robotdur. Servolar, 4 güclü maqnit ilə tələ tamburuna tutulan L şəkilli bir ağac mötərizəsinə quraşdırılmışdır. Servo qolları iki çubuqla bərkidilir ki, bu da