Satura rādītājs:

Raspberry Pi bungu mašīna: 5 soļi
Raspberry Pi bungu mašīna: 5 soļi

Video: Raspberry Pi bungu mašīna: 5 soļi

Video: Raspberry Pi bungu mašīna: 5 soļi
Video: Запомни эту хитрость по доработке перфораторы для ровного сверления 2024, Novembris
Anonim
Raspberry Pi bungu mašīna
Raspberry Pi bungu mašīna

Paraugu sekvenceris, izmantojot Raspberry Pi + Python.

Sekvencētājam ir 4 polifonijas, un tas ļauj lietotājam saglabāt un norādīt 6 dažādas secības, kuras var mainīt reāllaikā, un atbalsta iespēju mainīt dažādus paraugus.

Es uzrakstīju skriptu tā, lai to varētu pilnībā izmantot ar jebkuru MIDI kontrolieri un skaņām. Es izmantoju 18 dažādas skaņas bankas, katrā 16 paraugus, tomēr banku un paraugu pievienošana vai atņemšana ir vienkārša un neprasa daudz izmaiņu. Ja rodas kādas problēmas, rakstiet man uz e -pastu: [email protected]

Atrodiet kodu vietnē GitHub:

Lūdzu, dariet man zināmu, ja to izmantojat, un jo īpaši, ja ar to veidojat video!

1. darbība. Atkarības

Šai programmai nepieciešami šādi (neiebūvēti) Python moduļi:

mido

spēles

dūšīgs

Tomēr Mido rada dažas komplikācijas, jo pats Mido prasa dažas atkarības. Lai pārliecinātos, ka tie visi ir instalēti, vienkārši ierakstiet šādas komandas Raspberry Pi terminālī (izlaižot '$'), un viss būs kārtībā. Pārējos moduļus var uzstādīt normāli.

$ sudo apt-get atjauninājums

$ sudo apt-get install build-essential

$ sudo apt-get install libasound-dev vai 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 instalējiet python-rtmidi

$ sudo pip instalēt mido

2. darbība: konfigurējiet Midi ievades vērtības

Konfigurējiet Midi ievades vērtības
Konfigurējiet Midi ievades vērtības

Galvenajā Python skriptā ir masīvs ar nosaukumu noteList, kas sastāv no 16 veseliem skaitļiem (165. rinda). Šīs ir MIDI piezīmju vērtības, kuras mūsu kontrolieris nosūta Pi, lai iedarbinātu skaņas. Tomēr katrs midi kontrolieris ir atšķirīgs, tādēļ, ja vien jums nav arī Akai LPD8, visticamāk, šīs vērtības būs jāmaina, lai tās atbilstu jūsu ierīcei.

Github repo ietver arī citu skriptu ar nosaukumu "midihelp.py", kas ir izveidots tieši šim nolūkam! Viss, kas jādara, ir izdrukāt ievades vērtības no pirmā MIDI kontroliera, kuru dators atpazīst konsolē. Viss, kas jums jādara, ir aizstāt šīs vērtības masīvā, ja tās atšķiras no noteList iekļautajām.

Piezīmju secība arī korelē ar to, kurš skaņas efekts tiek atskaņots katrai mapei, tāpēc paturiet to prātā.

3. darbība: pievienojiet papildu mapes ar paraugiem

Skripta paraugu komplekti tiek saglabāti, izmantojot mapes tajā pašā direktorijā, precīzi iestatot, kā 808 komplekts atrodas GitHub failā. Tādā veidā mapēs var tikt glabāti dažādi paraugu komplekti, kurus var viegli sakārtot un nomainīt.

Vienīgais, kas jāmaina pašā skriptā, ir mainīgais foldNum, kas tikai norāda skriptam, cik paraugu mapju ir. Pašlaik skriptam foldNum ir iestatīts uz vienu, jo tajā pašā direktorijā ir tikai viena apakšmape (808 komplekts.) Maksimālās mapes, ar kurām skripts šobrīd var rīkoties, ir 18, un to es izmantoju, taču tas ir diezgan triviāli mainiet to, informējiet mani, ja jums nepieciešama palīdzība.

Mapju nosaukumiem nav īsti nozīmes (ja vien tie visi ir atšķirīgi), jo skripts vienkārši nolasa mapju skaitu tajā pašā direktorijā un tādā veidā satver ceļus. Pašu failu nosaukumi tomēr ir svarīgi, vairāk par to nākamajā solī.

4. darbība: pievienojiet un konfigurējiet papildu paraugus jaunās mapēs

Pievienojiet un konfigurējiet papildu paraugus jaunās mapēs
Pievienojiet un konfigurējiet papildu paraugus jaunās mapēs

Skaņas tiek ielādētas paraugu ņemšanas ierīcē, izmantojot mapes tajā pašā direktorijā, kurā ir.wav faili ar nosaukumiem, kas numurēti no 0 līdz 15. Piemēru skatiet iekļautajā mapē 808. Katrai apakšmapei ar paraugiem vajadzētu izskatīties identiski.

Masīva noteList MIDI ievades indekss precīzi atbilst.wav faila nosaukumam.

Piemēram:

  • aktivizējot noteList [0] saglabāto MIDI piezīmi, tiks atskaņots wav fails 0.wav.
  • aktivizējot piezīmju sarakstā [8] saglabāto MIDI piezīmi, tiks atskaņots wav fails 8.wav.

Es to darīju daļēji tāpēc, lai ikvienu MIDI kontrolieri varētu viegli iestatīt darbam ar skriptu, kā arī lai es varētu viegli pagarināt vai ierobežot parauga un ievades numuru, kā arī sakārtot failus un skriptu tā, lai tas būtu iespējams skaņas, piemēram, vienmēr tiks saglabātas kā 0.wav, un tās iedarbinās pirmā MIDI piezīme.

Esmu izvēlējies 16 vērtības nedaudz patvaļīgi, lai tās atbilstu 16 kontroliera ieejām, tādēļ, ja vēlaties izveidot sekvenceri ar tikai vienu paraugu vai ar daudziem citiem, viss, kas jums jādara, ir atbilstoši numurēt audio failus un atņemiet vai pievienojiet NoteList masīvā saglabātos skaitļus, lai tie atbilstu.

Ja komplektā iekļautais 808 komplekts darbojas pareizi, bet jums ir problēmas ar saviem paraugiem, visticamāk, risinājums būs mainīt failu izlases ātrumu, lai tie atbilstu PyGame 22, 050 khz izlases ātrumam un bitu dziļumam 16. To var izdarīt, izmantojot Audacity vai jebkura cita audio rediģēšanas programmatūra. No turienes viņiem vajadzētu strādāt perfekti!

5. darbība: atsauce uz cipartastatūru

Ok, sekvencerā notiek daudz lietu, nekā es sākotnēji biju domājis, tāpēc es diezgan daudz piebāzu uz cipartastatūras, lai atbilstu paaugstinātajai funkcionalitātei. Paturot to prātā, zvaigznīte * un periods. abi darbojas kā funkciju taustiņi.

ATSAUCE

GALVENĀS FUNKCIJAS

[8] - Ieslēgt un izslēgt metronomu

[9] - Ieslēgt un izslēgt ierakstīšanas režīmu

[Enter] - Atskaņošanas/pauzes secība

[0] - Dzēst pašreizējo piezīmi secīgi

[Num Lock un *] - Izslēdzieties

[MIDI piezīme un.] - Nekvantējiet līdz pāra skaitļiem

TEMPO FUNKCIJAS

[+] - Kursa paātrināšana BPM

[-] - Kursa palēnināšana BPM

[+ un *] - strauji paātriniet BPM

[- un *] - strauji palēniniet BPM

[+ un.] - Fine Paātrināt BPM

[- un.] - Fine Slow Down BPM

SEKENCES FUNKCIJAS

[1-6] Atsaukt secību 1-6

[1-6 un.] Veikala secība 1-6

[0 un.] Notīrīt pašreizējo secību

PARAUGU mapju maiņa

[1-9 un *]-pārejiet uz parauga iepakojumu mapēs 1-9

[1-9 un * un.]-Pārslēdzieties uz parauga iepakojumu mapēs 10-18

SEKENCES PADOMI:

-Notīriet pašreizējo secību [0 un.] Un saglabājiet to visās secībās, kuras vēlaties izdzēst no atmiņas.

-Atgādiniet secību un saglabājiet to citā numurā, lai to kopētu.

Ieteicams: