Cuprins:

Mașină de tambur Raspberry Pi: 5 pași
Mașină de tambur Raspberry Pi: 5 pași

Video: Mașină de tambur Raspberry Pi: 5 pași

Video: Mașină de tambur Raspberry Pi: 5 pași
Video: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, Iulie
Anonim
Mașină de tambur Raspberry Pi
Mașină de tambur Raspberry Pi

Sample Sequencer, prin intermediul unui Raspberry Pi + Python.

Secvențierul are 4 polifonii și permite utilizatorului să stocheze și să aleagă 6 secvențe diferite pe care le pot alterna în timp real și sprijină capacitatea de a schimba între diferite eșantioane.

Am scris scenariul într-un mod care este complet operabil cu orice controler MIDI și sunete. Folosesc 18 bănci de sunet diferite, câte 16 eșantioane, însă adăugarea sau scăderea băncilor și eșantioanelor este ușoară și nu necesită multe modificări. Dacă aveți probleme, trimiteți-mi un e-mail: [email protected]

Găsiți codul pe GitHub la:

Vă rog să-mi spuneți dacă îl utilizați și mai ales dacă creați un videoclip cu el!

Pasul 1: Dependențe

Acest program necesită următoarele module Python (non built in):

mido

pygame

neclintit

Cu toate acestea, Mido prezintă unele complicații, deoarece Mido în sine necesită câteva dependențe. Pentru a vă asigura că toate sunt instalate, introduceți următoarele comenzi în terminalul Raspberry Pi (omițând „$”) și totul va fi bine. Celelalte module pot fi instalate normal.

$ sudo apt-get update

$ sudo apt-get install build-essential

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

$ sudo pip instalează mido

Pasul 2: Configurați valorile de intrare Midi

Configurați valorile de intrare Midi
Configurați valorile de intrare Midi

În Scriptul principal Python există o matrice numită noteList care este alcătuită din 16 numere întregi (linia 165.) Acestea sunt valorile note MIDI pe care controlerul nostru le trimite către Pi pentru a declanșa sunetele. Fiecare controler midi este diferit, deci, cu excepția cazului în care aveți și un Akai LPD8, cel mai probabil va trebui să modificați aceste valori pentru a se potrivi cu dispozitivul dvs.

Repoziția Github include, de asemenea, un alt script numit „midihelp.py”, care este creat special în acest scop! Tot ce face este să imprime valorile de intrare de la primul controler MIDI recunoscut de computer către consolă. Tot ce va trebui să faceți este să înlocuiți aceste valori în matrice dacă acestea diferă de cele incluse în noteList.

Ordinea notelor se corelează, de asemenea, cu efectul de sunet pe care este redat fișierul, așa că rețineți acest lucru.

Pasul 3: Adăugați foldere suplimentare cu eșantioane

Kituri de probă din script sunt stocate prin foldere în același director, configurează exact modul în care este setul 808 în fișierul GitHub. În acest fel pot avea tot felul de seturi de eșantioane diferite stocate în foldere care sunt ușor organizate și înlocuite.

Singurul lucru de modificat în scriptul în sine este variabila foldNum, care doar spune scriptului câte dosare de mostre există. În prezent, scriptul are foldNum setat la unul, deoarece există un singur subfolder în același director (kitul 808). Folderele maxime pe care scriptul le poate gestiona în acest moment sunt 18, care sunt câte le folosesc, cu toate acestea este destul de banal pentru modificați acest lucru, anunțați-mă dacă aveți nevoie de ajutor.

Numele folderelor nu contează cu adevărat (atâta timp cât sunt toate diferite), deoarece Scriptul citește doar cantitatea de foldere din același director și apucă căile în acest fel. Numele fișierelor în sine sunt importante, totuși, mai multe despre asta în pasul următor.

Pasul 4: Adăugați și configurați mostre suplimentare în dosare noi

Adăugați și configurați mostre suplimentare în dosare noi
Adăugați și configurați mostre suplimentare în dosare noi

Sunetele sunt încărcate în eșantionator prin foldere din același director care conține fișiere.wav cu nume numerotate între 0-15. Consultați folderul 808 inclus pentru un exemplu în acest sens. FIECARE subfolder cu mostre ar trebui să arate identic unul cu celălalt.

Indexul intrărilor MIDI din matricea noteList corespunde exact cu numele fișierului.wav.

De exemplu:

  • atunci când declanșați nota MIDI stocată în noteList [0] se va reda fișierul wav 0.wav.
  • când declanșați nota MIDI stocată în noteList [8], fișierul wav 8.wav va fi redat.

Am făcut acest lucru parțial, astfel încât fiecare controler MIDI să poată fi configurat cu ușurință pentru a lucra cu scriptul, și, de asemenea, pentru a putea extinde sau limita cu ușurință eșantionul și numărul de intrare, precum și pentru a organiza fișierele și scriptul astfel încât kick drum sunetele, de exemplu, ar fi salvate întotdeauna ca 0.wav și ar fi declanșate de prima notă MIDI.

Am ales 16 valori oarecum arbitrar pentru a corespunde celor 16 intrări de pe controlerul meu, așa că, dacă preferați să creați un secvențiator cu doar 1 eșantion, sau cu multe altele, tot ce trebuie să faceți este să numerotați fișierele audio în consecință și scade sau adaugă numerele stocate în matricea noteList pentru a se potrivi.

Dacă kitul 808 inclus funcționează corect, dar aveți probleme cu propriile probe, soluția ar fi cel mai probabil să modificați rata de eșantionare a fișierelor pentru a se potrivi cu rata de eșantionare PyGame 22, 050khz și adâncimea de biți de 16. Puteți face acest lucru în Audacity sau orice alt software de editare audio. Ar trebui să funcționeze perfect de acolo!

Pasul 5: Numărul de referință al tastaturii

Ok, se întâmplă o mulțime de lucruri în cadrul secvențierului, mai mult decât mi-am gândit inițial, așa că m-am înghesuit destul de mult pe un tampon numeric pentru a se potrivi cu funcționalitatea sporită. Asta în minte, Asteriscul * și Perioada. ambele funcționează ca taste funcționale.

REFERINŢĂ

FUNCTII PRINCIPALE

[8] - Activați și dezactivați metronomul

[9] - Activați și dezactivați modul de înregistrare

[Enter] - secvența Redare / Pauză

[0] - Ștergeți nota curentă în secvență

[Num Lock și *] - Opriți

[Notă MIDI și.] - Nu cuantificați la numere pare

FUNCȚII TEMPO

[+] - Curs accelerează BPM

[-] - BPM curs lent

[+ și *] - Accelerați rapid BPM

[- și *] - BPM încetini rapid

[+ și.] - BPM accelerează fin

[- și.] - BPM încetinit fin

FUNCȚII DE SECVENȚĂ

[1-6] Reamintim secvența 1-6

[1-6 și.] Secvența de stocare 1-6

[0 și.] Ștergeți secvența curentă

MODIFICAREA FOLDERELOR EȘANTIOANE

[1-9 și *] - Schimbați pachetul de probe în folderele 1-9

[1-9 și * și.] - Schimbați în Sample Pack din folderele 10-18

SFATURI DE SECVENȚĂ:

-Stergeți secvența curentă [0 și.] Și stocați-o în orice secvență pe care doriți să o eliminați din memorie.

-Revocați o secvență și stocați-o pe un număr diferit pentru a o copia.

Recomandat: