Obsah:

Bicí automat Raspberry Pi: 5 krokov
Bicí automat Raspberry Pi: 5 krokov

Video: Bicí automat Raspberry Pi: 5 krokov

Video: Bicí automat Raspberry Pi: 5 krokov
Video: Удивительные самоделки на Raspberry PI, 11 интересных проектов на малине. 2024, Júl
Anonim
Bicí automat Raspberry Pi
Bicí automat Raspberry Pi

Ukážkový sekvencer cez Raspberry Pi + Python.

Sekvencer má 4 polyfónie a umožňuje užívateľovi uložiť a zaradiť až 6 rôznych sekvencií, medzi ktorými môže striedať v reálnom čase, a podporuje schopnosť prepínať medzi rôznymi vzorkami.

Scenár som napísal spôsobom, ktorý je úplne ovládateľný skutočne pomocou akéhokoľvek MIDI ovládača a zvukov. Používam 18 rôznych zvukových bánk, po 16 vzoriek, ale pridávanie alebo odoberanie bánk a vzoriek je jednoduché a nevyžaduje veľa úprav. Ak máte nejaké problémy, pošlite mi e -mail: [email protected]

Kód nájdete na GitHub na:

Dajte mi prosím vedieť, či ho používate, a najmä ak s ním natočíte video!

Krok 1: Závislosti

Tento program vyžaduje nasledujúce (nie vstavané) moduly Python:

mido

pygame

otupený

Mido však prináša určité komplikácie, pretože samotný Mido vyžaduje niekoľko závislostí. Aby ste sa uistili, že sú všetky nainštalované, zadajte do terminálu vášho Raspberry Pi nasledujúce príkazy (vynechajte „$“) a všetko bude v poriadku. Ostatné moduly je možné nainštalovať normálne.

$ sudo apt-get aktualizácia

$ sudo apt-get install build-essential

$ sudo apt-get install libasound-dev alebo 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: Konfigurujte vstupné hodnoty Midi

Konfigurujte vstupné hodnoty Midi
Konfigurujte vstupné hodnoty Midi

V hlavnom skripte Python existuje pole s názvom noteList, ktoré pozostáva zo 16 celých čísel (riadok 165.) Toto sú hodnoty MIDI noty, ktoré náš ovládač posiela do Pi, aby spustil zvuky. Každý midi ovládač je však iný, takže pokiaľ nemáte aj Akai LPD8, budete pravdepodobne musieť tieto hodnoty zmeniť tak, aby zodpovedali vášmu zariadeniu.

Repo Github obsahuje aj ďalší skript s názvom „midihelp.py“, ktorý je vytvorený špeciálne na tento účel! Jediné, čo urobí, je vytlačenie vstupných hodnôt z prvého MIDI ovládača, ktorý počítač rozpozná, do konzoly. Všetko, čo musíte urobiť, je nahradiť tieto hodnoty v poli, ak sa líšia od hodnôt zahrnutých v noteList.

Poradie v notách tiež koreluje s tým, aký zvukový efekt sa prehrá v priečinku, takže na to tiež pamätajte.

Krok 3: Pridajte ďalšie priečinky so vzorkami

Ukážkové sady v skripte sú uložené v priečinkoch v tom istom adresári, presne nastavenom, ako sa súprava 808 nachádza v súbore GitHub. Týmto spôsobom môžem mať všetky druhy rôznych vzorových sád uložené v priečinkoch, ktoré sú ľahko organizované a nahraditeľné.

Jediná vec, ktorú je potrebné v samotnom skripte zmeniť, je premenná foldNum, ktorá skriptu iba hovorí, koľko priečinkov so vzorkami existuje. V súčasnosti má skript foldNum nastavený na jednu, pretože v tom istom adresári je iba jedna podpriečinok (súprava 808). Maximálny počet priečinkov, ktoré skript v súčasnosti zvládne, je 18, čo je počet, ktorý používam, je však dosť triviálne zmeňte to, dajte mi vedieť, ak potrebujete pomoc.

Na názvoch priečinkov nezáleží (pokiaľ sú všetky odlišné), pretože Script iba načíta množstvo priečinkov v rovnakom adresári a vyberie si cestu. Názvy samotných súborov sú však dôležité, o tom viac v nasledujúcom kroku.

Krok 4: Pridajte a nakonfigurujte ďalšie vzorky v nových priečinkoch

Pridajte a nakonfigurujte ďalšie vzorky v nových priečinkoch
Pridajte a nakonfigurujte ďalšie vzorky v nových priečinkoch

Zvuky sa načítajú do vzorkovníka prostredníctvom priečinkov v rovnakom adresári, ktoré obsahujú súbory.wav s názvami číslovanými od 0 do 15. Príklad nájdete v priloženom priečinku 808. KAŽDÁ podpriečinok so vzorkami by mal navzájom vyzerať identicky.

Register MIDI vstupov v poli noteList presne zodpovedá názvu súboru.wav.

Napríklad:

  • keď spustíte MIDI notu uloženú v noteList [0], prehrá sa súbor wav 0.wav.
  • keď spustíte MIDI notu uloženú v noteList [8], prehrá sa súbor wav 8.wav.

Čiastočne som to urobil tak, aby bolo možné každý jeden MIDI kontrolér ľahko nastaviť tak, aby pracoval so skriptom, a tiež aby som mohol ľahko rozšíriť alebo obmedziť vzorové a vstupné číslo, ako aj organizovať súbory a skript tak, aby kopali bubon. zvuky, napríklad, budú vždy uložené ako 0.wav a budú spustené prvou MIDI notou.

Vybral som 16 hodnôt ľubovoľne, aby zodpovedali 16 vstupom na mojom ovládači, takže ak by ste chceli vytvoriť sekvencer iba s 1 vzorkou alebo s mnohými ďalšími, všetko, čo musíte urobiť, je zodpovedajúcim spôsobom očíslovať zvukové súbory a odčítajte alebo pripočítajte čísla uložené v poli noteList, aby sa zhodovali.

Ak zahrnutá súprava 808 funguje správne, ale máte problémy s vlastnými vzorkami, riešením by bolo s najväčšou pravdepodobnosťou zmeniť vzorkovaciu frekvenciu súborov tak, aby zodpovedala vzorkovacej frekvencii 22, 050 kHz a bitovej hĺbke 16 od spoločnosti PyGame. Môžete to urobiť v programe Audacity alebo akýkoľvek iný softvér na úpravu zvuku. Odtiaľ by mali fungovať perfektne!

Krok 5: Referencia numerickej klávesnice

Ok, v sekvenceri sa deje veľa vecí, viac ako som mal pôvodne v úmysle, takže som sa dosť natlačil na numerickú klávesnicu, aby zodpovedala zvýšenej funkčnosti. Toto má na pamäti hviezdičku * a obdobie. obe fungujú ako funkčné klávesy.

REFERENCIA

MAINFUNKCIE

[8] - Zapína a vypína metronóm

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

[Enter] - prehrávanie/pozastavenie sekvencie

[0] - Odstráňte aktuálnu poznámku v poradí

[Num Lock a *] - Vypnite

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

FUNKCIE TEMPO

[+] - Kurz Zrýchlite BPM

[-] - Kurz Spomaľte BPM

[+ a *] - Rýchle zrýchlenie BPM

[- a *] - Rýchlo spomalenie BPM

[+ a.] - Jemné zrýchlenie BPM

[- a.] - Jemné spomalenie BPM

FUNKCIE SEKVENCIE

[1-6] Pripomeňme sekvenciu 1-6

[1-6 a.] Sekvencia skladovania 1-6

[0 a.] Vymazať aktuálnu sekvenciu

VÝMENA ZLOŽIEK NA VZORKY

[1-9 a *]-Zmeňte na vzorový balíček v priečinkoch 1-9

[1-9 a * a.]-Zmeňte na vzorový balíček v priečinkoch 10-18

SEKVENČNÉ TIPY:

-Vyčistite aktuálnu sekvenciu [0 a.] A uložte ju do všetkých sekvencií, ktoré chcete vymazať z pamäte.

-Vyvolajte sekvenciu a uložte ju na iné číslo, aby ste ju mohli skopírovať.

Odporúča: