Kazalo:

Keytar Hero (Uporaba krmilnika kitare Wii kot sintetizatorja): 7 korakov (s slikami)
Keytar Hero (Uporaba krmilnika kitare Wii kot sintetizatorja): 7 korakov (s slikami)

Video: Keytar Hero (Uporaba krmilnika kitare Wii kot sintetizatorja): 7 korakov (s slikami)

Video: Keytar Hero (Uporaba krmilnika kitare Wii kot sintetizatorja): 7 korakov (s slikami)
Video: Jesse Cale - Keytar Hero 2024, Julij
Anonim
Image
Image
1. korak: Raspberry Pi (začetna nastavitev)
1. korak: Raspberry Pi (začetna nastavitev)

Igre Guitar Hero so bile besne pred dvanajstimi leti, zato se bo naokoli nabiralo veliko starih krmilnikov kitar. Imajo veliko gumbov, gumbov in ročic, zakaj jih ne bi spet dobro uporabili? Krmilnik kitare običajno sam po sebi ne oddaja zvoka, v tem vodiču pa vam bom pokazal, kako pretvoriti Wii Guitar Hero Controller, tako da ga lahko predvajate kot sintetizator.

Zaloge

  • Guitar Hero Wii Controller
  • Nunchucky breakout board (na voljo na Adafruit tukaj)
  • 4ea mostične žice (ženska na žensko)
  • 2ea priključki za stiskanje (neobvezno)
  • Raspberry Pi (prednostno 3 B+ ali 4)
  • 16 GB kartica MicroSD

1. korak: 1. korak: Raspberry Pi (začetna nastavitev)

Raspberry Pi je možgani in moč tega projekta, zato moramo najprej narediti enega za naš projekt. Ta projekt sem preizkusil tako na Raspberry Pi 3 B+ kot na 4, in zdi se, da oba delujeta dobro.

Raspberry Pi so mikroračunalniki, ki namesto trdega diska … vključno z operacijskim sistemom, shranijo vse na kartico microSD. Tipičen način njihove uporabe je prenos najnovejšega operacijskega sistema in njegovo zapisovanje na kartico microSD na naslednji način:

  • V ločenem računalniku ali prenosnem računalniku pojdite na
  • Prenesite najnovejši OS Raspbian. (Buster v času tega pisanja). Na strani je na voljo več različic, ki ponujajo bolj ali manj vključeno programsko opremo, odvisno od vaših želja. Vsi bi morali delovati v redu, vendar rad uporabljam možnost "Raspbian Buster z namizjem in priporočeno programsko opremo", ker vključuje nekatere programske IDE in druge priročne aplikacije. Najlažji način je, da prenesete zip različico.
  • Zapiši sliko Raspbian na kartico microSD. Obstaja veliko aplikacij, ki jih lahko uporabite za zapisovanje slike Raspbian na kartico microSD, vendar sem uporabil program balenaEtcher, ki ga dobite tukaj. Vstavite kartico microSD v računalnik in zaženite balenaEtcher. Za sliko diska izberite datoteko zip, ki ste jo prenesli, nato izberite kartico SD in pritisnite bliskavico. Orodje bo razpakiralo slikovne datoteke diska in jih zapisalo na kartico SD. POMEMBNO: Poskrbite, da je izbrani pogon kartica microSD … orodje bo prepisalo kateri koli pogon, ki ga navedete, zato se prepričajte, da ste izbrali pravega.
  • Zaženite svoj Raspberry Pi. Vstavite kartico microSD v svoj Raspberry Pi. Priključite napajanje, miško, tipkovnico in zvočnike. Če sledite pozivom, je precej samoumevno … nastavite svojo lokacijo/čas, nastavite geslo in povežite WiFi.

To so vse standardne nastavitve za Raspberry Pi, zato jih, če potrebujete več podrobnosti, najdete tukaj. Preostale korake bomo naredili na Raspberry Pi.

2. korak: 2. korak: Omogočite I2c

2. korak: Omogočite I2c
2. korak: Omogočite I2c

Guitar Hero Controller uporablja i2c za komunikacijo (i2c je precej pogost protokol, ki ga uporabljajo elektronske naprave za medsebojni pogovor), zato moramo to možnost omogočiti na Raspberry Pi:

  • Namestite knjižnice za i2c. Zdi se, da so knjižnice i2c del standardne zgradbe Buster, vendar bomo za vsak slučaj namestitveni program zagnali namesto njih. Odprite lupino (v opravilni vrstici na vrhu je njena ikona) in vnesite naslednje:

    • sudo apt-get install -y python-smbus
    • sudo apt-get install -y i2c-tools
  • Omogočite i2c na Raspberry Pi. V lupini vnesite: sudo raspi-config. To bo odprlo vaše konfiguracijsko okno. Puščico navzdol do InterfacingOptions-> I2C omogočite i2c za napravo. Če želite priti ven iz okna, puščico desno izberite Nazaj in nato Končaj, da shranite nastavitve.
  • Znova zaženite. V lupino vnesite: sudo reboot
  • Nastavite parametre i2c po meri. Zdi se, da privzeta hitrost prenosa i2c (100k) občasno zmede kitaro, zato jo bomo upočasnili na 50k na naslednji način:

    • V vrsti lupine: sudo nano /boot/config.txt
    • To bo odprlo vašo konfiguracijsko datoteko v urejevalniku besedil. S puščico navzdol poiščite vrstico z napisom dtparam = i2c_arm = on. Če je komentar komentiran, ga razkomentirajte. Če te vrstice nimate, jo dodajte. Pod to vrstico dodajte tudi naslednje:

      • dtparam = i2c1 = vklopljeno
      • dtparam = i2c1_baudrate = 50000
    • Pritisnite Ctrl + O, da shranite konfiguracijsko datoteko, nato pritisnite Ctrl + X za izhod.
  • Znova zaženite. V lupino vnesite: sudo reboot

3. korak: 3. korak: Namestite čiste podatke

3. korak: Namestite čiste podatke
3. korak: Namestite čiste podatke
3. korak: Namestite čiste podatke
3. korak: Namestite čiste podatke

Za zvoke sintetizatorja bomo uporabili program, imenovan Pure Data. To je generativno zvočno in interaktivno orodje za prikaz, ki obstaja že kar nekaj časa. Ima nekaj funkcij, zaradi katerih je idealen za ta projekt … ima uporabniški vmesnik na osnovi vozlišč, ki je dokaj enostaven za uporabo in lahko sprejema signale iz zunanjih virov, kot so skripti python.

  • Namestite Pure Data. V lupini tipa: sudo apt-get install puredata
    • To bi moralo namestiti programsko opremo na vaš Raspberry Pi, če pa se v lupini pritožuje, da ne more najti vseh datotek, ki jih potrebuje, poskusite to:

      • sudo apt-get posodobitev
      • Nato znova zaženite ukaz install: sudo apt-get install puredata
    • Med namestitvijo vas bo vprašal, če želite ustvariti imenike za razširitve, lahko rečete Da.
  • Zaženite čiste podatke. Če je pravilno nameščen, bi morali videti program, ki je naveden v meniju Start na namizju pod Zvok in video. Zaženite ga in se prepričajte, da se zažene.
  • Nastavite zvok Pure Data. Zvok v Pure Data običajno ni privzeto vklopljen, zato ga morate omogočiti.

    • Zvočni izhod nastavite na ALSA. Ko se Pure Data zažene, bi morali videti okno konzole. Pojdite v meni Mediji in za izhod izberite ALSA. V lupini konzole boste morda videli opozorilna sporočila, ki pravijo, da ne more najti določenih datotek, vendar tega lahko prezrete.
    • Vklopite zvok DSP. V oknu konzole potrdite potrditveno polje DSP.
  • Preizkusite avdio izhod. V oknu konzole Pure Data pojdite na Media-> Test Audio & MIDI. S tem se odpre preskusna datoteka, s katero se lahko prepričamo, da čisti podatki delujejo in da lahko slišimo zvok. Vklopite zvočnike, vendar jih sprva držite pri nizki glasnosti (včasih je zvok privzeto lahko zelo glasen). V testni datoteki na levi strani bi morali videti razdelek z imenom Test Tones. Najprej kliknite polje z napisom 60 in preverite, ali iz zvočnikov slišite kakšen zvok. Če ne, poskusite klikniti polje 80 in nato povečajte zvočnike, dokler ne zaslišite zvoka. Če slišite zvok, poskusite povleči polje, ki pravi Pitch, desno od preskusnih tonov, kjer lahko spremenite frekvenco tonov in vidite, kaj se zgodi.

Če lahko zaženete čiste podatke in slišite zvok iz preskusnega popravka, ste pripravljeni, da nadaljujete na naslednji korak. Toda čisti podatki so lahko prvič nekoliko zahtevni glede zvočnega izhoda, zato, če še vedno ne dobite zvoka, poskusite naslednje:

  • Možno je, da zvok vodi prek kabla HDMI, zato ga prisilite v priključek za slušalke:

    • V vrstici lupine: sudo raspi-config
    • Pojdite na Napredne možnosti-> Zvok-> Prisilno vtičnico 3,5 mm ('slušalke')
  • Poskusite znova zagnati. Včasih to pomaga.
  • Preverite zvočnike in povezavo z Raspberry Pi.

4. korak: 4. korak: Priključitev kitare

4. korak: Priključitev kitare
4. korak: Priključitev kitare
4. korak: Priključitev kitare
4. korak: Priključitev kitare
4. korak: Priključitev kitare
4. korak: Priključitev kitare

Krmilnik kitare najlažje povežete z Raspberry Pi z poceni odklopno ploščo, kot je Nunchucky*. Ta plošča vam omogoča dostop do signala, ki prihaja iz kitare, ne da bi prekinili vtič ali odprli kitaro. Na eni strani plošče so ravne sledi, oblikovane tako, da se popolnoma prilegajo vtiču, ki prihaja iz kitare. Obstajata tudi dve majhni zarezi, ki omogočata, da se vtikač zaskoči in tako prepreči, da bi se sprostil. Sledi vodijo do štirih zatičev glave na nasprotni strani plošče.

Opomba: Nunchucky ima zatiče za glavo, vendar niso spajkani, zato boste to morali storiti sami. Za svoje sem namesto tega uporabil 90 -stopinjski zatič glave, ki mu omogoča, da se v končnem projektu položi ravno.

Za povezavo Nunchuckyja z Raspberry Pi potrebujete štiri žice. Priključite žice z nožic glave Nunchucky na zatiče GPIO Raspberry Pi na naslednji način:

  • 3.3v -> Pin 1
  • Podatki -> Pin 3
  • Clk -> Pin 5
  • Gnd -> Pin 9

V svojem projektu sem za žice uporabil stisnjene konektorje, da se niso tako zlahka izvlekli. Če pa nimate priklopnih konektorjev, bodo štiri posamezne žice moški na žensko delovale dobro. Če vseeno uporabljate spojke za stiskanje, bodite pozorni na vrstni red žic na zatičih glave in zatičih GPIO. Upoštevajte tudi, da na zatičih GPIO preskočimo nožico 7. Zaradi tega sem na enem koncu uporabil petžilni konektor za stiskanje in preskočil eno režo.

Če želite preveriti, ali vaš Raspberry Pi zazna krmilnik kitare, odprite lupino in vnesite: sudo i2cdetect -y 1

V lupini mora natisniti mrežo z večinoma dvojnimi črticami. Če računalnik zazna kitaro, bi morali videti kitaro ID# 52 v enem od rež … na mojem stroju se je prikazala v stolpcu 2, vrstica 5 … vendar ni pomembno, katera, če vidite številka 52 nekje tam.

Če ga računalnik ne zazna, lahko poskusite nekaj:

  • Prepričajte se, da so vaše žice tesno povezane.
  • Prepričajte se, da imate vse povezane s pravimi zatiči.
  • Obrnite vtič za kitaro. Nunchucky vam ne preprečuje, da priključite vtič na glavo, zato ga lahko obrnete.
  • Prepričajte se, da je i2c omogočen na Raspberry Pi (kot je prikazano v 2. koraku)

*Če je vtič na krmilniku kitare znan, je to zato, ker je enak standardnemu krmilniku Wii Nunchuck … od tod tudi ime Nunchucky! To tudi pomeni, da lahko isto ploščo uporabite tudi za povezavo s krmilniki nunchuck.

5. korak: 5. korak: Vse skupaj

5. korak: Združite vse skupaj
5. korak: Združite vse skupaj
5. korak: Združite vse skupaj
5. korak: Združite vse skupaj

Zdaj, ko je vse nastavljeno na Raspberry Pi, potrebujemo le malo kode, da bo delovalo. Kodo in druge potrebne datoteke lahko prenesete na naslednji način:

  • Če želite prenesti kodo in druge datoteke na Raspberry Pi, odprite novo lupino in vnesite naslednji ukaz (pred tem boste morda morali postaviti "sudo"): git clone
  • To bo ustvarilo imenik v vašem domačem imeniku, imenovan keytarHero (tj./Home/pi/keytarHero) in vanj naložil datoteke.

V tem paketu so tri glavne datoteke:

  • WiiGHController.py: Ta skript python odpre povezavo i2c s kitaro in vrne vrednosti različnih kontrol. Privzeto natisne tudi vrednosti, ki jih bere, v lupino, tako da lahko vidite, kaj počne.
  • keytarHero.pd: To je datoteka popravkov Pure Data, ki sem jo ustvaril za ustvarjanje glasbe, ki jo boste slišali. Nastavljen je tako, da bere vrednosti, ki prihajajo iz kitare, in jih usmerja v različna vozlišča za ustvarjanje zvokov. V naslednjem koraku bom razpravljal o podrobnostih popravka, vendar lahko na koncu to spremenite tako, da od tukaj naredite vse, kar želite.
  • keytarHero.py: To je skript, ki zažene celoten postopek in vse skupaj zlepi. Zažene Pure Data in odpre popravek keytarHero.pd. Odpre povezavo z obližem in prenese vrednosti iz kitare v obliž.

Trenutek resnice! Prepričajte se, da je kitara povezana z Raspberry Pi in da ste pripravljeni. Če želite začeti, morate zagnati skript keytarHero.py. Storiti to:

  • Odprite novo lupino in vnesite: cd keytarHero
  • Nato zaženite ukaz: python keytarHero.py

To je to! Če vse deluje pravilno, bi se moral Pure Data zagnati in začeti predvajati popravek. Slišati bi morali zaporedje not, ki se predvajajo, in ko pritisnete gumbe na kitari, se mora odzvati.

Odpravljanje težav

Če ne deluje, morate preveriti nekaj stvari:

  • Pure Data Patch se ne zažene ali se prikaže napaka, da ne najdete datotek? Skript keytarHero.py ima pot do datoteke popravkov Pure Data, trdo kodirane na '/home/pi/keytarHero/keytarHero.pd'. Če ste mapo keytarHero ali datoteko popravkov premaknili drugam, boste morali posodobiti skript, da bo namesto tega uporabil vašo pot. Če želite to narediti, odprite datoteko keytarHero.py in poiščite spremenljivko, imenovano PD_PATCH_PATH, in jo spremenite tako, da bo kazala na imenik, v katerem živi vaša datoteka keytarHero.pd. Shranite skript in ga znova zaženite, zato morate iti.
  • Ali kitara oddaja signal? Scenarij bi moral neprekinjeno tiskati signal, ki ga dobi iz kitare v lupino, kot niz številk, od katerih vsaka predstavlja vrednost kontrolnika na kitari. Ko uporabljate kontrolnik na kitari, bi se morale te številke spremeniti. Če ne, preverite, ali ste v zgornjih korakih pravilno izvedli nastavitev i2c in povezave kitare.
  • Ali je vklopljen zvok Pure Data? Popravek Pure Data, ki je na voljo v tem paketu, bi moral samodejno vklopiti zvok, vendar preveriti, ali je potrditveno polje DSP v konzoli Pure Data vklopljeno. Preverite tudi nastavitve zvoka, kot je prikazano v 3. koraku.
  • Ali Pure Data sprejema signal s kitare? V zgornjem desnem kotu popravka je kup vozlišč, ki so odgovorna za branje signala s kitare in prenos na preostanek obliža. Ko pritisnete gumbe na kitari, se morajo številke v tem razdelku posodobiti in povedati, da signal pravilno sprejema.
  • Inicializiranje spremenljivk v popravku. Čisti podatki so lahko nekoliko zahtevni, ker se vrednosti v popravku ne inicializirajo. Dodal sem mehanizme za sprožanje spremenljivk, ko se odpre, vendar bi bilo vredno samo klikniti na nekatera polja s sporočili (tista, ki so videti, kot da jim je ugriznil ugriz). Zaradi tega se inicializirajo in jih lahko zbudijo.

6. korak: Ogled čistega popravka podatkov

Ogled popravka čistih podatkov
Ogled popravka čistih podatkov
Ogled popravka čistih podatkov
Ogled popravka čistih podatkov
Ogled popravka čistih podatkov
Ogled popravka čistih podatkov
Ogled popravka čistih podatkov
Ogled popravka čistih podatkov

Doslej opisana namestitev v tej vadnici vam bo pomagala, a ena izmed lepih stvari pri uporabi čistih podatkov za ta projekt je, da jo lahko prilagodite tako, da naredi vse, kar želite. Ko je popravek odprt, če pritisnete Ctrl + E, preklopi popravek v način za urejanje in ga lahko spremenite. Podrobnosti o uporabi čistih podatkov presegajo obseg te vadnice (za to je na voljo veliko vadnic), vendar se je z njo lahko zabavati, zato je tukaj splošen pregled dogajanja v popravku keytarHero.pd, če ga želite prilagoditi:

  • Komunikacija s kitaro: V zgornjem desnem kotu popravka je drevo vozlišč, odgovornih za obravnavo signala s kitare. Vrednosti iz kitare so dolg niz, zato ta vozlišča razdelijo niz na posamezne vrednosti za vsako kontrolo, jih pretvorijo v številke in jih nato posredujejo v "pošiljanje" vozlišč (tistih, ki se začnejo s s). Pošiljalskim vozliščem je dodeljeno ime in oddajajo signal za 'sprejem' vozlišč z istim imenom. Na primer vozlišče 's whammy' oddaja vrednosti, ki prihajajo iz kitare whammy bar, vozlišče 'r whammy' na sredini popravka pa sprejme ta signal in ga uporabi za zaustavitev sekvencera. Vozlišča za pošiljanje/sprejemanje pomagajo zmanjšati nered povezanih linij v popravku. Ne priporočam, da se zapletete s tem razdelkom, saj je vse skupaj precej zapleteno, vsekakor pa lahko po celotnem popravku dodate dodatna sprejemna vozlišča, ki po potrebi sprejemajo signale iz njega.
  • Odsek zaporedja: srednji del popravka nadzoruje sekvencer. Na levi strani je vrstica s premikajočim se črnim kvadratom, ki vam pokaže, katero noto zaporedja s 16 notami predvaja. Tipka strum nadzoruje, ali se zaporedje predvaja naprej ali nazaj. Gumbi plus/minus povečajo/zmanjšajo hitrost. Na desni strani je pet nizov številk, ki nadzorujejo, katere note igrajo med vsakim korakom. Vsako zaporedje je dodeljeno za predvajanje, ko pritisnete enega od petih gumbov na fretu. Te številke so vrednosti MIDI in jih lahko spremenite tako, da igrajo kakršne koli note, ki jih želite … dajte jim vrednosti med 0 in 127.
  • Odsek Oscilator/FX: V spodnjem levem kotu so vozlišča oscilatorja in FX, ki dejansko oddajajo zvok. Primarni oscilator je na levi. Midi vrednosti iz odseka sekvencera se pretvorijo v frekvence in se vnesejo v oscilator. Mešan je z drugim oscilatorjem, ki prihaja z desne strani. Njegovo frekvenco nadzirajo tudi midi vrednosti, vendar z dodatnim odmikom frekvence, ki ga poganja os X krmilne palice. To povzroči, da premaknete krmilno palčko v levo ali desno, ali pa izklopite ali žvižgajoč učinek. V spodnjem desnem kotu je tudi nizkoprehodno filtrirno vozlišče, katerega mejna frekvenca je vezana na os Y krmilne palice. Nizkoprepustni filter določa, koliko visokofrekvenčnega zvoka se odstrani iz zvoka. Ko se krmilna palica premakne navzdol, prekine večino visokih frekvenc, kar povzroči prigušen zvok. Ko se premakne navzgor, preide skozi vse frekvence, kar povzroči svetlejši zvok.
  • Inicializacija: V zgornjem levem delu popravka je vrsta vozlišč, ki inicializirajo popravek, ko se zažene, na primer vklopi zvok in se dotakne različnih vozlišč, da jih prebudi. Tudi v tem razdelku vam verjetno ni treba motiti, če pa želite, da se ob zagonu popravka zgodijo stvari, jih povežite z vozliščem, imenovanim 'loadbang'.
  • Poskušal sem dokumentirati popravek s komentarji v samem popravku, zato upam, da vam bo to dalo dovolj informacij za raziskovanje različnih možnosti.

Uživajte!

7. korak: Dodatne stvari, ki jih morate poskusiti

Vodenje kitare brez glave

Ta projekt bi moral biti omogočen brez povezave z monitorjem/tipkovnico/miško, če ste svoj Raspberry Pi zagnali iz ustreznega prenosnega vira napajanja. Raspberry Pi se ne ujema čisto z odprtino na zadnji strani kitare, če pa se počutite pogumno, lahko kitaro spremenite, da to popravite … ali pa pritrdite Pi na zadnjo stran z vijaki in jo pritrdite malo ven. Na spletu je veliko vadnic o tem, kako zagnati skripte na Raspberry Pi brez glave, vendar bi v bistvu želeli zagnati ukaz 'python /home/pi/keytarHero/keytarHero.py&', ko se zažene. Teoretično bi imeli kitaro z enim kablom, ki prihaja iz zvočnika … tako kot prava električna kitara!

Dodatne spremembe čistih podatkov

Imel sem nekaj drugih idej, kako bi kitara lahko nadzorovala obliž Pure Data, vendar nisem poskusil. To bi bile spremembe v popravku, s katerimi bi bilo lahko zabavno eksperimentirati:

  • Vrstica Whammy: V trenutnem popravku vrstica whammy preprosto ustavi predvajanje zaporedja, vendar mislim, da bi bilo bolje, če bi vrstica whammy hkrati povečala frekvenco, tako kot bi to naredila prava vrstica whammy. Nekaj časa sem poskušal delovati, vendar je bilo težje, kot sem mislil. Mislim, da bi lahko šlo le za dodajanje izraza v odsek oscilatorja, ki oscilatorju doda nekoliko višjo frekvenco glede na vrednost, ki prihaja iz stolpca whammy.
  • Vrstica Strum: trenutno vrstica strum predvaja zaporedje naprej, ko je pritisnjeno navzdol, in nazaj, ko je pritisnjeno navzgor, morda pa bi bilo bolje, če bi preklapljala med različnimi možnostmi zaporedja, kot je naključni korak itd.
  • Gumbi plus/minus: gumbi plus/minus spreminjajo utripe na minuto, vendar je to nekoliko moteče, razen če jih pritisnete večkrat. Morda bi bilo dobro, da se vsakič poveča za več. Ali pa naj sekvenčni pretvornik preklopi med 16-taktno, 8-taktno, 4-taktno, trojno predvajanje.

Priporočena: