Sisukord:

Vaarika Pi trummimasin: 5 sammu
Vaarika Pi trummimasin: 5 sammu

Video: Vaarika Pi trummimasin: 5 sammu

Video: Vaarika Pi trummimasin: 5 sammu
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Juuli
Anonim
Vaarika Pi trummimasin
Vaarika Pi trummimasin

Proovijärjestus Raspberry Pi + Pythoni kaudu.

Sekventeerijal on 4 polüfooniat ja see võimaldab kasutajal salvestada ja üles seada 6 erinevat järjestust, mida nad saavad reaalajas vaheldumisi vahetada, ning toetab võimalust erinevate proovide vahel vahetada.

Kirjutasin skripti viisil, mis on täiesti toimiv tõesti kõigi MIDI -kontrollerite ja helidega. Ma kasutan 18 erinevat helipanka, igaüks 16 näidist, kuid pankade ja näidiste lisamine või lahutamine on lihtne ega vaja palju muudatusi. Kui teil on probleeme, saatke mulle e -kiri: [email protected]

Leidke kood GitHubist aadressil:

Palun andke mulle teada, kui kasutate seda, ja eriti kui teete sellega video!

Samm: sõltuvused

See programm nõuab järgmisi (mitte sisseehitatud) Pythoni mooduleid:

mido

pügame

numpy

Kuid Mido tekitab mõningaid tüsistusi, kuna Mido ise nõuab mõningaid sõltuvusi. Veendumaks, et need kõik installitakse, sisestage lihtsalt oma Raspberry Pi terminali järgmised käsud (jättes välja "$") ja kõik on korras. Teisi mooduleid saab paigaldada tavapäraselt.

$ sudo apt-get update

$ sudo apt-get install build-essential

$ sudo apt-get install libasound-dev või 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. toiming: seadistage midi sisendväärtused

Seadistage midi sisendväärtused
Seadistage midi sisendväärtused

Peamise Pythoni skripti sees on massiiv nimega noteList, mis koosneb 16 täisarvust (rida 165.) Need on MIDI märkmete väärtused, mille meie kontroller saadab helide käivitamiseks Pi -le. Iga midi -kontroller on siiski erinev, nii et kui teil pole ka Akai LPD8, peate tõenäoliselt neid väärtusi oma seadmele vastavaks muutma.

Githubi repo sisaldab ka teist skripti nimega "midihelp.py", mis on spetsiaalselt selleks loodud! Kõik, mida ta teeb, on printida sisendväärtused esimesest MIDI -kontrollerist, mille arvuti konsoolile tuvastab. Peate vaid need väärtused massiivis asendama, kui need erinevad noteListis sisalduvatest.

Märkmete järjekord korreleerub ka sellega, millist heliefekti kausta kohta esitatakse, nii et pidage seda ka meeles.

Samm: lisage näidistega täiendavaid kaustu

Skripti näidiskomplektid salvestatakse samas kataloogis olevate kaustade kaudu, seadistades täpselt, kuidas komplekt 808 GitHubi failis asub. Nii saan kaustadesse salvestada igasuguseid erinevaid näidiskomplekte, mida on lihtne korraldada ja asendada.

Ainus asi, mida skriptis endas muuta, on muutuja foldNum, mis lihtsalt ütleb skriptile, kui palju näidiste kaustu on. Praegu on skripti foldNum väärtuseks määratud üks, kuna samas kataloogis on ainult üks alamkaust (komplekt 808.) Maksimaalsed kaustad, mida skript praegu käsitseda saab, on 18, mida ma kasutan, kuid see on üsna triviaalne muutke seda, andke mulle teada, kui vajate abi.

Kaustade nimed pole tegelikult olulised (seni, kuni need kõik on erinevad), kuna skript lihtsalt loeb samas kataloogis olevate kaustade arvu ja haarab sel viisil teed. Failide enda nimed on siiski olulised, sellest lähemalt järgmises etapis.

Samm: lisage ja konfigureerige täiendavaid proove uutesse kaustadesse

Lisage ja konfigureerige täiendavaid proove uutes kaustades
Lisage ja konfigureerige täiendavaid proove uutes kaustades

Helid laaditakse proovivõtjasse samas kataloogis olevate kaustade kaudu, mis sisaldavad.wav-faile, mille nimed on nummerdatud vahemikus 0-15. Selle näite leiate lisatud kaustast 808. IGA proovidega alamkaust peaks üksteisega identne välja nägema.

Massiivi noteList MIDI -sisendite indeks vastab täpselt.wav -failinimele.

Näiteks:

  • kui käivitate NoteList [0] -is salvestatud MIDI -märkme, esitatakse wav -fail 0.wav.
  • kui käivitate märkmelehele [8] salvestatud MIDI -märkme, mängib wav -fail 8.wav.

Tegin seda osaliselt nii, et iga MIDI -kontrollerit oleks võimalik hõlpsasti seadistada skriptiga töötamiseks, samuti saaksin proovi ja sisendnumbrit hõlpsalt pikendada või piirata, samuti faile ja skripti nii korraldada näiteks helid salvestatakse alati 0.wav -vormingus ja käivitatakse esimese MIDI -märkusega.

Olen valinud 16 väärtust mõnevõrra meelevaldselt, et need vastaksid minu kontrolleri 16 sisendile, nii et kui soovite teha ainult ühe prooviga või paljude teistega järjestuse, siis peate vaid helifailid vastavalt nummerdama ja lahutage või lisage NoteList massiivi salvestatud numbrid vastavaks.

Kui kaasasolev 808 komplekt töötab korralikult, kuid teil on probleeme oma näidistega, oleks kõige tõenäolisem lahendus failide proovivõtu sageduse muutmine, et see vastaks PyGame'i 22, 050 khz diskreetimissagedusele ja biti sügavusele 16. Seda saate teha teenuses Audacity või mis tahes muu heli redigeerimise tarkvara. Sealt peaksid nad ideaalselt töötama!

Samm: viide numbriklahvidele

Ok, sekventseris toimub palju asju, rohkem kui algselt silmas pidasin, nii et toppisin üsna palju numbripadjale, et see vastaks suurenenud funktsionaalsusele. Seda silmas pidades, tärn * ja periood. mõlemad toimivad funktsiooniklahvidena.

VIIDE

PÕHITÖÖD

[8] - Lülitage metronoom sisse ja välja

[9] - Salvestusrežiimi sisse- ja väljalülitamine

[Sisesta] - Esitus-/pausijada

[0] - kustutage järjestikune märkus

[Num Lock ja *] - lülitage välja

[MIDI märkus ja.] - Ärge kvantiseerige paarisarvudeks

TEMPO FUNKTSIOONID

[+] - Kursus kiirendab BPM -i

[-] - Kursus aeglustab BPM -i

[+ ja *] - kiirendage kiiresti BPM -i

[- ja *] - aeglustage BPM -i kiiresti

[+ ja.] - Peen kiirendage BPM -i

[- ja.] - Hästi aeglane BPM

JÄRJE FUNKTSIOONID

[1-6] Meenuta jada 1-6

[1-6 ja.] Salvestage järjestus 1-6

[0 ja.] Kustuta praegune jada

NÄIDISKAUSTIDE MUUTMINE

[1-9 ja *]-muutke kaustade 1-9 näidispaketiks

[1-9 ja * ja.]-Muutke kaustade 10-18 proovipaketiks

JÄRJEPANEKUD:

-Tühjendage praegune jada [0 ja.] Ja salvestage see kõikidesse jadadesse, mille soovite mälust kustutada.

-Meenutage jada ja salvestage see kopeerimiseks teisele numbrile.

Soovitan: