Daftar Isi:

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, November
Anonim
Mesin Drum Raspberry Pi
Mesin Drum Raspberry Pi

Sample Sequencer, melalui Raspberry Pi + Python.

Sequencer memiliki 4 polifoni dan memungkinkan pengguna untuk menyimpan dan memberi isyarat hingga 6 urutan berbeda yang dapat bergantian antara secara real time, dan mendukung kemampuan untuk mengubah antara sampel yang berbeda.

Saya menulis skrip dengan cara yang benar-benar dapat dioperasikan dengan pengontrol dan suara MIDI apa pun. Saya menggunakan 18 bank suara yang berbeda, masing-masing 16 sampel, namun menambah atau mengurangi bank dan sampel itu mudah dan tidak memerlukan banyak modifikasi. Jika Anda memiliki masalah, kirimkan saya email: [email protected]

Temukan kodenya di GitHub di:

Tolong beri tahu saya jika Anda menggunakannya, dan terutama jika Anda membuat video dengannya!

Langkah 1: Ketergantungan

Program ini membutuhkan Modul Python (non bawaan) berikut:

mido

pygame

mati rasa

Namun, Mido menimbulkan beberapa komplikasi karena Mido sendiri membutuhkan beberapa ketergantungan. Untuk memastikan semuanya terinstal, cukup ketik perintah berikut ke terminal Raspberry Pi Anda (hilangkan '$') dan semuanya akan baik-baik saja. Modul lain dapat diinstal secara normal.

$ sudo apt-get update

$ 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 install python-pip

$ sudo apt-get install python-dev

$ sudo pip install python-rtmidi

$ sudo pip install mido

Langkah 2: Konfigurasikan Nilai Input Midi

Konfigurasikan Nilai Input Midi
Konfigurasikan Nilai Input Midi

Di dalam Skrip Python utama terdapat sebuah larik yang disebut noteList yang terdiri dari 16 bilangan bulat (baris 165.) Ini adalah nilai catatan MIDI yang dikirim pengontrol kami ke Pi untuk memicu suara. Setiap pengontrol midi berbeda, jadi kecuali Anda juga memiliki Akai LPD8, kemungkinan besar Anda perlu mengubah nilai ini agar sesuai dengan perangkat Anda.

Repo Github juga menyertakan skrip lain yang disebut "midihelp.py" yang dibuat khusus untuk tujuan ini! Yang dilakukannya hanyalah mencetak nilai input dari pengontrol MIDI pertama yang dikenali komputer ke konsol. Yang harus Anda lakukan adalah mengganti nilai-nilai ini dalam array jika berbeda dari yang termasuk dalam noteList.

Urutan nada juga berkorelasi dengan efek suara per folder yang dimainkan, jadi ingatlah juga.

Langkah 3: Tambahkan Folder Tambahan Dengan Sampel

Kit sampel dalam skrip disimpan melalui folder di direktori yang sama, atur persis bagaimana kit 808 berada dalam file GitHub. Dengan cara ini saya dapat menyimpan semua jenis kumpulan sampel berbeda di dalam folder yang mudah diatur dan diganti.

Satu-satunya hal yang harus diubah dalam skrip itu sendiri adalah variabel foldNum yang hanya memberi tahu skrip berapa banyak folder sampel yang ada. Saat ini skrip memiliki foldNum yang disetel ke satu karena hanya ada satu subfolder di direktori yang sama (808 kit.) Folder maksimum yang dapat ditangani skrip saat ini adalah 18, yang merupakan jumlah yang saya gunakan, namun cukup sepele untuk ubah ini, beri tahu saya jika Anda membutuhkan bantuan.

Nama-nama folder tidak terlalu penting (asalkan semuanya berbeda) karena Script hanya membaca jumlah folder di direktori yang sama dan mengambil jalur seperti itu. Nama-nama file itu sendiri penting, lebih lanjut tentang itu di langkah berikutnya.

Langkah 4: Tambahkan dan Konfigurasi Sampel Tambahan Dalam Folder Baru

Tambahkan dan Konfigurasi Sampel Tambahan Dalam Folder Baru
Tambahkan dan Konfigurasi Sampel Tambahan Dalam Folder Baru

Suara dimuat ke sampler melalui folder di direktori yang sama yang berisi file.wav dengan nama bernomor antara 0-15. Lihat folder 808 yang disertakan untuk contoh ini. SETIAP subfolder dengan sampel harus terlihat identik satu sama lain.

Indeks input MIDI dalam array noteList sama persis dengan nama file.wav.

Sebagai contoh:

  • ketika Anda memicu catatan MIDI yang disimpan di noteList[0] file wav 0.wav akan diputar.
  • ketika Anda memicu catatan MIDI yang disimpan di noteList[8] file wav 8.wav akan diputar.

Saya melakukan ini sebagian sehingga setiap pengontrol MIDI dapat diatur dengan mudah untuk bekerja dengan skrip, dan juga agar saya dapat dengan mudah memperluas atau membatasi sampel dan nomor input, serta mengatur file dan skrip sehingga kick drum suara, misalnya, akan selalu disimpan sebagai 0.wav dan akan dipicu oleh nada MIDI pertama.

Saya telah memilih 16 nilai secara sewenang-wenang agar sesuai dengan 16 input pada pengontrol saya, jadi jika Anda lebih suka membuat sequencer dengan hanya 1 sampel, atau dengan lebih banyak lagi, yang harus Anda lakukan hanyalah memberi nomor pada file audio yang sesuai dan kurangi atau tambahkan angka yang disimpan dalam array noteList agar sesuai.

Jika kit 808 yang disertakan berfungsi dengan baik tetapi Anda memiliki masalah dengan sampel Anda sendiri, solusinya kemungkinan besar adalah mengubah laju sampel file agar sesuai dengan laju sampel 22, 050khz PyGame dan kedalaman bit 16. Anda dapat melakukannya di Audacity atau perangkat lunak pengeditan Audio lainnya. Mereka harus bekerja dengan sempurna dari sana!

Langkah 5: Referensi Nomor Pad

Ok ada banyak hal yang terjadi di dalam sequencer, lebih dari yang saya pikirkan sebelumnya, jadi saya menjejalkan sedikit ke Number Pad agar sesuai dengan peningkatan fungsionalitas. Ini dalam pikiran, Asterisk * dan Periode. keduanya beroperasi sebagai tombol fungsi.

REFERENSI

FUNGSI UTAMA

[8] - Mengaktifkan dan menonaktifkan Metronom

[9] - Mengaktifkan dan menonaktifkan Mode Perekaman

[Enter] - Putar/Jeda urutan

[0] - Hapus Catatan Saat Ini dalam Urutan

[Num Lock dan *] - Matikan

[MIDI Note dan.] - Jangan mengkuantisasi ke angka genap

FUNGSI TEMPO

[+] - Kursus Mempercepat BPM

[-] - Kursus Memperlambat BPM

[+ dan *] - Mempercepat BPM

[- dan *] - Memperlambat BPM

[+ dan.] - Mempercepat BPM dengan Baik

[- dan.] - Baik Perlambat BPM

FUNGSI URUTAN

[1-6] Ingat Urutan 1-6

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

[0 dan.] Hapus Urutan Saat Ini

MENGUBAH FOLDER SAMPEL

[1-9 dan *] - Ubah ke Sample Pack di Folder 1-9

[1-9 dan * dan.] - Ubah ke Sample Pack di Folder 10-18

TIPS URUTAN:

-Hapus urutan saat ini [0 dan.] dan simpan ke urutan apa pun yang ingin Anda hapus dari memori.

-Mengingat urutan dan menyimpannya ke nomor yang berbeda untuk menyalinnya.

Direkomendasikan: