Obsah:

Bicí automat Raspberry Pi: 5 kroků
Bicí automat Raspberry Pi: 5 kroků

Video: Bicí automat Raspberry Pi: 5 kroků

Video: Bicí automat Raspberry Pi: 5 kroků
Video: Bar Top Arcade Cabinet with a Raspberry Pi (from a single sheet of plywood)// How-To 2024, Prosinec
Anonim
Bicí automat Raspberry Pi
Bicí automat Raspberry Pi

Ukázka sekvenceru přes Raspberry Pi + Python.

Sekvencer má 4 polyfonie a umožňuje uživateli uložit a nastavit 6 různých sekvencí, mezi nimiž může střídat v reálném čase, a podporuje schopnost přepínat mezi různými vzorky.

Scénář jsem napsal způsobem, který je zcela použitelný s jakýmkoli MIDI ovladačem a zvuky. Používám 18 různých zvukových bank, po 16 samplů, ale přidání nebo odebrání bank a samplů je snadné a nevyžaduje mnoho úprav. Pokud máte nějaké potíže, pošlete mi e -mail: [email protected]

Kód najdete na GitHub na:

Dejte mi prosím vědět, zda jej používáte, a zejména pokud s ním vytvoříte video!

Krok 1: Závislosti

Tento program vyžaduje následující (ne vestavěné) moduly Pythonu:

mido

pygame

otupělý

Mido však přináší určité komplikace, protože sám Mido vyžaduje několik závislostí. Abyste se ujistili, že jsou všechny nainstalovány, stačí do terminálu vašeho Raspberry Pi zadat následující příkazy (vynechat '$') a vše bude v pořádku. Ostatní moduly lze nainstalovat normálně.

$ sudo apt-get update

$ sudo apt-get install build-essential

$ sudo apt-get install libasound-dev nebo 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

Krok 2: Konfigurace vstupních hodnot Midi

Konfigurace vstupních hodnot Midi
Konfigurace vstupních hodnot Midi

V hlavním skriptu Pythonu existuje pole s názvem noteList, které se skládá ze 16 celých čísel (řádek 165.) Toto jsou hodnoty MIDI not, které náš ovladač posílá do Pi, aby spustil zvuky. Každý midi ovladač je však jiný, takže pokud nemáte také Akai LPD8, budete pravděpodobně muset tyto hodnoty změnit, aby odpovídaly vašemu zařízení.

Repo Github také obsahuje další skript s názvem „midihelp.py“, který je vytvořen speciálně pro tento účel! Jediné, co dělá, je vytisknout vstupní hodnoty z prvního MIDI ovladače, který počítač rozpozná, do konzoly. Jediné, co musíte udělat, je nahradit tyto hodnoty v poli, pokud se liší od hodnot obsažených v noteList.

Pořadí not také koreluje s tím, jaký zvukový efekt se hraje na složku, takže na to také pamatujte.

Krok 3: Přidejte další složky se vzorky

Ukázkové sady ve skriptu jsou uloženy ve složkách ve stejném adresáři, přesně nastavují, jak se sada 808 nachází v souboru GitHub. Tímto způsobem mohu mít všechny druhy různých ukázkových sad uloženy ve složkách, které lze snadno organizovat a nahrazovat.

Jedinou věcí, kterou je třeba ve skriptu změnit, je proměnná foldNum, která skriptu pouze říká, kolik složek se vzorky existuje. V současné době má skript foldNum nastaven na jeden, protože ve stejném adresáři je pouze jedna podsložka (sada 808.) Maximální počet složek, které skript v tuto chvíli zvládne, je 18, což je počet, který používám, nicméně je docela triviální změňte to, dejte mi vědět, pokud potřebujete pomoc.

Na jménech složek nezáleží (pokud jsou všechny různé), protože Script pouze přečte množství složek ve stejném adresáři a uchopí cesty tímto způsobem. Názvy samotných souborů jsou důležité, o tom v dalším kroku.

Krok 4: Přidejte a nakonfigurujte další vzorky v nových složkách

Přidejte a konfigurujte další vzorky v nových složkách
Přidejte a konfigurujte další vzorky v nových složkách

Zvuky se načítají do sampleru prostřednictvím složek ve stejném adresáři obsahujícím soubory.wav s názvy očíslovanými mezi 0-15. Příklad naleznete v přiložené složce 808. KAŽDÁ podsložka se vzorky by měla vypadat navzájem identicky.

Index MIDI vstupů v poli noteList přesně odpovídá názvu souboru.wav.

Například:

  • když spustíte MIDI notu uloženou v noteList [0], přehraje se soubor wav 0.wav.
  • když spustíte MIDI notu uloženou v noteList [8], přehraje se wav soubor 8.wav.

Udělal jsem to částečně proto, aby každý MIDI kontroler mohl být snadno nastaven tak, aby pracoval se skriptem, a také abych mohl snadno rozšířit nebo omezit počet samplů a vstupů, stejně jako organizovat soubory a skript tak, aby kopal buben zvuky například budou vždy uloženy jako 0.wav a budou spuštěny první MIDI notou.

Vybral jsem 16 hodnot poněkud libovolně, aby odpovídaly 16 vstupům na mém ovladači, takže pokud byste chtěli udělat sekvencer pouze s 1 samplem nebo s mnoha dalšími, vše, co musíte udělat, je odpovídajícím způsobem očíslovat zvukové soubory a odečtěte nebo sečtěte čísla uložená v poli NoteList, aby odpovídala.

Pokud zahrnutá sada 808 funguje správně, ale máte potíže s vlastními vzorky, řešením by s největší pravděpodobností bylo změnit vzorkovací frekvenci souborů tak, aby odpovídala vzorkovací frekvenci PyGame 22, 050 kHz a bitové hloubce 16. Můžete to udělat v Audacity nebo jakýkoli jiný software pro úpravu zvuku. Odtamtud by měly perfektně fungovat!

Krok 5: Reference číselné klávesnice

Dobře, v sekvenceru se děje spousta věcí, víc, než jsem původně měl na mysli, takže jsem se nacpal docela dost na Number Pad, aby odpovídal zvýšené funkčnosti. To má na mysli hvězdičku * a období. oba fungují jako funkční klávesy.

ODKAZ

HLAVNÍ FUNKCE

[8] - Zapínání a vypínání metronomu

[9] - Zapíná a vypíná režim záznamu

[Enter] - Přehrát/Pozastavit sekvenci

[0] - Smazat aktuální poznámku v pořadí

[Num Lock a *] - Vypněte

[Poznámka MIDI a.] - Nekvantifikujte na sudá čísla

FUNKCE TEMPO

[+] - Kurz Zrychlete BPM

[-] - Kurz Zpomalte BPM

[+ a *] - Rychlé zrychlení BPM

[- a *] - Rychle zpomalte BPM

[+ a.] - Jemné zrychlení BPM

[- a.] - Jemné zpomalení BPM

FUNKCE SEKVENCE

[1-6] Vyvolání sekvence 1-6

[1-6 a.] Uložte sekvenci 1-6

[0 a.] Vymazat aktuální sekvenci

VÝMĚNA SLOŽEK VZORKŮ

[1-9 a *]-Změna na ukázkový balíček ve složkách 1-9

[1-9 a * a.]-Změňte na Sample Pack ve složkách 10-18

SEKVENČNÍ TIPY:

-Vyčistěte aktuální sekvenci [0 a.] A uložte ji do všech sekvencí, které chcete vymazat z paměti.

-Vyvolejte sekvenci a uložte ji na jiné číslo, abyste ji zkopírovali.

Doporučuje: