Sadržaj:

Keytar Hero (Korištenje Wii gitarskog kontrolera kao sintetizatora): 7 koraka (sa slikama)
Keytar Hero (Korištenje Wii gitarskog kontrolera kao sintetizatora): 7 koraka (sa slikama)

Video: Keytar Hero (Korištenje Wii gitarskog kontrolera kao sintetizatora): 7 koraka (sa slikama)

Video: Keytar Hero (Korištenje Wii gitarskog kontrolera kao sintetizatora): 7 koraka (sa slikama)
Video: Jesse Cale - Keytar Hero 2024, Studeni
Anonim
Image
Image
Korak 1: Raspberry Pi (početno postavljanje)
Korak 1: Raspberry Pi (početno postavljanje)

Igre Guitar Hero bile su u modi prije desetak godina, pa će zasigurno biti puno starih gitarskih kontrolera koji leže skupljajući prašinu. Imaju puno gumba, gumba i poluga, pa zašto ih ne biste ponovno dobro iskoristili? Kontroler gitare obično ne proizvodi nikakav zvuk sam po sebi, ali u ovom tutorialu ću vam pokazati kako pretvoriti Wii Guitar Hero Controller tako da se može svirati kao sintisajzer.

Pribor

  • Wii kontroler Guitar Hero
  • Nunchucky breakdown board (dostupno na Adafruit -u ovdje)
  • 4ea kratkospojne žice (ženska na žensku)
  • 2ea konektori za presovanje (opcionalno)
  • Raspberry Pi (poželjno 3 B+ ili 4)
  • 16 GB MicroSD kartica

Korak 1: Korak 1: Raspberry Pi (početno postavljanje)

Raspberry Pi je mozak i snaga ovog projekta, pa prvo što moramo učiniti je postaviti ga za naš projekt. Isprobao sam ovaj projekt i na Raspberry Pi 3 B+ i na 4, i čini se da oba rade dobro.

Raspberry Pi's su mikroračunala koja pohranjuju sve na microSD karticu umjesto na tvrdi disk … uključujući OS. Tipičan način njihove upotrebe je preuzimanje najnovijeg OS -a i snimanje njegove slike na microSD karticu na sljedeći način:

  • Na zasebnom računalu ili prijenosnom računalu idite na
  • Preuzmite najnoviji Raspbian OS. (Buster u vrijeme pisanja ovog teksta). Na stranici je dostupno više verzija koje daju više ili manje uključeni softver, ovisno o vašim željama. Svi bi trebali raditi dobro, ali ja volim koristiti opciju "Raspbian Buster sa stolnim računalom i preporučenim softverom" jer uključuje neke programske IDE -ove i druge zgodne aplikacije. Najjednostavniji način je preuzeti zip verziju.
  • Snimite Raspbian sliku na microSD karticu. Postoji mnogo aplikacija koje možete koristiti za snimanje Raspbian slike na vašu microSD karticu, ali ja sam koristio program balenaEtcher koji možete dobiti ovdje. Umetnite microSD karticu u računalo i pokrenite balenaEtcher. Za sliku diska odaberite zip datoteku koju ste preuzeli, zatim odaberite SD karticu i pritisnite bljeskalicu. Alat će otpakirati datoteke slike diska i snimiti ih na SD karticu. VAŽNO: Provjerite je li pogon koji odaberete microSD kartica … alat će prebrisati bilo koji pogon koji navedete pa provjerite jeste li odabrali ispravan.
  • Pokrenite svoj Raspberry Pi. Umetnite microSD karticu u svoj Raspberry Pi. Priključite napajanje, miš, tipkovnicu i zvučnike. Ako slijedite upute, to je samo po sebi razumljivo … postavite svoju lokaciju/vrijeme, postavite lozinku i povežite WiFi.

Ovo su sve standardne postavke za Raspberry Pi pa ako trebate više detalja, možete ih pronaći ovdje. Ostatak koraka ćemo raditi na Raspberry Pi.

Korak 2: Korak 2: Omogućite I2c

Korak 2: Omogućite I2c
Korak 2: Omogućite I2c

Guitar Hero Controller koristi i2c za komunikaciju (i2c je prilično uobičajen protokol koji koriste elektronički uređaji za međusobni razgovor), pa moramo omogućiti ovu značajku na Raspberry Pi:

  • Instalirajte knjižnice za i2c. Čini se da su i2c knjižnice sada dio Buster standardne verzije, no za svaki ćemo slučaj za njih pokrenuti instalacijski program. Otvorite ljusku (za to postoji ikona na programskoj traci pri vrhu) i upišite sljedeće:

    • sudo apt-get install -y python-smbus
    • sudo apt-get install -y i2c-tools
  • Omogućite i2c na Raspberry Pi. U vašoj ljusci unesite: sudo raspi-config. Ovo će otvoriti vaš prozor za konfiguraciju. Strelicom prema dolje do InterfacingOptions-> I2C omogućite i2c za uređaj. Da biste izašli iz prozora, strelicu udesno vratite natrag, a zatim u završnicu da biste spremili postavke.
  • Ponovno podizanje sustava. U svoju ljusku upišite: sudo reboot
  • Postavite prilagođene parametre i2c. Čini se da zadani i2c baudrate (100k) povremeno zbunjuje gitaru pa ćemo je usporiti na 50k na sljedeći način:

    • U ljusci tipa: sudo nano /boot/config.txt
    • Ovo će otvoriti vašu konfiguracijsku datoteku u uređivaču teksta. Strelicom prema dolje pronađite redak koji kaže dtparam = i2c_arm = on. Ako je komentirano, komentirajte ga. Ako nemate tu liniju, dodajte je. Ispod tog retka dodajte i sljedeće:

      • dtparam = i2c1 = uključeno
      • dtparam = i2c1_baudrate = 50000
    • Pritisnite Ctrl + O za spremanje konfiguracijske datoteke, a zatim pritisnite Ctrl + X za izlaz.
  • Ponovno podizanje sustava. U svoju ljusku upišite: sudo reboot

Korak 3: Korak 3: Instalirajte čiste podatke

Korak 3: Instalirajte čiste podatke
Korak 3: Instalirajte čiste podatke
Korak 3: Instalirajte čiste podatke
Korak 3: Instalirajte čiste podatke

Za zvukove sintisajzera koristit ćemo program pod nazivom Pure Data. Ovo je generativni alat za zvuk i interaktivni prikaz koji postoji već duže vrijeme. Ima nekoliko značajki koje ga čine idealnim za ovaj projekt … ima korisničko sučelje temeljeno na čvorovima koje je prilično jednostavno za korištenje i može primati signale iz vanjskih izvora, poput skripti python.

  • Instalirajte Pure Data. U ljusci tipa: sudo apt-get install puredata
    • Ovo bi trebalo instalirati softver na vaš Raspberry Pi, ali ako se u ljusci žali da ne može pronaći sve potrebne datoteke, pokušajte ovo:

      • sudo apt-get ažuriranje
      • Zatim ponovno pokrenite naredbu install: sudo apt-get install puredata
    • Tijekom instalacije od vas će se tražiti ako želite stvoriti direktorije za proširenja, možete reći Da.
  • Pokrenite Pure Data. Ako je ispravno instaliran, trebali biste vidjeti program naveden u izborniku Start Desktop pod Sound & Video. Pokrenite ga kako biste bili sigurni da se pokreće.
  • Postavite Pure Data audio. Zvuk u Pure Data obično nije uključen prema zadanim postavkama pa ćete ga morati omogućiti.

    • Audio izlaz postavite na ALSA. Kad se Pure Data pokrene, trebali biste vidjeti prozor konzole. Idite na izbornik Mediji i odaberite ALSA kao izlaz. U ljusci konzole mogli biste vidjeti poruke upozorenja koje govore da ne može pronaći određene datoteke, ali to možete zanemariti.
    • Uključite DSP audio. U prozoru konzole potvrdite okvir s natpisom DSP.
  • Testirajte audio izlaz. U prozoru Pure Data console idite na Media-> Test Audio & MIDI. Ovo će otvoriti testnu datoteku koju možemo koristiti kako bismo bili sigurni da Pure Data radi i da možemo čuti zvuk. Uključite zvučnike, ali isprva ih držite na niskoj glasnoći (ponekad zvuk prema zadanim postavkama može biti jako glasan). U testnoj datoteci s lijeve strane trebali biste vidjeti odjeljak pod nazivom Test Tones. Najprije kliknite na okvir na kojem piše 60 i provjerite čujete li zvuk iz zvučnika. Ako ne, pokušajte kliknuti okvir 80, a zatim pojačajte zvučnike dok ne čujete zvuk. Ako čujete zvuk, pokušajte povući okvir s natpisom Pitch desno od ispitnih tonova gdje možete promijeniti frekvenciju tonova i vidjeti što se događa.

Ako ste u mogućnosti pokrenuti Pure Data i čuti zvuk iz testne zakrpe, spremni ste za prijelaz na sljedeći korak. No Pure Data može biti pomalo fini u pogledu audio izlaza prvi put, pa ako i dalje ne dobivate zvuk, pokušajte sljedeće:

  • Moguće je da zvuk prolazi kroz HDMI kabel, pa ga prisilite da koristi utičnicu za slušalice:

    • U ljusci unesite: sudo raspi-config
    • Idite na Napredne opcije-> Zvuk-> Prisilite utičnicu od 3,5 mm ('slušalice')
  • Pokušajte ponovno podizanje sustava. Ponekad ovo uspije.
  • Provjerite zvučnike i vezu s Raspberry Pi.

Korak 4: Korak 4: Spajanje gitare

Korak 4: Spajanje gitare
Korak 4: Spajanje gitare
Korak 4: Spajanje gitare
Korak 4: Spajanje gitare
Korak 4: Spajanje gitare
Korak 4: Spajanje gitare

Najlakši način povezivanja gitarskog kontrolera s Raspberry Pi je putem jeftine ploče za razbijanje poput Nunchuckyja*. Ova ploča omogućuje vam pristup signalu koji dolazi s gitare bez prekidanja utikača ili otvaranja gitare. S jedne strane ploče nalaze se ravni tragovi dizajnirani da se savršeno uklope u utikač koji dolazi s gitare. Postoje i dva mala ureza koji omogućuju da utikač sjedne na mjesto i spriječi njegovo otpuštanje. Tragovi vode do četiri igle zaglavlja na suprotnoj strani ploče.

Napomena: Nunchucky dolazi sa zaglavljima, ali nisu lemljeni pa ćete to morati učiniti sami. Za svoje sam umjesto toga koristio klinove zaglavlja od 90 stupnjeva što mu omogućuje da ravno položi u konačni projekt.

Za spajanje Nunchuckyja na Raspberry Pi trebat će vam četiri žice. Spojite žice s pinova zaglavlja Nunchucky na GPIO pinove Raspberry Pi na sljedeći način:

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

U svom projektu koristio sam presavijene konektore za žice tako da se nisu tako lako izvukli. Ali ako nemate utikače za spajanje, četiri pojedinačne žice kratkospojnika ženski na ženski će dobro funkcionirati. Ako ipak koristite krimp konektore, pazite da obratite pozornost na redoslijed žica na iglama zaglavlja i GPIO pinovima. Također imajte na umu da na GPIO pinovima preskačemo pin 7. Kako bih to objasnio, koristio sam petožilni konektor za presovanje na jednom kraju i preskočio jedan utor.

Da biste provjerili može li vaš Raspberry Pi otkriti gitarski kontroler, otvorite ljusku i upišite: sudo i2cdetect -y 1

U ljusci bi trebao ispisati mrežu s uglavnom dvostrukim crticama. Ako računalo može otkriti gitaru, trebali biste vidjeti gitarski ID# 52 u jednom od utora … na mom stroju se pojavio u stupcu 2, red 5 … ali nije važno koji, sve dok vidite broj 52 negdje tamo.

Ako ga računalo ne može otkriti, evo nekoliko pokušaja:

  • Provjerite jesu li vaše žice dobro spojene.
  • Provjerite jeste li sve spojili na prave pinove.
  • Okrenite utikač za gitaru. Nunchucky vas ne sprječava da priključite utikač naopako, pa bi mogao biti i obrnut.
  • Provjerite je li i2c omogućen na Raspberry Pi (kao što je prikazano u koraku 2)

*Ako utikač na gitarskom kontroleru izgleda poznato, to je zato što je isti kao standardni Wii Nunchuck kontroler … otuda i naziv Nunchucky! To također znači da ovu istu ploču za razbijanje možete koristiti i za spajanje na nunchuck kontrolere.

Korak 5: Korak 5: Sve zajedno

Korak 5: Sve spojite
Korak 5: Sve spojite
Korak 5: Sve spojite
Korak 5: Sve spojite

Sada kada je sve postavljeno na Raspberry Pi, samo nam treba malo koda da bi funkcionirao. Kôd i druge potrebne datoteke možete preuzeti na sljedeći način:

  • Za preuzimanje koda i drugih datoteka na Raspberry Pi otvorite novu ljusku i upišite sljedeću naredbu (možda ćete morati staviti "sudo" ispred nje): git clone
  • Ovo će stvoriti direktorij u vašem matičnom direktoriju pod nazivom keytarHero (tj./Home/pi/keytarHero) i preuzeti datoteke u njega.

U ovom paketu postoje tri glavne datoteke:

  • WiiGHController.py: Ovo je python skripta koja otvara i2c vezu s gitarom i vraća vrijednosti različitih kontrola. Prema zadanim postavkama također ispisuje vrijednosti koje čita u ljusku tako da možete vidjeti što radi.
  • keytarHero.pd: Ovo je datoteka zakrpe Pure Data koju sam stvorio za stvaranje glazbe koju ćete čuti. Postavljen je za čitanje vrijednosti koje dolaze s gitare i usmjerava ih do različitih čvorova za generiranje zvukova. O detaljima zakrpe raspravljat ću u sljedećem koraku, ali u konačnici biste to mogli izmijeniti kako biste učinili što god želite odavde.
  • keytarHero.py: Ovo je skripta koja započinje cijeli proces i lijepi sve zajedno. Pokreće Pure Data i otvara zakrpu keytarHero.pd. Otvara vezu s zakrpom i prenosi vrijednosti s gitare na zakrpu.

Trenutak istine! Provjerite je li gitara spojena na Raspberry Pi i tada ste spremni. Da biste započeli, samo trebate pokrenuti keytarHero.py skriptu. Uraditi ovo:

  • Otvorite novu ljusku i upišite: cd keytarHero
  • Zatim pokrenite naredbu: python keytarHero.py

To je to! Ako sve radi ispravno, Pure Data bi se trebao pokrenuti i početi igrati zakrpu. Trebali biste čuti niz nota koje sviraju, a kada pritisnete gumbe na gitari, ona bi trebala reagirati na to.

Rješavanje problema

Ako ne radi, evo nekoliko stvari koje treba provjeriti:

  • Čisti zakrpa podataka ne pokreće se ili dobiva pogrešku u vezi s pronalaženjem datoteka? Skripta keytarHero.py ima put do datoteke zakrpe Pure Data tvrdo kodirane na '/home/pi/keytarHero/keytarHero.pd'. Ako ste mapu keytarHero ili tu datoteku zakrpe premjestili na drugo mjesto, morat ćete ažurirati skriptu da umjesto toga koristi vašu putanju. Da biste to učinili, otvorite datoteku keytarHero.py i potražite varijablu pod nazivom PD_PATCH_PATH i promijenite je tako da pokazuje na direktorij u kojem se nalazi vaša datoteka keytarHero.pd. Spremite skriptu i ponovno je pokrenite i trebali biste biti spremni.
  • Izdaje li gitara signal? Skripta bi trebala neprekidno ispisivati signal koji dobiva od gitare do ljuske kao niz brojeva, od kojih svaki predstavlja vrijednost kontrole na gitari. Kada koristite kontrolu na gitari, to bi trebalo uzrokovati promjenu ovih brojeva. Ako ne, provjerite jeste li pravilno izvršili postavljanje i2c i povezivanje gitare u gornjim koracima.
  • Je li zvuk Pure Data uključen? Pure Data zakrpa navedena u ovom paketu trebala bi automatski uključiti zvuk, ali provjeriti je li potvrđen okvir DSP u konzoli Pure Data. Također provjerite audio postavke kao što je prikazano u 3. koraku.
  • Prima li Pure Data signal s gitare? U gornjem desnom kutu zakrpe nalazi se hrpa čvorova odgovornih za čitanje signala s gitare i prijenos na ostatak zakrpe. Dok pritisnete gumbe na gitari, brojevi u ovom odjeljku trebali bi se ažurirati, a također će vam reći da pravilno prima signal.
  • Inicijalizacija varijabli u zakrpi. Čisti podaci mogu biti pomalo izbirljivi jer se vrijednosti u zakrpi ne inicijaliziraju. Dodao sam mehanizme za pokretanje varijabli kad se otvori, ali možda bi bilo vrijedno samo kliknuti na neke od okvira s porukama (one koji izgledaju kao da su iz njih zagrizli). To uzrokuje njihovu inicijalizaciju i može ih probuditi.

Korak 6: Obilazak zakrpe čistih podataka

Obilazak zakrpe čistih podataka
Obilazak zakrpe čistih podataka
Obilazak zakrpe čistih podataka
Obilazak zakrpe čistih podataka
Obilazak zakrpe čistih podataka
Obilazak zakrpe čistih podataka
Obilazak zakrpe čistih podataka
Obilazak zakrpe čistih podataka

Postavljanje koje je do sada opisano u ovom vodiču učinit će da vam sve poradi, ali jedna od lijepih stvari u vezi s korištenjem čistih podataka za ovaj projekt je ta što se može prilagoditi da radi što god želite. Kad je zakrpa otvorena, ako pritisnete Ctrl + E, zakrpa se stavlja u način uređivanja i možete je promijeniti. Pojedinosti o korištenju Pure Data izlaze iz okvira ovog vodiča (za to postoji mnogo vodiča), ali može biti zabavno petljati s njim, pa evo općeg pregleda onoga što se događa u zakrpi keytarHero.pd u slučaju da želite ga prilagoditi:

  • Komunikacija gitarom: U gornjem desnom dijelu zakrpe nalazi se stablo čvorova odgovornih za rukovanje signalom iz gitare. Vrijednosti iz gitare dugačak su niz, pa ti čvorovi razbijaju niz u pojedinačne vrijednosti za svaku kontrolu, pretvaraju ih u brojeve, a zatim ih prosljeđuju na "slanje" čvorova (onih koji počinju s s). Čvorovima za slanje dodjeljuje se ime i emitiraju signal za 'primanje' istoimenih čvorova. Na primjer, čvor 'whammy' emitira vrijednosti koje dolaze iz gitarske whammy trake, a čvor 'r whammy' u sredini zakrpe prima taj signal i koristi ga za zaustavljanje sekvencera. Čvorovi za slanje/primanje pomažu u smanjenju nereda veza u zakrpi. Ne preporučujem petljanje s ovim odjeljkom jer je to prilično zahtjevno za ispraviti situaciju, ali definitivno možete dodati dodatne čvorove za primanje u zakrpu prema potrebi za primanje signala iz nje prema potrebi.
  • Odjeljak sekvencera: srednji dio zakrpe kontrolira sekvencer. S lijeve strane nalazi se traka s pokretnim crnim kvadratom koja vam pokazuje koju notu u nizu od 16 nota svira. Tipka za zvuk kontrolira reproducira li se slijed naprijed ili natrag. Gumbi plus/minus povećavaju/smanjuju brzinu. S desne strane nalazi se pet skupova brojeva koji kontroliraju koje note sviraju tijekom svakog koraka. Svaka sekvenca je dodijeljena za reprodukciju kada se pritisne jedna od pet tipki na fretu. Ti su brojevi MIDI vrijednosti i možete ih promijeniti da sviraju sve note koje želite … samo im dajte vrijednosti između 0 i 127.
  • Odjeljak Oscilator/FX: U donjem lijevom kutu nalaze se čvorovi oscilatora i FX koji zapravo stvaraju zvuk. Primarni oscilator nalazi se s lijeve strane. Midi vrijednosti iz sekvencera se pretvaraju u frekvencije i šalju u oscilator. Pomiješan je s drugim oscilatorom koji dolazi s desne strane. Njegovu frekvenciju također kontroliraju midi vrijednosti, ali s dodatnim pomakom frekvencije pogonjenom osi X upravljačke palice. To uzrokuje poremećeni ili zviždukni učinak kad pomaknete upravljačku palicu ulijevo ili udesno. U donjem desnom kutu nalazi se i čvor niskopropusnog filtra čija je granična frekvencija vezana za Y-os upravljačke palice. Niskopropusni filtar određuje koliko se visokofrekventnog zvuka uklanja iz zvuka. Kad se joystick pomakne prema dolje, on prekida velik dio visokih frekvencija što rezultira prigušenim zvukom. Kada se pomakne prema gore, propušta sve frekvencije što rezultira svjetlijim zvukom.
  • Inicijalizacija: U gornjem lijevom kutu zakrpe postoji niz čvorova koji inicijaliziraju zakrpu kada se pokrene, poput uključivanja zvuka i 'dodirivanja' različitih čvorova kako bi ih probudili. Opet, vjerojatno se ne morate petljati s ovim odjeljkom, ali ako postoje stvari koje se želite dogoditi pri pokretanju zakrpe, povežite ih s čvorom koji se zove 'loadbang'.
  • Pokušao sam dokumentirati zakrpu s komentarima u samoj zakrpi, pa se nadam da će vam to dati dovoljno informacija za istraživanje različitih mogućnosti odavde.

Uživati!

Korak 7: Dodatne stvari za isprobati

Trčanje na gitari bez glave

Ovaj projekt bi trebao biti moguć bez povezivanja s monitorom/tipkovnicom/mišem ako ste svoj Raspberry Pi pokrenuli s odgovarajućeg prijenosnog izvora napajanja. Raspberry Pi se baš ne uklapa u otvor na stražnjoj strani gitare, ali ako se osjećate hrabro, mogli biste izmijeniti gitaru da to popravite … ili samo montirati Pi sa stražnje strane vijcima i zalijepiti ga malo van. Na internetu postoji mnogo vodiča o tome kako pokrenuti skripte na Raspberry Pi bez glave, ali u osnovi biste htjeli pokrenuti naredbu 'python /home/pi/keytarHero/keytarHero.py&' kad se podigne. Teoretski, dakle, imali biste gitaru sa samo jednim kabelom koji izlazi na zvučnik … baš poput prave električne gitare!

Dodatne čiste izmjene podataka

Imao sam neke druge ideje o tome kako gitara može kontrolirati Pure Data zakrpu, ali nisam pokušavao. To bi bile promjene u zakrpi s kojima bi moglo biti zabavno eksperimentirati:

  • Whammy bar: U trenutnoj zakrpi whammy traka jednostavno zaustavlja reprodukciju sekvence, ali mislim da bi bilo bolje da whammy traka također poveća frekvenciju u isto vrijeme kao što bi to učinila prava whammy traka. Neko sam vrijeme pokušavao uspjeti, ali bilo je zeznutije nego što sam mislio. Mislim da bi moglo biti samo pitanje dodavanja izraza u odjeljak oscilatora koji dodaje nešto veću frekvenciju oscilatoru na temelju vrijednosti koja dolazi iz whammy trake.
  • Strum bar: Trenutno strum traka reproducira slijed prema naprijed kada se pritisne prema dolje i prema natrag kada se pritisne prema gore, ali možda bi bilo bolje da se kreće kroz različite opcije sekvenciranja, poput slučajnog koraka itd.
  • Tipke plus/minus: tipke plus/minus mijenjaju otkucaje u minuti, ali to je pomalo potresno ako ih ne pritisnete nekoliko puta. Možda bi bilo dobro da se svaki put povećava za veći iznos. Ili je možda morao prebaciti sekvencer između 16, 8, 4, 4, trostruke reprodukcije.

Preporučeni: