Isi kandungan:

Mesin Drum Raspberry Pi: 5 Langkah
Mesin Drum Raspberry Pi: 5 Langkah

Video: Mesin Drum Raspberry Pi: 5 Langkah

Video: Mesin Drum Raspberry Pi: 5 Langkah
Video: Automatic sorting conveyor belt - Graduation project 2017 - Mechatronics | Egypt 2024, Disember
Anonim
Mesin Gendang Raspberry Pi
Mesin Gendang Raspberry Pi

Contoh Sequencer, melalui Raspberry Pi + Python.

Penjujukan itu mempunyai 4 polifoni dan membolehkan pengguna menyimpan dan memberi isyarat 6 urutan yang berbeza yang dapat mereka ganti dalam masa nyata, dan menyokong kemampuan untuk menukar antara sampel yang berbeza.

Saya menulis skrip dengan cara yang dapat dikendalikan sepenuhnya dengan pengawal dan suara MIDI. Saya menggunakan 18 bank suara yang berbeza, masing-masing 16 sampel, namun menambah atau mengurangkan bank dan sampel adalah mudah dan tidak memerlukan banyak pengubahsuaian. Sekiranya anda menghadapi masalah, tembak saya e-mel: [email protected]

Dapatkan kod di GitHub di:

Tolong beritahu saya jika anda menggunakannya, dan terutamanya jika anda membuat video dengannya!

Langkah 1: Tanggungan

Program ini memerlukan Modul Python berikut (tidak terbina dalam):

mido

permainan pyg

kekenyangan

Walau bagaimanapun, Mido menimbulkan beberapa komplikasi kerana Mido sendiri memerlukan beberapa tanggungan. Untuk memastikan semuanya dipasang, cukup masukkan perintah berikut ke terminal Raspberry Pi anda (menghilangkan '$') dan semuanya akan baik-baik saja. Modul lain boleh dipasang dengan normal.

$ sudo apt-get kemas kini

$ sudo apt-get install build-essential

$ sudo apt-get install libasound-dev atau libasound2-dev

$ sudo apt-get install libjack0

$ sudo apt-get install libjack-dev

$ sudo apt-get pasang python-pip

$ sudo apt-get install python-dev

$ sudo pip memasang python-rtmidi

$ sudo pip pasang mido

Langkah 2: Konfigurasikan Nilai Input Midi

Konfigurasikan Nilai Input Midi
Konfigurasikan Nilai Input Midi

Di dalam Skrip Python utama terdapat array yang disebut noteList yang terdiri daripada 16 bilangan bulat (baris 165.) Ini adalah nilai nota MIDI yang dihantar oleh pengawal kami ke Pi untuk mencetuskan suara. Walau bagaimanapun, setiap pengawal midi berbeza, jadi melainkan jika anda juga mempunyai Akai LPD8, kemungkinan besar anda perlu mengubah nilai ini agar sepadan dengan peranti anda.

Repo Github juga menyertakan skrip lain yang disebut "midihelp.py" yang dibuat khusus untuk tujuan ini! Yang dilakukannya adalah mencetak nilai input dari pengawal MIDI pertama yang dikenali komputer ke konsol. Yang harus anda lakukan ialah mengganti nilai-nilai ini dalam tatasusunan jika ia berbeza dengan yang disertakan dalam NoteList.

Urutan nota juga berkaitan dengan kesan suara setiap folder yang dimainkan, jadi ingatlah juga.

Langkah 3: Tambahkan Folder Tambahan Dengan Sampel

Kit sampel dalam skrip disimpan melalui folder di direktori yang sama, siapkan bagaimana kit 808 berada dalam fail GitHub. Dengan cara ini saya dapat menyimpan pelbagai jenis set sampel yang tersimpan di dalam folder yang mudah disusun dan diganti.

Satu-satunya perkara yang perlu diubah dalam skrip itu adalah variabel foldNum yang hanya memberitahu skrip berapa folder sampel yang ada. Pada masa ini skrip mempunyai foldNum diatur ke satu kerana hanya ada satu subfolder dalam direktori yang sama (kit 808.) Folder maksimum yang dapat dikendalikan oleh skrip pada masa ini adalah 18, iaitu berapa banyak yang saya gunakan, namun agak sepele untuk ubah ini, beritahu saya jika anda memerlukan bantuan.

Nama folder tidak begitu penting (asalkan semuanya berbeza) kerana Skrip hanya membaca jumlah folder dalam direktori yang sama dan mengambil jalan dengan cara itu. Nama-nama fail itu sendiri adalah penting, lebih banyak lagi pada langkah seterusnya.

Langkah 4: Tambah dan Konfigurasikan Sampel Tambahan Dalam Folder Baru

Tambah dan Konfigurasi Sampel Tambahan Dalam Folder Baru
Tambah dan Konfigurasi Sampel Tambahan Dalam Folder Baru

Bunyi dimuat ke dalam sampler melalui folder di direktori yang sama yang mengandungi fail.wav dengan nama bernombor antara 0-15. Lihat folder 808 yang disertakan untuk contoh ini. SETIAP subfolder dengan sampel harus kelihatan sama antara satu sama lain.

Indeks input MIDI dalam array noteList sepadan dengan nama fail.wav.

Sebagai contoh:

  • apabila anda mencetuskan nota MIDI yang disimpan dalam noteList [0], fail wav 0.wav akan dimainkan.
  • apabila anda mencetuskan nota MIDI yang disimpan dalam noteList [8], fail wav 8.wav akan dimainkan.

Saya melakukan ini sebahagiannya agar setiap pengawal MIDI dapat disiapkan dengan mudah untuk bekerja dengan skrip, dan juga saya dapat memperluas atau membatasi sampel dan nombor input dengan mudah, serta mengatur fail dan skrip sehingga kick drum bunyi, misalnya, akan selalu disimpan sebagai 0.wav dan akan dicetuskan oleh nota MIDI pertama.

Saya telah memilih 16 nilai dengan sewenang-wenangnya agar sesuai dengan 16 input pada pengawal saya, jadi jika anda lebih suka membuat penjujukan dengan hanya 1 sampel, atau dengan banyak lagi, yang perlu anda lakukan adalah menamakan fail audio dengan sewajarnya dan tolak atau tambah nombor yang disimpan di dalam array noteList untuk dipadankan.

Sekiranya kit 808 yang disertakan berfungsi dengan betul tetapi anda menghadapi masalah dengan sampel anda sendiri, penyelesaiannya kemungkinan besar adalah mengubah kadar sampel fail agar sesuai dengan kadar sampel PyGame 22, 050khz dan kedalaman bit 16. Anda boleh melakukan ini di Audacity atau mana-mana perisian penyuntingan Audio yang lain. Mereka mesti bekerja dengan sempurna dari sana!

Langkah 5: Rujukan Pad Nombor

Ok ada banyak perkara yang berlaku dalam penjujukan, lebih banyak daripada yang saya fikirkan pada awalnya, jadi saya menjejalkan Nombor Pad sedikit untuk menyesuaikan dengan peningkatan fungsi. Ini dalam fikiran, Asterisk * dan Tempoh. kedua-duanya beroperasi sebagai kunci fungsi.

RUJUKAN

FUNGSI UTAMA

[8] - Togol Metronome hidup dan mati

[9] - Hidupkan dan matikan Mod Rakaman

[Enter] - Urutan Main / Jeda

[0] - Padamkan Nota Semasa dalam Urutan

[Num Lock dan *] - Matikan

[Nota MIDI dan.] - Jangan membuat kuantiti hingga nombor genap

FUNGSI TEMPO

[+] - BPM Kelajuan Kursus

[-] - BPM Perlahan Kursus

[+ dan *] - Mempercepat BPM dengan pantas

[- dan *] - BPM Melambatkan Dengan Cepat

[+ dan.] - BPM Mempercepat Baik

[- dan.] - BPM Perlahan Halus

FUNGSI SEJENIS

[1-6] Urutan Ingat 1-6

[1-6 dan.] Urutan Kedai 1-6

[0 dan.] Kosongkan Urutan Semasa

MENUKAR FOLDER SAMPEL

[1-9 dan *] - Tukar ke Pek Sampel dalam Folder 1-9

[1-9 dan * dan.] - Tukar ke Pakej Sampel dalam Folder 10-18

PETUA RAHSIA:

-Kosongkan urutan semasa [0 dan.] Dan simpan ke urutan yang anda mahu dihapuskan dari ingatan.

-Rakamkan urutan dan simpan ke nombor lain untuk menyalinnya.

Disyorkan: