Mündəricat:

Raspberry Pi Baraban Maşını: 5 addım
Raspberry Pi Baraban Maşını: 5 addım

Video: Raspberry Pi Baraban Maşını: 5 addım

Video: Raspberry Pi Baraban Maşını: 5 addım
Video: «Развлечение с музыкой и программированием», Коннор Харрис и Стивен Крюсон 2024, Iyul
Anonim
Raspberry Pi Baraban Maşını
Raspberry Pi Baraban Maşını

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

Midi Giriş Dəyərlərini Konfiqurasiya edin
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

Yeni Qovluqlarda Əlavə Nümunələr əlavə edin və Konfiqurasiya edin
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ə: