Kazalo:

Bobnarski stroj Raspberry Pi: 5 korakov
Bobnarski stroj Raspberry Pi: 5 korakov

Video: Bobnarski stroj Raspberry Pi: 5 korakov

Video: Bobnarski stroj Raspberry Pi: 5 korakov
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, November
Anonim
Bobnasti stroj Raspberry Pi
Bobnasti stroj Raspberry Pi

Vzorec sekvencera prek Raspberry Pi + Python.

Sekvencer ima 4 polifonije in uporabniku omogoča shranjevanje in označevanje 6 različnih zaporedij, med katerimi se lahko spreminjajo v realnem času, in podpira možnost spreminjanja med različnimi vzorci.

Scenarij sem napisal na način, ki je popolnoma delujoč z res katerim koli MIDI krmilnikom in zvoki. Uporabljam 18 različnih zvočnih bank, po 16 vzorcev, vendar je dodajanje ali odštevanje bank in vzorcev enostavno in ne zahteva veliko sprememb. Če imate težave, mi pišite na e -naslov: [email protected]

Kodo najdete na GitHubu na:

Sporočite mi, če ga uporabljate, še posebej, če z njim posnamete video!

1. korak: Odvisnosti

Ta program zahteva naslednje (ne vgrajene) module Python:

mido

pygame

numpy

Vendar Mido povzroča nekaj zapletov, saj sam Mido zahteva nekaj odvisnosti. Če želite zagotoviti, da so vsi nameščeni, vnesite naslednje ukaze v terminal vašega Raspberry Pi (izpustite '$') in vse bo v redu. Ostale module lahko normalno namestite.

$ sudo apt-get posodobitev

$ sudo apt-get install build-bistveno

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

$ sudo pip namestite mido

2. korak: Konfigurirajte vhodne vrednosti midi

Konfigurirajte vhodne vrednosti Midi
Konfigurirajte vhodne vrednosti Midi

Znotraj glavnega skripta Python obstaja matrika, imenovana noteList, ki je sestavljena iz 16 celih števil (vrstica 165.) To so notne vrednosti MIDI, ki jih naš krmilnik pošlje Pi, da sproži zvoke. Vsak midi krmilnik pa je drugačen, zato boste morali te vrednosti, če ustrezajo vaši napravi, spremeniti tudi, če nimate tudi Akai LPD8.

Repo Github vključuje tudi drug skript, imenovan "midihelp.py", ki je izdelan posebej za ta namen! Vse, kar naredi, je, da na konzolo natisne vhodne vrednosti iz prvega krmilnika MIDI, ki ga računalnik prepozna. Vse, kar morate storiti, je, da te vrednosti zamenjate v matriki, če se razlikujejo od tistih, ki so vključene v noteList.

Vrstni red zapiskov je povezan tudi s tem, kateri zvočni učinek se predvaja v vsaki mapi, zato imejte to v mislih.

3. korak: Dodajte dodatne mape z vzorci

Vzorčni kompleti v skriptu so shranjeni prek map v istem imeniku, natančno nastavite, kako je komplet 808 v datoteki GitHub. Na ta način imam lahko v mapah shranjene vse vrste različnih vzorčnih nizov, ki jih je enostavno organizirati in zamenjati.

Edino, kar je treba spremeniti v samem skriptu, je spremenljivka foldNum, ki skriptu samo pove, koliko map z vzorci je. Trenutno je za skript nastavljeno foldNum na eno, ker je v istem imeniku samo ena podmapa (komplet 808.) Največ map, ki jih lahko skript trenutno obdeluje, je 18, koliko jih uporabljam, vendar je dokaj nepomembno spremenite to, sporočite mi, če potrebujete pomoč.

Imena map v resnici niso pomembna (če so vse različne), saj Skript samo prebere količino map v istem imeniku in na ta način zgrabi poti. Imena samih datotek so pomembna, več o tem v naslednjem koraku.

4. korak: Dodajte in konfigurirajte dodatne vzorce v novih mapah

Dodajte in konfigurirajte dodatne vzorce v novih mapah
Dodajte in konfigurirajte dodatne vzorce v novih mapah

Zvoki se naložijo v vzorčevalnik prek map v istem imeniku, ki vsebujejo datoteke.wav z imeni, oštevilčenimi med 0-15. Primer tega si oglejte v priloženi mapi 808. VSAKA podmapa z vzorci mora biti med seboj enaka.

Indeks vhodov MIDI v nizu noteList natančno ustreza imenu datoteke.wav.

Na primer:

  • ko sprožite opombo MIDI, shranjeno v noteList [0], bi se predvajala datoteka wav 0.wav.
  • ko sprožite opombo MIDI, shranjeno v noteList [8], bi se predvajala datoteka wav 8.wav.

To sem naredil delno, da bi lahko vsak posamezen krmilnik MIDI enostavno nastavil za delo s skriptom, prav tako pa bi lahko preprosto razširil ali omejil vzorec in vhodno številko, pa tudi organiziral datoteke in skript tako, da je udarni boben zvoki bi bili na primer vedno shranjeni kot 0.wav in bi jih sprožila prva nota MIDI.

16 vrednosti sem izbral poljubno, da ustrezajo 16 vhodom na mojem krmilniku, zato, če bi raje naredili sekvencer z enim samim vzorcem ali z veliko več, morate le ustrezno oštevilčiti zvočne datoteke in odštejte ali dodajte številke, shranjene v matriki noteList, da se ujemajo.

Če priloženi komplet 808 deluje pravilno, vendar imate težave z lastnimi vzorci, bi bila rešitev najverjetneje spremeniti frekvenco vzorčenja datotek tako, da se ujema s hitrostjo vzorčenja 22, 050 kHz PyGame in bitno globino 16. To lahko storite v Audacityju oz. katero koli drugo programsko opremo za urejanje zvoka. Od tam bi morali odlično delovati!

5. korak: Sklic številčnice

V redu, v sekvencerju se dogaja veliko stvari, več, kot sem sprva imel v mislih, zato sem se kar precej naletel na številčnico, da bi ustrezal povečani funkcionalnosti. To upoštevajte, zvezdica * in obdobje. oba delujeta kot funkcijski tipki.

REFERENCA

GLAVNE FUNKCIJE

[8] - Vklop in izklop Metronoma

[9] - Vklop in izklop načina snemanja

[Enter] - Zaporedje predvajanja/premora

[0] - Brisanje trenutne opombe v zaporedju

[Num Lock in *] - Izklopite

[Opomba MIDI in.] - Ne kvantizirajte na parne številke

TEMPO FUNKCIJE

[+] - Tečaj pospeši BPM

[-] - Upočasni tečaj BPM

[+ in *] - Hitro pospešite BPM

[- in *] - Hitro upočasnite BPM

[+ in.] - Fini pospešek BPM

[- in.] - fino upočasnitev BPM

FUNKCIJE SEKVENCIJE

[1-6] Odpoklic zaporedja 1-6

[1-6 in.] Shrani zaporedje 1-6

[0 in.] Počisti trenutno zaporedje

MENJANJE VZORČNIH MAP

[1-9 in *]-spremenite v vzorčni paket v mapah 1-9

[1-9 in * in.]-Spremenite v vzorčni paket v mapah 10-18

NAMIGI ZA SEKVENCIJO:

-Počistite trenutno zaporedje [0 in.] In ga shranite v vsa zaporedja, ki jih želite počistiti iz pomnilnika.

-Skličite zaporedje in ga shranite na drugo številko, da ga kopirate.

Priporočena: