Tartalomjegyzék:

Raspberry Pi dobgép: 5 lépés
Raspberry Pi dobgép: 5 lépés

Videó: Raspberry Pi dobgép: 5 lépés

Videó: Raspberry Pi dobgép: 5 lépés
Videó: Микрокомпьютер Raspberry Pi 2024, November
Anonim
Raspberry Pi dobgép
Raspberry Pi dobgép

Minta szekvenszer, Raspberry Pi + Python segítségével.

A szekvenáló 4 polifóniával rendelkezik, és lehetővé teszi a felhasználó számára, hogy tároljon és készítsen 6 különböző szekvenciát, amelyek között valós időben váltakozhat, és támogatja a különböző minták közötti váltást.

A forgatókönyvet úgy írtam, hogy teljesen működőképes legyen bármilyen MIDI vezérlővel és hanggal. 18 különböző hangbankot használok, egyenként 16 mintát, de a bankok és minták hozzáadása vagy kivonása egyszerű, és nem igényel sok módosítást. Ha bármilyen problémája van, írjon nekem egy e -mailt: [email protected]

Keresse meg a kódot a GitHub webhelyen:

Kérem, tudassa velem, ha használja, és különösen akkor, ha videót készít vele!

1. lépés: Függőségek

Ez a program a következő (nem beépített) Python modulokat igényli:

mido

játék

szar

A Mido azonban bonyodalmakat okoz, mivel maga a Mido néhány függőséget igényel. Annak érdekében, hogy mindegyik telepítve legyen, csak írja be a következő parancsokat a Raspberry Pi termináljába (a "$" kihagyásával), és minden rendben lesz. A többi modul normálisan telepíthető.

$ sudo apt-get frissítés

$ sudo apt-get install build-essential

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

$ sudo pip install mido

2. lépés: Konfigurálja a Midi bemeneti értékeket

Midi bemeneti értékek konfigurálása
Midi bemeneti értékek konfigurálása

A fő Python -szkriptben létezik egy noteList nevű tömb, amely 16 egész számból áll (165. sor). Ezek azok a MIDI -jegyzet -értékek, amelyeket a vezérlőnk elküld a Pi -nek a hangok kiváltására. Bár minden midi vezérlő más, ezért ha nincs Akai LPD8 -a, akkor valószínűleg módosítania kell ezeket az értékeket, hogy megfeleljen az eszközének.

A Github repo egy másik, "midihelp.py" nevű szkriptet is tartalmaz, amely kifejezetten erre a célra készült! Mindössze annyit tesz, hogy kinyomtatja a bemeneti értékeket a számítógép által felismert első MIDI -vezérlőből a konzolra. Csak annyit kell tennie, hogy lecseréli ezeket az értékeket a tömbben, ha eltérnek a noteList -ben szereplőktől.

A jegyzetek sorrendje korrelál azzal is, hogy a mappánként melyik hanghatást játssza le, ezért ezt is vegye figyelembe.

3. lépés: Adjon hozzá további mappákat mintákkal

A szkriptben található mintakészletek ugyanabban a könyvtárban található mappákon keresztül tárolódnak, pontosan úgy állítva be, hogy a 808 -as készlet hogyan található a GitHub fájlban. Így mindenféle különböző mintakészletet tárolhatok mappákban, amelyek könnyen rendszerezhetők és cserélhetők.

A szkriptben csak a foldNum változó változtatható meg, amely csak azt mondja meg a szkriptnek, hogy hány mappa van a mintákból. Jelenleg a szkriptben a foldNum értéke egy, mert csak egy almappa van ugyanabban a könyvtárban (a 808 -as készlet.) A szkript által jelenleg kezelhető maximális mappák száma 18, ennyit használok, de meglehetősen triviális változtass ezen, szólj, ha segítségre van szükséged.

A mappák neve nem igazán számít (mindaddig, amíg mindegyik más), mivel a Script csak kiolvassa az azonos könyvtárban lévő mappák mennyiségét, és így megragadja az útvonalakat. A fájlok nevei azonban fontosak, erről bővebben a következő lépésben.

4. lépés: További minták hozzáadása és konfigurálása az új mappákban

További minták hozzáadása és konfigurálása az új mappákban
További minták hozzáadása és konfigurálása az új mappákban

A hangok a mintavevőbe töltődnek be ugyanazon a könyvtárban található mappákon keresztül, amelyek 0-15 között számozott.wav fájlokat tartalmaznak. Lásd erre a mellékelt 808 mappát. MINDEN almintának a mintákkal azonosnak kell lennie.

A noteList tömb MIDI bemeneteinek indexe pontosan megfelel a.wav fájlnévnek.

Például:

  • amikor elindítja a noteList [0] -ban tárolt MIDI -jegyzetet, a 0.wav wav fájl játszódik le.
  • amikor elindítja a noteList [8] -ban tárolt MIDI jegyzetet, a 8.wav wav fájl játszódik le.

Ezt részben azért tettem, hogy minden egyes MIDI -vezérlő könnyen beállítható legyen a szkripttel való együttműködésre, valamint hogy könnyen kiterjeszthessem vagy korlátozhassam a minta- és bemeneti számot, valamint rendszerezhessem a fájlokat és a szkriptet úgy, hogy a dob dob például a hangok mindig 0.wav néven kerülnek mentésre, és az első MIDI jegyzet váltja ki őket.

16 értéket némileg önkényesen választottam ki, hogy megfeleljenek a vezérlőm 16 bemenetének, így ha inkább csak 1 mintával vagy sok más példánnyal rendelkező sorozatot szeretne készíteni, mindössze annyit kell tennie, hogy ennek megfelelően számozza az audio fájlokat, és vonja le vagy adja hozzá a noteList tömbben tárolt számokat.

Ha a mellékelt 808 készlet megfelelően működik, de problémái vannak a saját mintákkal, akkor a megoldás valószínűleg az lenne, ha a fájlok mintavételi arányát úgy módosítaná, hogy megfeleljen a PyGame 22, 050 khz mintavételi frekvenciájának és a 16 -os bitmélységnek. Ezt megteheti az Audacity vagy bármely más hangszerkesztő szoftver. Innen tökéletesen kell működniük!

5. lépés: Számbillentyűzet hivatkozás

Oké, sok minden történik a szekvenszerben, több, mint eredetileg gondoltam, ezért elég sokat zsúfoltam a Számbillentyűzeten, hogy megfeleljen a megnövelt funkcionalitásnak. Ezt szem előtt tartva, a csillag * és az időszak. mindkettő funkciógombként működik.

REFERENCIA

FŐFUNKCIÓK

[8] - A Metronóm be- és kikapcsolása

[9] - A felvételi mód be- és kikapcsolása

[Enter] - Lejátszás/Szünet

[0] - Az aktuális jegyzet törlése sorrendben

[Num Lock és *] - Kapcsolja ki

[MIDI Note és.] - Ne kvantáljon páros számokra

TEMPO FUNKCIÓK

[+] - A tanfolyam felgyorsítja a BPM -et

[-] - A tanfolyam lassítja a BPM -et

[+ és *] - Gyorsítsa fel a BPM -et

[- és *] - Gyorsan lassítja a BPM -et

[+ és.] - Finom felgyorsítja a BPM -et

[- és.] - Finom lassú BPM

SZEKVENCIA FUNKCIÓK

[1-6] Idézze fel az 1-6

[1-6 és.] Tárolja az 1-6

[0 és.] Jelenlegi sorozat törlése

MINTAMAPPÁK VÁLTOZÁSA

[1-9 és *]-Váltson mintacsomagra az 1-9 mappákban

[1-9 és * és.]-Váltson a Mintacsomagra a 10-18 mappákban

TÖBB TIPP:

-Törölje az aktuális sorozatot [0 és.], És tárolja a memóriából törölni kívánt sorozatokhoz.

-Emlékezzen egy sorozatra, és tárolja egy másik számra másoláshoz.

Ajánlott: