Innholdsfortegnelse:
- Trinn 1: Avhengigheter
- Trinn 2: Konfigurer Midi Input Verdier
- Trinn 3: Legg til flere mapper med prøver
- Trinn 4: Legg til og konfigurer flere prøver i nye mapper
- Trinn 5: Nummerblokkreferanse
Video: Raspberry Pi trommemaskin: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:20
Prøve Sequencer, via en Raspberry Pi + Python.
Sekvenseren har 4 polyfoni og lar brukeren lagre og cue opp 6 forskjellige sekvenser som de kan veksle mellom i sanntid, og støtter muligheten til å skifte mellom forskjellige prøver.
Jeg skrev manuset på en måte som er fullstendig brukbar med egentlig hvilken som helst MIDI -kontroller og lyder. Jeg bruker 18 forskjellige lydbanker, 16 prøver hver, men å legge til eller trekke fra banker og prøver er enkelt og krever ikke mange modifikasjoner. Hvis du har problemer, send meg en e -post: [email protected]
Finn koden på GitHub på:
Gi meg beskjed hvis du bruker den, og spesielt hvis du lager en video med den!
Trinn 1: Avhengigheter
Dette programmet krever følgende (ikke innebygde) Python -moduler:
mido
pygame
numpy
Mido kaster imidlertid noen komplikasjoner ettersom Mido selv krever noen få avhengigheter. For å være sikker på at de alle blir installert, bare skriv inn følgende kommandoer i terminalen til din Raspberry Pi (utelater '$'), og alt vil gå bra. De andre modulene kan installeres normalt.
$ sudo apt-get oppdatering
$ 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 installer python-rtmidi
$ sudo pip installer mido
Trinn 2: Konfigurer Midi Input Verdier
Innenfor Python Script finnes det en array kalt noteList som består av 16 heltall (linje 165.) Dette er MIDI -notatverdiene som kontrolleren sender til Pi for å utløse lydene. Hver midi -kontroller er forskjellig, så med mindre du også har en Akai LPD8, må du mest sannsynlig endre disse verdiene for å matche enheten din.
Github -repoen inneholder også et annet skript kalt "midihelp.py" som er laget spesielt for dette formålet! Alt det gjør er å skrive ut inngangsverdiene fra den første MIDI -kontrolleren datamaskinen gjenkjenner til konsollen. Alt du trenger å gjøre er å erstatte disse verdiene i matrisen hvis de er forskjellige fra de som er inkludert i noteList.
Rekkefølgen til notene korrelerer også med hvilken lydeffekt per mappe spilles, så husk det også.
Trinn 3: Legg til flere mapper med prøver
Eksempelsett i skriptet lagres via mapper i samme katalog, og konfigurer nøyaktig hvordan 808 -settet er i GitHub -filen. På denne måten kan jeg ha alle slags forskjellige prøvesett lagret i mapper som enkelt kan organiseres og byttes ut.
Det eneste som skal endres i selve skriptet er variabelen foldNum som bare forteller skriptet hvor mange mapper med prøver det er. For øyeblikket har skriptet foldNum satt til en fordi det bare er en undermappe i samme katalog (808 -settet.) Maksimum mapper skriptet kan håndtere for øyeblikket er 18, som er hvor mange jeg bruker, men det er ganske trivielt å endre dette, gi meg beskjed hvis du trenger hjelp.
Navnene på mappene spiller egentlig ingen rolle (så lenge de alle er forskjellige) ettersom skriptet bare leser mengden mapper i den samme katalogen og tar tak i banene på den måten. Navnene på selve filene er imidlertid viktige, mer om det i neste trinn.
Trinn 4: Legg til og konfigurer flere prøver i nye mapper
Lyder lastes inn i prøvetakeren via mapper i den samme katalogen som inneholder.wav-filer med navn nummerert mellom 0-15. Se den medfølgende 808 -mappen for et eksempel på dette. HVER undermappe med prøver skal se identiske ut.
Indeksen for MIDI -innganger i array noteList tilsvarer nøyaktig.wav -filnavnet.
For eksempel:
- når du utløser MIDI -notatet som er lagret i noteList [0], vil wav -filen 0.wav spilles av.
- når du utløser MIDI -notatet som er lagret i noteList [8], vil wav -filen 8.wav spilles av.
Jeg gjorde dette delvis slik at hver enkelt MIDI -kontroller enkelt kunne settes opp for å fungere med skriptet, og også slik at jeg enkelt kunne forlenge eller begrense prøve- og inndatatallet, samt organisere filene og skriptet slik at trommelen ble sparket lyder, for eksempel, vil alltid bli lagret som 0.wav og ville bli utløst av det første MIDI -notatet.
Jeg har valgt 16 verdier noe vilkårlig for å svare til de 16 inngangene på kontrolleren min, så hvis du foretrekker å lage en sequencer med bare 1 prøve, eller med mange flere, er det bare å nummerere lydfilene deretter og trekke fra eller legge til tallene som er lagret i noteList -matrisen for å matche.
Hvis det medfølgende 808 -settet fungerer som det skal, men du har problemer med dine egne prøver, vil løsningen mest sannsynlig være å endre samplingshastigheten til filene slik at de samsvarer med PyGames 22, 050 khz samplingsfrekvens og bitdybde på 16. Du kan gjøre dette i Audacity eller annen lydredigeringsprogramvare. De burde fungere perfekt derfra!
Trinn 5: Nummerblokkreferanse
Ok, det er mange ting som skjer i sequencer, mer enn jeg først hadde tenkt på, så jeg stappet ganske mye på en talltastatur for å matche den økte funksjonaliteten. Dette i tankene, stjernen * og perioden. begge fungerer som funksjonstaster.
HENVISNING
VEDLIKEHOLD
[8] - Slå Metronome av og på
[9] - Slå opptaksmodus av og på
[Enter] - Spill/Pause -sekvens
[0] - Slett gjeldende notat i rekkefølge
[Num Lock og *] - Slå av
[MIDI Note and.] - Ikke kvantiser til partall
TEMPO -FUNKSJONER
[+] - Kurs fremskynde BPM
[-] - Kurs Sakte BPM
[+ og *] - Rask hastighet på BPM
[- og *] - Rask hastighet på BPM
[+ og.] - Finhastighet på BPM
[- og.] - Fin sakte BPM
SEKVENSFUNKSJONER
[1-6] Tilbakekall sekvens 1-6
[1-6 og.] Lagringsrekkefølge 1-6
[0 og.] Fjern nåværende sekvens
ENDRE PRØVEMAPPER
[1-9 og *]-Bytt til prøvepakke i mapper 1-9
[1-9 og * og.]-Bytt til prøvepakke i mapper 10-18
SEKVENSSTIPS:
-Tøm gjeldende sekvens [0 og.] Og lagre den i alle sekvenser du vil slette fra minnet.
-Hent en sekvens og lagre den til et annet nummer for å kopiere den.
Anbefalt:
Enkel trommemaskin med Arduino Uno og Mozzi: 4 trinn
Enkel trommemaskin med Arduino Uno og Mozzi: Å bo i Argentina betyr at internasjonal post blir stjålet eller blir sittende fast i tollen. Legg til Coronavirus -karantene, og ditt neste prosjekt er begrenset til et gammelt Arduino Uno -brett. Gode nyheter? Som den store dikteren fra Rolling Stones sier "Time is on m
Makey Makey elektriske trommer / trommemaskin: 8 trinn
Makey Makey elektriske trommer / trommemaskin: Denne opplæringen om hvordan du bygger et sett med elektriske trommer, er en inngang i Makey Makey -konkurransen. Materiale, vil variere med tilgjengelighet og personlige valg. Kartong kan erstattes med mer holdbare materialer og lagvis med skum/ annet for tekst
HX1 -DM - Upcycled Arduino DUE Powered DIY Trommemaskin (laget med en død maskine MK2): 4 trinn
HX1 -DM - Upcycled Arduino DUE Powered DIY Trommemaskin (laget med en død maskine MK2): Spec. Hybrid Midi -kontroller / trommemaskin: Arduino DUE drevet! 16 Velocity sensing pads med veldig lav latens 1 &ms; 8 knapper bruker som kan tilordnes alle Midi #CC kommandoer 16ch innebygd sequencer (ingen datamaskin nødvendig !!) MIDI inn/ut/gjennom funksjon
Installere Raspbian i Raspberry Pi 3 B Uten HDMI - Komme i gang med Raspberry Pi 3B - Sette opp din Raspberry Pi 3: 6 trinn
Installere Raspbian i Raspberry Pi 3 B Uten HDMI | Komme i gang med Raspberry Pi 3B | Sette opp din Raspberry Pi 3: Som noen av dere vet Raspberry Pi-datamaskiner er ganske fantastiske, og du kan få hele datamaskinen bare på et enkelt, lite bord. Raspberry Pi 3 Model B har en firekjerners 64-biters ARM Cortex A53 klokket til 1,2 GHz. Dette gir Pi 3 omtrent 50
Arduino Servo Trommemaskin: 4 trinn
Arduino Servo Drum Machine: Dette er en enkel to mikro-servo og Arduino Uno kontrollert trommemaskin eller robot. Servoene er montert på en L-formet brakett av tre som holdes fast på skarptrommelen med 4 sterke magneter. Servoarmene er boltet til to spisepinner som fungerer som