Talaan ng mga Nilalaman:

Machine ng Raspberry Pi Drum: 5 Hakbang
Machine ng Raspberry Pi Drum: 5 Hakbang

Video: Machine ng Raspberry Pi Drum: 5 Hakbang

Video: Machine ng Raspberry Pi Drum: 5 Hakbang
Video: Arduino Drum Sequencer: 8 tracks, 16 steps per measure, 8 measures per pattern 2024, Hulyo
Anonim
Makina ng Raspberry Pi Drum
Makina ng Raspberry Pi Drum

Sample Sequencer, sa pamamagitan ng isang Raspberry Pi + Python.

Ang tagapagsunud-sunod ay mayroong 4 polyphony at pinapayagan ang gumagamit na mag-imbak at magbigay ng 6 na magkakaibang pagkakasunud-sunod na maaari nilang kahalili sa pagitan ng real time, at sinusuportahan ang kakayahang magbago sa pagitan ng iba't ibang mga sample.

Isinulat ko ang script sa isang paraan na ganap na mapapatakbo sa talagang anumang MIDI controller at tunog. Gumagamit ako ng 18 magkakaibang mga tunog na bangko, 16 bawat sample, subalit ang pagdaragdag o pagbabawas ng mga bangko at sample ay madali at hindi nangangailangan ng maraming pagbabago. Kung mayroon kang anumang problema kunan ako ng isang email: [email protected]

Hanapin ang code sa GitHub sa:

Mangyaring ipaalam sa akin kung ginagamit mo ito, at lalo na kung gumawa ka ng isang video kasama nito!

Hakbang 1: Mga Dependance

Ang program na ito ay nangangailangan ng sumusunod (hindi built in) na Mga Modyul ng Python:

mido

pygame

numpy

Gayunpaman, itinapon ni Mido ang ilang mga komplikasyon dahil ang Mido mismo ay nangangailangan ng ilang mga dependance. Upang matiyak na naka-install silang lahat, i-type lamang ang mga sumusunod na utos sa terminal ng iyong Raspberry Pi (tinatanggal ang '$') at magiging maayos ang lahat. Ang iba pang mga module ay maaaring mai-install nang normal.

$ sudo apt-get update

$ sudo apt-get install na mahahalagang build

$ sudo apt-get install libasound-dev o 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 i-install ang python-rtmidi

$ sudo pip install mido

Hakbang 2: I-configure ang Mga Halaga ng Midi Input

I-configure ang Mga Halaga ng Pag-input ng Midi
I-configure ang Mga Halaga ng Pag-input ng Midi

Sa loob ng pangunahing Python Script mayroong isang array na tinatawag na noteList na binubuo ng 16 na integer (linya 165.) Ito ang mga halagang tala ng MIDI na ipinapadala ng aming controller sa Pi upang ma-trigger ang mga tunog. Ang bawat midi controller ay magkakaiba, kaya maliban kung mayroon ka ding isang Akai LPD8 malamang na kailangan mong baguhin ang mga halagang ito upang tumugma sa iyong aparato.

Ang Github repo ay nagsasama rin ng isa pang script na tinatawag na "midihelp.py" na partikular na ginawa para sa hangaring ito! Ang lahat ng ginagawa nito ay i-print ang mga halaga ng pag-input mula sa unang MIDI controller na kinikilala ng computer sa console. Ang kailangan mo lang gawin ay palitan ang mga halagang ito sa array kung naiiba ang mga ito sa mga kasama sa noteList.

Ang pagkakasunud-sunod sa mga tala ay nakikipag-ugnay din sa aling tunog na epekto sa bawat folder ang nilalaro, kaya't tandaan din iyon.

Hakbang 3: Magdagdag ng Karagdagang Mga Folder Sa Mga Sampol

Ang mga sample kit sa loob ng script ay nakaimbak sa pamamagitan ng mga folder sa parehong direktoryo, i-set up nang eksakto kung paano ang 808 kit ay nasa loob ng file ng GitHub. Sa ganitong paraan maaari akong magkaroon ng lahat ng mga iba't ibang mga hanay ng sample na nakaimbak sa loob ng mga folder na madaling ayos at pinalitan.

Ang tanging bagay na dapat baguhin sa script mismo ay ang variable foldNum na nagsasabi lamang sa script kung gaano karaming mga folder ng mga sample ang mayroong. Sa kasalukuyan ang script ay may foldNum na nakatakda sa isa dahil mayroon lamang isang subfolder sa parehong direktoryo (ang 808 kit.) Ang maximum na mga folder na maaaring hawakan ng script sa ngayon ay 18, na kung gaano karami ang ginagamit ko, subalit medyo walang halaga ito sa baguhin ito, ipaalam sa akin kung kailangan mo ng tulong.

Ang mga pangalan ng mga folder ay hindi talaga mahalaga (basta magkakaiba ang lahat) habang binabasa lamang ng Script ang dami ng mga folder sa parehong direktoryo at inaagaw ang mga landas sa ganoong paraan. Ang mga pangalan ng mga file mismo ay mahalaga, higit pa sa susunod na hakbang.

Hakbang 4: Magdagdag at I-configure ang Mga Karagdagang Sample Sa Loob ng Mga Bagong Folder

Magdagdag at I-configure ang Mga Karagdagang Sample Sa Loob ng Mga Bagong Folder
Magdagdag at I-configure ang Mga Karagdagang Sample Sa Loob ng Mga Bagong Folder

Ang mga tunog ay na-load sa sampler sa pamamagitan ng mga folder sa parehong direktoryo na naglalaman ng.wav file na may mga pangalan na may bilang sa pagitan ng 0-15. Tingnan ang kasama na 808 folder para sa isang halimbawa nito. BAWAT subfolder na may mga sample ay dapat magmukhang magkapareho sa bawat isa.

Ang index ng mga input ng MIDI sa array noteList ay tumutugma nang eksakto sa.wav file name.

Halimbawa:

  • kapag na-trigger mo ang tala ng MIDI na nakaimbak sa noteList [0] ang wav file na 0.wav ay maglalaro.
  • kapag na-trigger mo ang tala ng MIDI na nakaimbak sa noteList [8] ang wav file 8.wav ay maglaro.

Ginawa ko ito sa bahagi upang ang bawat solong MIDI controller ay madaling mai-set up upang gumana sa script, at sa gayon madali kong mapalawak o malilimitahan ang sample at input number, pati na rin ayusin ang mga file at script kaya ang kick drum ang mga tunog, halimbawa, ay laging mai-save bilang 0.wav at mai-trigger ng unang tala ng MIDI.

Pinili ko ang 16 na halagang medyo arbitraryo upang tumutugma sa 16 na input sa aking controller, kaya kung mas gugustuhin mong gumawa ng isang tagapagsunud-sunod na may lamang 1 sample, o sa marami pang iba, ang kailangan mo lang gawin ay bilangin ang mga audio file nang naaayon at ibawas o idagdag ang mga numero na nakaimbak sa loob ng noteList array upang tumugma.

Kung ang isinama na 808 kit ay gumagana nang maayos ngunit mayroon kang problema sa iyong sariling mga sample ang solusyon ay malamang na baguhin ang sample rate ng mga file upang tumugma sa 22, 050khz sample rate ng PyGame at lalim ng bit ng 16. Maaari mo itong gawin sa Audacity o anumang iba pang software sa pag-edit ng Audio. Dapat silang ganap na gumana mula doon!

Hakbang 5: Sanggunian sa Numero ng Pad

Ok mayroong maraming mga bagay na nangyayari sa loob ng tagapagsunud-sunod, higit sa una kong naisip, kaya't nag-crammed ako nang kaunti sa isang Number Pad upang tumugma sa pinataas na pag-andar. Sa isipan ito, ang Asterisk * at ang Panahon. parehong gumana bilang mga function key.

SANGGUNIAN

MAINFUNCTIONS

[8] - I-toggle at i-off ang Metronome

[9] - I-toggle at i-off ang Mode ng Pagrekord

[Enter] - Pagkakasunud-sunod ng Pag-play / I-pause

[0] - Tanggalin ang Kasalukuyang Tandaan sa Sequence

[Num Lock at *] - Patayin

[Tandaan MIDI at.] - Huwag sukatin sa pantay na mga numero

TEMPO FUNCTIONS

[+] - Bilis ng Kurso sa BPM

[-] - Kurso na Mabagal BPM

[+ at *] - Mabilis na Pabilisin ang BPM

[- at *] - Mabilis na Mabagal ang BPM

[+ at.] - Fine Speed Up BPM

[- at.] - Fine Slow Down BPM

Mga pagpapatakbo ng pagkakasunud-sunod

[1-6] Recall Sequence 1-6

[1-6 at.] Sequence ng Tindahan 1-6

[0 at.] I-clear ang Kasalukuyang Sequence

PAGBABAGO NG SAMPLE FOLDERS

[1-9 at *] - Baguhin sa Sample Pack sa Mga Folder 1-9

[1-9 at * at.] - Baguhin sa Sample Pack sa Mga Folder 10-18

Mga Tip sa Pagkakasunud-sunod:

-Linisin ang kasalukuyang pagkakasunud-sunod [0 at.] At iimbak ito sa anumang mga pagkakasunud-sunod na nais mong i-clear sa memorya.

-Recall ang isang pagkakasunud-sunod at iimbak ito sa ibang numero upang makopya ito.

Inirerekumendang: