Innehållsförteckning:

Raspberry Pi trumma: 5 steg
Raspberry Pi trumma: 5 steg

Video: Raspberry Pi trumma: 5 steg

Video: Raspberry Pi trumma: 5 steg
Video: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, December
Anonim
Raspberry Pi trummaskin
Raspberry Pi trummaskin

Prov Sequencer, via en Raspberry Pi + Python.

Sequencern har 4 polyfoni och tillåter användaren att lagra och cue upp 6 olika sekvenser som de kan växla mellan i realtid och stöder möjligheten att växla mellan olika prover.

Jag skrev manuset på ett sätt som är helt användbart med egentligen vilken MIDI -kontroller och ljud som helst. Jag använder 18 olika ljudbanker, 16 samplingar vardera, men att lägga till eller subtrahera banker och samplingar är enkelt och kräver inte många ändringar. Skicka ett mejl till mig om du har problem: [email protected]

Hitta koden på GitHub på:

Meddela mig om du använder den, och särskilt om du gör en video med den!

Steg 1: Beroenden

Detta program kräver följande (icke inbyggda) Python -moduler:

mido

pygame

numpy

Mido ger dock vissa komplikationer eftersom Mido själv kräver några beroende. För att se till att alla installeras skriver du bara in följande kommandon i terminalen på din Raspberry Pi (utelämnar "$") och allt kommer att gå bra. De andra modulerna kan installeras normalt.

$ sudo apt-get uppdatering

$ sudo apt-get install build-essential

$ sudo apt-get install libasound-dev eller 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 installera python-rtmidi

$ sudo pip installera mido

Steg 2: Konfigurera Midi -ingångsvärden

Konfigurera Midi -ingångsvärden
Konfigurera Midi -ingångsvärden

Inom huvud Python Script finns det en array som kallas noteList som består av 16 heltal (rad 165.) Dessa är MIDI -notvärdena som vår styrenhet skickar till Pi för att utlösa ljuden. Varje midi -controller är dock annorlunda, så om du inte också har en Akai LPD8 kommer du troligen att behöva ändra dessa värden för att matcha din enhet.

Github -repot innehåller också ett annat skript som heter "midihelp.py" som är speciellt utformat för detta ändamål! Allt det gör är att skriva ut inmatningsvärdena från den första MIDI -kontrollen som datorn känner igen till konsolen. Allt du behöver göra är att ersätta dessa värden i arrayen om de skiljer sig från de som ingår i noteList.

Ordningen till noterna korrelerar också till vilken ljudeffekt per mapp som spelas, så tänk på det också.

Steg 3: Lägg till ytterligare mappar med prover

Provkit i skriptet lagras via mappar i samma katalog, ställer in exakt hur 808 -kitet är i GitHub -filen. På så sätt kan jag ha alla möjliga olika provuppsättningar lagrade i mappar som enkelt kan organiseras och bytas ut.

Det enda som ska ändras i själva skriptet är variabeln foldNum som bara berättar för skriptet hur många mappar med prover det finns. För närvarande har skriptet foldNum satt till en eftersom det bara finns en undermapp i samma katalog (808 -kitet.) De maximala mappar som skriptet kan hantera för närvarande är 18, vilket är hur många jag använder, men det är ganska trivialt att ändra detta, meddela mig om du behöver hjälp.

Namnen på mapparna spelar egentligen ingen roll (så länge de alla är olika) eftersom manuset bara läser mängden mappar i samma katalog och tar tag i banorna på det sättet. Namnen på själva filerna är dock viktiga, mer om det i nästa steg.

Steg 4: Lägg till och konfigurera ytterligare prover i nya mappar

Lägg till och konfigurera ytterligare prover i nya mappar
Lägg till och konfigurera ytterligare prover i nya mappar

Ljud laddas in i samplaren via mappar i samma katalog som innehåller.wav-filer med namn numrerade mellan 0-15. Se den medföljande mappen 808 för ett exempel på detta. VARJE undermapp med prover ska se identiska ut med varandra.

Indexet för MIDI -ingångar i arrayen noteList motsvarar exakt.wav -filnamnet.

Till exempel:

  • när du aktiverar MIDI -noten lagrad i noteList [0] spelas wav -filen 0.wav.
  • när du aktiverar MIDI -noten som är lagrad i noteList [8] spelas wav -filen 8.wav.

Jag gjorde detta delvis så att varje enskild MIDI -controller enkelt kunde konfigureras för att fungera med skriptet, och också så att jag enkelt kunde förlänga eller begränsa prov- och inmatningsnumret, samt organisera filerna och skriptet så att trumman ljud, till exempel, skulle alltid sparas som 0.wav och skulle triggas av den första MIDI -noten.

Jag har valt 16 värden något godtyckligt för att motsvara de 16 ingångarna på min styrenhet, så om du föredrar att göra en sequencer med bara 1 sampel, eller med många fler, är det bara att numrera ljudfilerna därefter subtrahera eller lägg till de nummer som lagras i noteList -arrayen för att matcha.

Om den medföljande 808 -satsen fungerar korrekt men du har problem med dina egna prover skulle lösningen troligen vara att ändra samplingsfrekvensen för filerna för att matcha PyGames 22, 050khz samplingshastighet och bitdjup på 16. Du kan göra detta i Audacity eller någon annan ljudredigeringsprogramvara. De borde fungera perfekt därifrån!

Steg 5: Nummerplatta -referens

Ok, det händer många saker i sequencern, mer än jag först hade tänkt mig, så jag klämde ihop ganska mycket på en sifferknapp för att matcha den ökade funktionaliteten. Detta i åtanke, asterisken * och perioden. båda fungerar som funktionstangenter.

REFERENS

HUVUD FUNKTIONER

[8] - Växla till och från metronom

[9] - Växla och inaktivera inspelningsläge

[Enter] - Spela upp/pausa sekvensen

[0] - Radera aktuell not i sekvens

[Num Lock och *] - Stäng av

[MIDI -notering och.] - Kvantifiera inte till jämna tal

TEMPO FUNKTIONER

[+] - Kurshastighet på BPM

[-] - Kurs Sakta ner BPM

[+ och *] - Snabba upp BPM

[- och *] - Sakta ner BPM snabbt

[+ och.] - Finhastighet på BPM

[- och.] - Fin sakta ner BPM

SEKVENSFUNKTIONER

[1-6] Återkalla sekvens 1-6

[1-6 och.] Lagra sekvens 1-6

[0 och.] Rensa aktuell sekvens

BYTE AV PROVMAPPAR

[1-9 och *]-Byt till provpaket i mappar 1-9

[1-9 och * och.]-Byt till provpaket i mappar 10-18

SEKVENSTIPS:

-Rensa den aktuella sekvensen [0 och.] Och lagra den i alla sekvenser du vill rensa ur minnet.

-Ankalla en sekvens och spara den till ett annat nummer för att kopiera den.

Rekommenderad: