Përmbajtje:

Raspberry Pi Drum Machine: 5 Hapa
Raspberry Pi Drum Machine: 5 Hapa

Video: Raspberry Pi Drum Machine: 5 Hapa

Video: Raspberry Pi Drum Machine: 5 Hapa
Video: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, Nëntor
Anonim
Raspberry Pi Drum Machine
Raspberry Pi Drum Machine

Sequencer i mostrës, përmes një Raspberry Pi + Python.

Sekuenceri ka 4 polifoni dhe i lejon përdoruesit të ruajë dhe sugjerojë 6 sekuenca të ndryshme nga të cilat ato mund të alternohen në kohë reale, dhe mbështet aftësinë për të ndryshuar midis mostrave të ndryshme.

Unë e shkrova skenarin në një mënyrë që të funksionojë plotësisht me çdo kontrollues dhe tinguj MIDI. Unë përdor 18 banka të ndryshme zanore, 16 mostra secila, megjithatë shtimi ose zbritja e bankave dhe mostrave është e lehtë dhe nuk kërkon shumë modifikime. Nëse keni ndonjë problem më dërgoni një email: [email protected]

Gjeni kodin në GitHub në:

Ju lutem më tregoni nëse e përdorni, dhe veçanërisht nëse bëni një video me të!

Hapi 1: Varësitë

Ky program kërkon modulet e mëposhtëm (jo të integruar) Python:

mesi

pygame

i mpirë

Sidoqoftë, Mido hedh disa ndërlikime pasi vetë Mido kërkon disa varësi. Në mënyrë që të siguroheni që të gjithë të instalohen, thjesht shkruani komandat e mëposhtme në terminalin e Raspberry Pi tuaj (duke hequr '$') dhe gjithçka do të jetë mirë. Modulet e tjerë mund të instalohen normalisht.

$ sudo apt-merrni përditësim

$ sudo apt-get install install-thelbësore

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

$ sudo apt-get install libjack0

$ sudo apt-get install libjack-dev

$ sudo apt-get instaloni python-pip

$ sudo apt-get install python-dev

$ sudo pip instaloni python-rtmidi

$ sudo pip instaloni mido

Hapi 2: Konfiguroni Vlerat e Inputit Midi

Konfiguroni vlerat e hyrjes Midi
Konfiguroni vlerat e hyrjes Midi

Brenda Skriptit kryesor Python ekziston një grup i quajtur noteList që përbëhet nga 16 numra të plotë (rreshti 165.) Këto janë vlerat e shënimit MIDI që kontrolluesi ynë i dërgon Pi për të shkaktuar tingujt. Sidoqoftë, çdo kontrollues midi është i ndryshëm, kështu që nëse nuk keni gjithashtu një Akai LPD8, ka shumë të ngjarë që të keni nevojë të ndryshoni këto vlera që të përputhen me pajisjen tuaj.

Repoja e Github përfshin gjithashtu një skenar tjetër të quajtur "midihelp.py" që është bërë posaçërisht për këtë qëllim! E tëra çfarë bën është të printojë vlerat hyrëse nga kontrolluesi i parë MIDI që kompjuteri njeh në tastierë. E tëra çfarë ju duhet të bëni është të zëvendësoni këto vlera në grup nëse ato ndryshojnë nga ato të përfshira në noteList.

Rendi i shënimeve gjithashtu lidhet me efektin e tingullit për dosje, kështu që mbani në mend gjithashtu.

Hapi 3: Shtoni dosje shtesë me mostra

Kutitë e mostrave brenda skriptit ruhen përmes dosjeve në të njëjtin drejtori, të vendosur saktësisht se si kit 808 është brenda skedarit GitHub. Në këtë mënyrë unë mund të kem të gjitha llojet e grupeve të ndryshme të mostrave të ruajtura brenda dosjeve që organizohen dhe zëvendësohen lehtësisht.

E vetmja gjë për të ndryshuar në vetë shkrimin është variabli foldNum i cili vetëm i tregon skriptit sa dosje mostrash ka. Aktualisht skripti është foldNum i vendosur në një sepse ka vetëm një nën -dosje në të njëjtën drejtori (kompleti 808.) Dosjet maksimale që skripti mund të trajtojë për momentin është 18, që është sa po përdor, megjithatë është mjaft e parëndësishme për ndryshoni këtë, më tregoni nëse keni nevojë për ndihmë.

Emrat e dosjeve nuk kanë vërtet rëndësi (përderisa të gjithë janë të ndryshëm) pasi Script thjesht lexon sasinë e dosjeve në të njëjtin drejtori dhe kap rrugët në atë mënyrë. Emrat e skedarëve vetë janë të rëndësishëm, më shumë për këtë në hapin tjetër.

Hapi 4: Shtoni dhe Konfiguroni Mostra Shtesë Brenda Dosjeve të Re

Shtoni dhe Konfiguroni Mostra Shtesë Brenda Dosjeve të Re
Shtoni dhe Konfiguroni Mostra Shtesë Brenda Dosjeve të Re

Tingujt ngarkohen në mostër përmes dosjeve në të njëjtën drejtori që përmbajnë skedarë.wav me emra të numëruar midis 0-15. Shikoni dosjen e përfshirë 808 për një shembull të kësaj. Çdo nën -dosje me mostra duhet të duket identike me njëra -tjetrën.

Indeksi i hyrjeve MIDI në array noteList korrespondon saktësisht me emrin e skedarit.wav.

Për shembull:

  • kur aktivizoni shënimin MIDI të ruajtur në noteList [0] skedari wav 0.wav do të luante.
  • kur aktivizoni shënimin MIDI të ruajtur në noteList [8] skedari wav 8.wav do të luante.

Unë e bëra këtë pjesërisht në mënyrë që çdo kontrollues MIDI të mund të vendoset lehtësisht për të punuar me skenarin, dhe gjithashtu kështu që unë lehtë mund të zgjas ose kufizoj numrin e mostrës dhe hyrjes, si dhe të organizoj skedarët dhe skenarin në mënyrë që daulle goditëse tingujt, për shembull, gjithmonë do të ruhen si 0.wav dhe do të nxiten nga shënimi i parë MIDI.

Unë kam zgjedhur 16 vlera disi në mënyrë arbitrare që të korrespondojnë me 16 hyrjet në kontrolluesin tim, kështu që nëse preferoni të bëni një sekuencues me vetëm 1 mostër, ose me shumë më tepër, gjithçka që duhet të bëni është të numëroni skedarët audio në përputhje me rrethanat dhe zbres ose shtoni numrat e ruajtur brenda grupit të noteList që të përputhen.

Nëse kompleti i përfshirë 808 funksionon siç duhet, por ju keni probleme me mostrat tuaja, zgjidhja ka shumë të ngjarë të jetë ndryshimi i normës së mostrës së skedarëve që të përputhen me normën e mostrës PyGame 22, 050khz dhe thellësinë e bitit 16. Ju mund ta bëni këtë në Audacity ose ndonjë softuer tjetër të redaktimit të audios. Ata duhet të punojnë në mënyrë perfekte nga atje!

Hapi 5: Referenca e bllokut të numrave

Ok, ka shumë gjëra që po ndodhin brenda sekuencerit, më shumë nga sa kisha në mendje në fillim, kështu që unë u ngjita mjaft në një Pad Numri që të përputhej me rritjen e funksionalitetit. Kjo në mendje, Ylli * dhe Periudha. të dy funksionojnë si çelësa funksioni.

REFERENC

MENAFUNKSIONET

[8] - Ndizni dhe fikni Metronome

[9] - Aktivizo dhe çaktivizo modalitetin e regjistrimit

[Enter] - Sekuenca e luajtjes/pauzës

[0] - Fshi shënimin aktual në sekuencë

[Num Lock dhe *] - Mbylle

[Shënim MIDI dhe.] - Mos kuantizoni në numra çift

FUNKSIONET TEMPO

[+] - Shpejtimi i kursit BPM

[-] - Kurs ngadalëso BPM

[+ dhe *] - Shpejtoni shpejt BPM

[- dhe *] - Ngadalësoni shpejt BPM

[+ dhe.] - Shpejtësi e shkëlqyer BPM

[- dhe.] - Fine Slow Down BPM

FUNKSIONET E SEKUENCS

[1-6] Kujtoni Sekuencën 1-6

[1-6 dhe.] Sekuenca e Dyqanit 1-6

[0 dhe.] Sekuenca e qartë aktuale

NDRYSHIMI I dosjeve të mostrës

[1-9 dhe *]-Ndryshoni në Paketë Shembull në Dosjet 1-9

[1-9 dhe * dhe.]-Ndryshoni në Paketën Shembull në Dosjet 10-18

K TSHILLA PQR SEQENCN:

-Pastroni sekuencën aktuale [0 dhe.] Dhe ruajeni në çdo sekuencë që dëshironi të pastrohet nga kujtesa.

-Rikujtoni një sekuencë dhe ruajeni në një numër tjetër për ta kopjuar.

Recommended: