Sadržaj:

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

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

Video: Keytar Hero (Korištenje Wii kontrolera za gitaru kao sintetizatora): 7 koraka (sa slikama)
Video: Jesse Cale - Keytar Hero 2024, Juli
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 kontrolora koji leže skupljajući prašinu. Imaju mnogo dugmadi, dugmadi i poluga, pa zašto ih ne biste ponovo dobro iskoristili? Kontroler gitare obično ne proizvodi nikakav zvuk sam po sebi, ali u ovom vodiču ću vam pokazati kako pretvoriti Wii Guitar Hero Controller tako da se može svirati kao sintisajzer.

Supplies

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

Korak 1: Korak 1: Raspberry Pi (početno podešavanje)

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 spremaju 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čunaru ili laptopu 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 radnom površinom i preporučenim softverom" jer uključuje neke programske IDE -ove i druge zgodne aplikacije. Najjednostavniji način je preuzimanje zip verzije.
  • Narežite 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čunar 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 narezati ih na SD karticu. VAŽNO: Provjerite je li pogon koji odaberete microSD kartica … alatka će prebrisati bilo koji pogon koji navedete pa provjerite jeste li odabrali ispravnu.
  • Pokrenite svoj Raspberry Pi. Umetnite microSD karticu u svoj Raspberry Pi. Priključite napajanje, miš, tastaturu 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 vam je potrebno 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đusobno komuniciranje), pa moramo omogućiti ovu funkciju na Raspberry Pi:

  • Instalirajte knjižnice za i2c. Čini se da su i2c biblioteke sada dio Buster standardne verzije, ali za svaki slučaj ćemo 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 da biste omogućili i2c za uređaj. Da biste izašli iz prozora, strelicu nadesno vratite natrag, a zatim na završite da biste spremili postavke.
  • Ponovo pokrenite sistem. U ljusku otkucajte: 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 na kojem piše dtparam = i2c_arm = on. Ako je komentirano, komentirajte ga. Ako nemate tu liniju, dodajte je. Ispod te linije 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.
  • Ponovo pokrenite sistem. U ljusku otkucajte: sudo reboot

Korak 3: Korak 3: Instalirajte čiste podatke

Korak 3: Instalirajte Pure Data
Korak 3: Instalirajte Pure Data
Korak 3: Instalirajte Pure Data
Korak 3: Instalirajte Pure Data

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 zasnovano na čvorovima koje je prilično jednostavno za korištenje i može primati signale iz vanjskih izvora, poput python skripti.

  • 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 update
      • Zatim ponovno pokrenite naredbu install: sudo apt-get install puredata
    • Tokom instalacije će vas pitati 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 na radnoj površini pod Zvuk i 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.

    • Postavite audio izlaz na ALSA. Kada se Pure Data pokrene, trebali biste vidjeti prozor konzole. Idite na izbornik Mediji i odaberite ALSA kao izlaz. Možda ćete vidjeti poruke upozorenja u ljusci konzole koje govore da ne može pronaći određene datoteke, ali to možete zanemariti.
    • Uključite DSP audio. U prozoru konzole potvrdite izbor u polju za potvrdu DSP.
  • Testirajte audio izlaz. U prozoru konzole Pure Data 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 u početku 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. Prvo 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 prelazak na sljedeći korak. No Pure Data može biti pomalo izbirljiv u pogledu audio izlaza prvi put, pa ako i dalje ne dobivate zvuk, pokušajte sljedeće:

  • Moguće je da se zvuk vodi kroz HDMI kabel, pa ga prisilite da koristi priključak za slušalice:

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

Korak 4: Korak 4: Povezivanje gitare

Korak 4: Povezivanje gitare
Korak 4: Povezivanje gitare
Korak 4: Povezivanje gitare
Korak 4: Povezivanje gitare
Korak 4: Povezivanje gitare
Korak 4: Povezivanje gitare

Najlakši način povezivanja gitarskog kontrolera s Raspberry Pi je putem jeftine ploče za razbijanje poput Nunchuckyja*. Ova ploča vam omogućava pristup signalu koji dolazi sa gitare bez odsecanja utikača ili lomljenja 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 zareza koji omogućavaju 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 zaglavlje zaglavlja od 90 stupnjeva što mu omogućuje da ravno položi u konačni projekt.

Trebat će vam četiri žice za povezivanje Nunchuckyja s Raspberry Pi. Spojite žice s pinova zaglavlja Nunchucky na GPIO pinove Raspberry Pi -a 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 konektore za prešanje, četiri pojedinačne žice kratkospojnika ženski na ženski će dobro funkcionirati. Ako ipak koristite konektore za presovanje, pazite da obratite pažnju na redoslijed žica na pinovima zaglavlja i GPIO pinovima. Takođe imajte na umu da na GPIO pinovima preskačemo pin 7. Da 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

Trebalo bi ispisati mrežu u ljusci sa uglavnom dvostrukim crticama. Ako računar može otkriti gitaru, trebali biste vidjeti gitarski ID# 52 u jednom od utora … na mojoj mašini se pojavio u koloni 2, red 5 … ali nije važno koji, sve dok vidite broj 52 negde tamo.

Ako ga računar ne može otkriti, evo nekoliko stvari koje treba pokušati:

  • 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 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 možete koristiti ovu istu ploču za spajanje i za povezivanje s kontrolerima nunchucka.

Korak 5: Korak 5: Sve zajedno

Korak 5: Sastavite sve zajedno
Korak 5: Sastavite sve zajedno
Korak 5: Sastavite sve zajedno
Korak 5: Sastavite sve zajedno

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

  • Da biste preuzeli kôd i druge datoteke 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 koji se zove 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 šta radi.
  • keytarHero.pd: Ovo je datoteka zakrpe Pure Data koju sam stvorio za stvaranje muzike 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 razgovarat ću u sljedećem koraku, ali na kraju biste ovo mogli izmijeniti da 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 za rad. Da biste započeli, samo trebate pokrenuti keytarHero.py skriptu. Da biste to učinili:

  • 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 tipke na gitari, ona bi trebala reagirati na nju.

Rješavanje problema

Ako ne radi, evo nekoliko stvari koje treba provjeriti:

  • Čista zakrpa podataka se ne pokreće ili dobija grešku u vezi s pronalaženjem datoteka? Skripta keytarHero.py ima putanju do datoteke zakrpe Pure Data koja je tvrdo kodirana na '/home/pi/keytarHero/keytarHero.pd'. Ako ste mapu keytarHero ili 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 živi vaša datoteka keytarHero.pd. Sačuvajte skriptu i ponovo je pokrenite i trebali biste biti spremni.
  • Da li gitara emituje 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 za DSP u konzoli Pure Data. Provjerite i audio postavke kao što je prikazano u koraku 3.
  • Prima li Pure Data signal sa gitare? U gornjem desnom kutu zakrpe nalazi se gomila čvorova odgovornih za čitanje signala s gitare i prijenos na ostatak zakrpe. Dok pritiskate gumbe na gitari, brojevi u ovom odjeljku bi se trebali ažurirati i govoreći vam 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 kada se otvore, ali možda bi bilo vrijedno samo kliknuti na neke od okvira za poruke (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 vam da vam radi, ali jedna od lijepih stvari u vezi s korištenjem čistih podataka za ovaj projekt je ta što se može prilagoditi da radi sve što želite. Kada je zakrpa otvorena, ako pritisnete Ctrl + E, ona zakrpu 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 se 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). Čvorovima za slanje dodjeljuje se ime i emitiraju signal za 'primanje' istoimenih čvorova. Na primjer, čvor 'whammy' emitira vrijednosti koje dolaze sa 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 vezanih linija u zakrpi. Ne preporučujem da se petljate s ovim odjeljkom jer je pomalo škrto kako biste to učinili, ali definitivno možete dodati dodatne čvorove za primanje po cijeloj zakrpi prema potrebi za primanje signala iz njega po potrebi.
  • Odeljak sekvencera: srednji deo zakrpe kontroliše sekvencer. Na lijevoj strani nalazi se traka s pokretnim crnim kvadratom koja vam pokazuje koju notu od 16 nota u nizu svira. Strumni taster kontroliše da li se niz reprodukuje unapred ili unazad. Dugmad plus/minus povećavaju/smanjuju brzinu. Sa desne strane nalazi se pet skupova brojeva koji kontrolišu koje note sviraju tokom svakog koraka. Svaka sekvenca je dodijeljena za reprodukciju kada se pritisne jedno od pet dugmadi na fretu. Ovi brojevi su MIDI vrijednosti i možete ih promijeniti tako da sviraju sve note koje želite … samo im dajte vrijednosti između 0 i 127.
  • Odsjek Oscilator/FX: U donjem lijevom kutu su čvorovi oscilatora i FX koji stvaraju zvuk. Primarni oscilator je 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 odstupanjem frekvencije koje pokreće os X upravljačke palice. Ovo uzrokuje poremećeni ili zvižduk kada pomaknete joystick lijevo ili desno. U donjem desnom kutu nalazi se i čvor niskopropusnog filtera čija je granična frekvencija vezana za Y-osu upravljačke palice. Niskopropusni filter određuje koliko se visokofrekventnog zvuka uklanja iz zvuka. Kad se joystick pomakne prema dolje, on prekida veliki dio visokih frekvencija što rezultira prigušenim zvukom. Kada se pomakne prema gore, propušta sve frekvencije rezultirajući 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 ne morate petljati u ovaj odjeljak, ali ako postoje stvari koje želite da se dogode 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 opcija odavde.

Uživajte!

Korak 7: Dodatne stvari koje treba 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 ne uklapa sasvim u otvor na stražnjoj strani gitare, ali ako se osjećate hrabro, mogli biste izmijeniti gitaru da to popravite … ili jednostavno montirajte Pi sa stražnje strane vijcima i zalijepite je 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&' kada se pokrene. Teoretski, dakle, imali biste gitaru sa samo jednim kabelom koji izlazi iz zvučnika … baš kao prava električna gitara!

Dodatne modifikacije čistih podataka

Imao sam neke druge ideje o tome kako gitara može kontrolirati Pure Data zakrpu, ali nisam pokušavao. Ovo 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 istovremeno poveća frekvenciju, baš kao što bi to učinila prava whammy traka. Pokušavao sam neko vrijeme uspjeti, ali bilo je lukavije 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 osnovu vrijednosti koja dolazi iz whammy trake.
  • Strum bar: Trenutno strum traka reproducira slijed prema naprijed kada se pritisne prema dolje i unatrag kada se pritisne prema gore, ali možda bi bilo bolje da se kreće kroz različite opcije sekvenciranja, poput nasumičnog koraka itd.
  • Dugmad 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 možda prebacite sekvencer između 16, 8, 4, 4, trostruke reprodukcije.

Preporučuje se: