Sadržaj:
- Korak 1: Stvari koje će vam trebati
- Korak 2: Sažetak
- Korak 3: Osnovna ideja
- Korak 4: Walabot
- Korak 5: Početak
- Korak 6: Postavljanje Raspberry Pi - 1
- Korak 7: Postavljanje Raspberry Pi - 2
- Korak 8: Postavljanje Raspberry Pi - 3
- Korak 9: Postavljanje Raspberry Pi - 4
- Korak 10: Python
- Korak 11: Za Walabot
- Korak 12: Za servo sučelje
- Korak 13: Za LCD
- Korak 14: Blynk
- Korak 15: Konfiguriranje aplikacije Blynk
- Korak 16: Ovaj QR kôd možete koristiti s aplikacijom Blynk za kloniranje mog projekta kako biste uštedjeli vrijeme
- Korak 17: Pokretanje Blynka s Raspberry Pi -om i korištenje Blynk HTTPS -a za Python
- Korak 18: Automatsko pokretanje skripte
- Korak 19: Hardver
- Korak 20: Dizajn kućišta
- Korak 21: Upuci
- Korak 22: Snimci završne montaže
- Korak 23: Postavljanje Walabota na postolje
- Korak 24: Hardverske STL datoteke za 3D štampanje
- Korak 25: Sheme ožičenja
- Korak 26: Šifra
- Korak 27: Github spremišta za upotrebu
- Korak 28: Zaključak
Video: Walabot FX - Kontrola efekata gitare: 28 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:10
Upravljajte svojim omiljenim gitarskim efektom ne koristeći ništa osim sjajnih poza gitare!
Korak 1: Stvari koje će vam trebati
Hardverske komponente
Walabot - Walabot
Raspberry Pi - Raspberry Pi 3 Model B
Sunfounder LCD1602
SunFounder PCA9685 16-kanalni 12-bitni PWM servo upravljački program za Arduino i Raspberry Pi
Servo (općenito) Nema veze
9V isječak za bateriju
Držač baterije 4xAA
AA baterije
Premosnice (općenito)
DPDT nožni prekidač za blokiranje
Korg SDD3000-PDL
Softverski OS, aplikacije i mrežne usluge
Autodesk Fusion360 -
Blynk -
Alati itd
3D štampač
Lemilica
Korak 2: Sažetak
Kako bi bilo kontrolirati muzički izraz ne koristeći ništa osim položaja svoje gitare u 3D prostoru? Pa, hajde da prototipiramo nešto i saznamo!
Korak 3: Osnovna ideja
Htio sam moći kontrolirati parametar 3 efekta u stvarnom vremenu, želio sam to učiniti koristeći položaj gitare. Dakle, jedna stvar je bila jasna, trebat će mi nekoliko stvari.
- Senzor koji može vidjeti 3D prostor
- Servo za okretanje dugmadi
- LCD ekran
- Serverski upravljački program za I2C
- A Raspberry Pi
- Da biste naučili Python
Korak 4: Walabot
Želite li vidjeti kroz zidove? Objekti sa osjetilima u 3D prostoru? Osjećate li da dišete s druge strane sobe? Pa, imaš sreće!
Walabot je potpuno nov način za otkrivanje prostora oko vas pomoću radara male snage.
Ovo će biti ključno za ovaj projekt, mogao bih uzeti karteasanske (X-Y-Z) koordinate objekata u 3D prostoru i preslikati ih na servo položaje mijenjajući zvuk gitarskog efekta, u stvarnom vremenu, bez dodirivanja pedale.
Win.
Više informacija o Walabotu možete pronaći ovdje
Korak 5: Početak
Prvo, trebat će vam računar za pogon Walabota, za ovaj projekt koristim Raspberry Pi 3 (ovdje se spominje na RPi) zbog ugrađenog WiFi -a i općeg dodatnog napora
Kupio sam SD karticu od 16 GB sa unaprijed instaliranim NOOBS -om kako bi stvari bile lijepe i jednostavne, te sam odlučio instalirati Raspian kao svoj Linux OS po izboru
(ako niste upoznati s načinom instaliranja Raspiana, odvojite trenutak da ovo malo pročitate)
U redu, nakon što pokrenete Raspian na svom RPi -u, potrebno je poduzeti nekoliko koraka za konfiguraciju kako biste pripremili stvari za naš projekt
Korak 6: Postavljanje Raspberry Pi - 1
Prvo provjerite imate li najnoviju verziju Kernela i provjerite ima li ažuriranja otvaranjem komandne ljuske i upisivanjem
sudo apt-get update
sudo apt-get dist-upgrade
(dodato je sudo kako biste bili sigurni da imate administrativne privilegije, npr. stvari će raditi)
Ovo može potrajati neko vrijeme da završite, pa idite i popijte šalicu čaja.
Korak 7: Postavljanje Raspberry Pi - 2
Morate instalirati Walabot SDK za RPi. Iz vašeg RPi web preglednika idite na https://www.walabot.com/gettingstarted i preuzmite Raspberry Pi Installer paket.
Iz komandne ljuske:
cd preuzimanja
sudo dpkg -I walabotSDK_RasbPi.deb
Korak 8: Postavljanje Raspberry Pi - 3
Moramo početi konfigurirati RPi za korištenje i2c sabirnice. Iz naredbene ljuske:
sudo apt-get install python-smbus
sudo apt-get install i2c-tools
nakon što to učinite, morate dodati sljedeće u datoteku modula
Iz komandne ljuske:
sudo nano /etc /modules
dodajte ove 2 žice u odvojene redove:
i2c-dev
i2c-bcm2708
Korak 9: Postavljanje Raspberry Pi - 4
Walabot crpi priličnu količinu struje, a mi ćemo također koristiti GPIO -e za kontrolu stvari pa ih moramo postaviti
Iz komandne ljuske:
sudo nano /boot/config.txt
dodajte sljedeće redove na kraj datoteke:
safe_mode_gpio = 4
max_usb_current = 1
RPi je odličan alat za proizvođače, ali je ograničen u struji koju može poslati Walabotu. Stoga dodajemo maksimalnu struju od 1Amp umjesto standardnijih 500mA
Korak 10: Python
Zašto Python? Pa, kako je super lako kodirati, brzo se pokrenuti i na raspolaganju je hrpa dobrih primjera pythona! nikad ga prije nisam koristio i uskoro sam počeo raditi. Sada je RPi konfiguriran za ono što želimo, sljedeći korak je konfiguriranje Pythona za pristup Walabot API -ju, LCD servo sučeljima
Korak 11: Za Walabot
Iz komandne ljuske
Sudo pip install “/usr/share/walabot/python/WalabotAPI-1.0.21.zip”
Korak 12: Za servo sučelje
Iz komandne ljuske
sudo apt-get install git build-essential python-dev
cd ~
git clone
cd Adafruit_Python_PCA9685
sudo python setup.py install
Zašto moramo koristiti servo upravljački program? Pa, iz RPi nekoliko razloga.
1. Struja koju vuče servo može biti vrlo velika, a taj broj postaje sve veći što imate više servomotora (naravno). Ako upravljate servo direktno iz RPi -a, riskirate da mu eksplodirate
2. Vremena PWM -a (Pulse Width Modulation) koja kontroliraju položaj servomotora su vrlo važna. Kako RPi ne koristi OS u stvarnom vremenu (može doći do prekida i slično), vrijeme nije točno i može učiniti da se servomotori nervozno trzaju. Namjenski upravljački program omogućuje preciznu kontrolu, ali i dopušta dodavanje do 16 servo pogona, tako da je ovo odlično za proširenje.
Korak 13: Za LCD
otvorite svoj RPi web preglednik
www.sunfounder.com/learn/category/sensor-k…
skinuti
github.com/daveyclk/SunFounder_SensorKit_…
Iz komandne ljuske:
sudo mkdir/usr/share/sunfounder
Pomoću grafičkog istraživača kopirajte python fasciklu iz zip datoteke u novu fasciklu sunfounder
LCD se koristi da upozori korisnika šta se tačno dešava. Prikaz procesa konfiguracije do vrijednosti x, y i z koje se mapiraju na svaki servo
Korak 14: Blynk
Blynk je briljantna IoT usluga koja vam omogućuje stvaranje prilagođene aplikacije za kontrolu vaših stvari. Činilo se kao savršeno rješenje da mi date daljinski upravljač walabota da zaista biram u postavkama …
Jedan problem. Blynk trenutno nije podržan na Python platformi, bugger. Ali ne bojte se! uspio sam pronaći zgodan mali posao koji omogućava daljinsko upravljanje i daljinski unos parametara! malo je hacky
prvi korak je preuzimanje aplikacije Blynk iz vaše omiljene trgovine aplikacija
Drugo, prijavite se za račun
Nakon što to učinite, otvorite aplikaciju i pokrenite novi projekt, odabirom Raspberry Pi 3 kao hardvera.
Aplikacija će vam dodijeliti pristupni token (ovo će vam trebati za unos koda)
Kada to učinite. morat ćete postaviti aplikaciju kako je prikazano na slikama. Ovako će se povezati s walabotom.
Korak 15: Konfiguriranje aplikacije Blynk
Korak 16: Ovaj QR kôd možete koristiti s aplikacijom Blynk za kloniranje mog projekta kako biste uštedjeli vrijeme
U redu Sada kada je aplikacija sve postavljena, možemo konfigurirati Python i RPi da razgovaraju s njom putem Interneta. Magija
Korak 17: Pokretanje Blynka s Raspberry Pi -om i korištenje Blynk HTTPS -a za Python
Prvo morate instalirati Blynk HTTPS omot za Python
Iz komandne ljuske:
sudo git clone
sudo pip install blynkapi
Drugo, morate instalirati Blynk uslugu na RPi
Iz komandne ljuske:
git clone
cd blynk-library/linux
očisti sve
da biste pokrenuli uslugu blynk
sudo./blynk --token = VašAuthToken
Da biste osigurali da Blynk usluga radi pri pokretanju, morate izmijeniti /etc/rc.local
radeći
sudo nano /etc/rc.local
dodaj ovo na kraju
./blynk-library/linux/blynk --token = moj token &
(uključio sam kopiju moje /etc/rc.local datoteke u odjeljak koda za referencu)
Da biste provjerili radi li jednostavno upišite
sudo /etc/rc.local početak
Blynk servis bi sada trebao biti pokrenut
Korak 18: Automatsko pokretanje skripte
Sada kada je sve ovo postavljeno i konfigurirano i imamo spreman python kod. možemo postaviti stvari na automatsko pokretanje kako bismo odbacili tastaturu i monitore
Postoji nekoliko stvari koje treba učiniti
Napravite novu datoteku skripte za pokretanje Python programa
sudo nano guitareffect.sh
dodajte ove redove
#!/bin/sh
python /home/pi/GuitarEffectCLI.py
obavezno ga sačuvajte
Zatim moramo dati dozvolu skripti za pokretanje upisivanjem
Sudo chmod +x /home/pi/guitareffect.sh
I na kraju, moramo dodati ovu skriptu u datoteku /etc/rc.local s kojom smo ranije radili.
Sudo nano /etc/rc.local
Dodati
/home/pi/guitareffect.sh &
obavezno uključite "&" koji omogućava da se Python skripta izvodi u pozadini
Tačno! To je sve što se tiče konfiguracije i softvera, sljedeće je vrijeme za povezivanje hardvera
Korak 19: Hardver
Prvi prototip Breadboard -a
Korak 20: Dizajn kućišta
Kućište je dizajnirano i izrađeno u odličnom Fusion360
Korak 21: Upuci
Korak 22: Snimci završne montaže
Korak 23: Postavljanje Walabota na postolje
Za pričvršćivanje koristite samoljepljivi metalni disk koji dolazi s walabotom
Korak 24: Hardverske STL datoteke za 3D štampanje
Korak 25: Sheme ožičenja
Korak 26: Šifra
Za svoj projekt upotrijebite priloženu Python skriptu
from _future_ import print_functionfys sys import platform from os import system from blynkapi import Blynk import WalabotAPI import import import RPi. GPIO kao GPIO
#postavi GPIO pomoću numeriranja ploča
GPIO.setmode (GPIO. BOARD) GPIO.setup (18, GPIO. IN, pull_up_down = GPIO. PUD_UP)
#blynk auth token
auth_token = "your_auth_token_here"
# Uvezite PCA9685 modul za servo kontrolu.
import Adafruit_PCA9685
#import LCD modul s lokacije
from imp import load_source LCD1602 = load_source ('LCD1602', '/usr/share/sunfounder/Python/LCD1602.py')
# Inicijalizirajte PCA9685 koristeći zadanu adresu (0x40).
pwm = Adafruit_PCA9685. PCA9685 ()
# blynk objekta
zadane vrijednosti = Blynk (auth_token, pin = "V9") start_button = Blynk (auth_token, pin = "V3") Rmax = Blynk (auth_token, pin = "V0") Rmin = Blynk (auth_token, pin = "V1") Rres = Blynk (auth_token, pin = "V2")
ThetaMax = Blynk (auth_token, pin = "V4")
ThetaRes = Blynk (auth_token, pin = "V5")
PhiMax = Blynk (auth_token, pin = "V6")
PhiRes = Blynk (auth_token, pin = "V7")
Prag = Blynk (auth_token, pin = "V8")
ServoMin = Blynk (auth_token, pin = "V10")
ServoMax = Blynk (auth_token, pin = "V11")
def LCDsetup ():
LCD1602.init (0x27, 1) # init (adresa slave, pozadinsko svjetlo)
def numMap (x, in_min, in_max, out_min, out_max): "" "koristi se za mapiranje walabot očitanja na položaj servo" "" return int ((x- in_min) * (out_max - out_min) / (in_max - in_min) + van_min)
# koristite ovo za zaokruživanje neobrađenih podataka na dodijeljenu vrijednost
def myRound (x, base = 2): return int (base * round (float (x)/base))
#extract number from the return blynk string
def numberExtract (val): val = str (val) return int (filter (str.isdigit, val))
# Postavite frekvenciju na 60Hz, dobro za servo pogone.
pwm.set_pwm_freq (60)
# Konfigurirajte zadane vrijednosti minimalne i maksimalne duljine servo impulsa
SERVO_MIN = 175 # Minimalna dužina impulsa od 4096 SERVO_MAX = 575 # Maksimalna dužina impulsa od 4096
# walabot zadane vrijednosti
R_MAX = 60 R_MIN = 20 R_RES = 5
THETA_MAX = 20
THETA_RES = 5
PHI_MAX = 20
PHI_RES = 5
PRAG = 1
# varijable za blynk prebacivanje
on = "[u'1 ']"
klasa Walabot:
def _init _ (samo):
self.wlbt = WalabotAPI self.wlbt. Init () self.wlbt. SetSettingsFolder () self.isConnected = Netačno self.isTargets = False
def blynkConfig (self):
load_defaults = defaults.get_val () if str (load_defaults) == on: SERVO_MAX = ServoMax.get_val () SERVO_MAX = numberExtract (SERVO_MAX) ispis ("Servo Max =", SERVO_MAX)
SERVO_MIN = ServoMin.get_val ()
SERVO_MIN = broj izvlačenja (SERVO_MIN) ispis ("Servo MIN =", SERVO_MIN) R_MAX = Rmax.get_val () R_MAX = broj Izvlačenje (R_MAX) ispis ("R max =", R_MAX)
R_MIN = Rmin.get_val ()
R_MIN = broj Izvlačenje (R_MIN) ispis ("R Min =", R_MIN)
R_RES = Rres.get_val ()
R_RES = numberExtract (R_RES) print ("R Res =", R_RES)
THETA_MAX = ThetaMax.get_val ()
THETA_MAX = numberExtract (THETA_MAX) print ("Theta Max =", THETA_MAX) THETA_RES = ThetaRes.get_val () THETA_RES = numberExtract (THETA_RES) print ("Theta Res =", THETA_RES)
PHI_MAX = PhiMax.get_val ()
PHI_MAX = numberExtract (PHI_MAX) print ("Phi Max =", PHI_MAX) PHI_RES = PhiRes.get_val () PHI_RES = numberExtract (PHI_RES) print ("Phi Res =", PHI_RES)
THRESHOLD = Threshold.get_val ()
THRESHOLD = numberExtract (THRESHOLD) print ("Threshold =", THRESHOLD)
else: # ako ništa od blynk aplikacije, zadane postavke učitavanja SERVO_MIN = 175 # Minimalna dužina impulsa od 4096 SERVO_MAX = 575 # Maksimalna dužina impulsa od 4096
# walabot zadane vrijednosti
R_MAX = 60 R_MIN = 20 R_RES = 5
THETA_MAX = 20
THETA_RES = 5
PHI_MAX = 20
PHI_RES = 5
PRAG = 1
def connect (self): try: self.wlbt. ConnectAny () self.isConnected = True self.wlbt. SetProfile (self.wlbt. PROF_SENSOR) #self.wlbt. SetDynamicImageFilter (self.wlbt. FILTER_TYPDymic_md) (self.wlbt. FILTER_TYPE_NONE) #self.wlbt. SetDynamicImageFilter (self.wlbt. FILTER_TYPE_DERIVATIVE) self.wlbt. SetArenaTheta (-THETA_MAX, THETA_MAX, THETA_RESX) SetArenaR (R_MIN, R_MAX, R_RES) self.wlbt. SetThreshold (THRESHOLD) osim self.wlbt. WalabotError kao greška: if err.code! = 19: # 'WALABOT_INSTRUMENT_NOT_FOUND' podići grešku
def start (samo):
self.wlbt. Start ()
def calibrate (self):
self.wlbt. StartCalibration ()
def get_targets (self):
self.wlbt. Trigger () vrati self.wlbt. GetSensorTargets ()
def stop (samo):
self.wlbt. Stop ()
def prekid veze (samo):
self.wlbt. Disconnect ()
def main ():
flag = True check = "" LCDsetup () dok je flag: LCD1602.write (0, 0, 'Guitar') LCD1602.write (0, 1, 'Effect Control') time.sleep (2) LCD1602.write (0, 0, 'Pritisnite Start za') LCD1602.write (0, 1, 'begin') time.sleep (2) if (str (check) == on): flag = False else: check = start_button.get_val () # provjerite ima li blynk start tipke ako je (GPIO.input (18) == 0): #check nožna sklopka = False
LCD1602.write (0, 0, "U redu! Uradimo to")
LCD1602.write (0, 1, '') wlbt = Walabot () wlbt.blynkConfig () wlbt.connect () LCD1602.clear () ako nije wlbt.isConnected: LCD1602.write (0, 0, 'Not Connected') else: LCD1602.write (0, 0, 'Connected') time.sleep (2) wlbt.start () wlbt.calibrate () LCD1602.write (0, 0, 'Calibrating…..') time.sleep (3) LCD1602.write (0, 0, 'Pokretanje Walabota')
appcheck = start_button.app_status () flag = Tačno # zastavica za resetovanje za glavni prog
while flag: # koristi se za stavljanje efekta u stanje pripravnosti (efikasno)
if (appcheck == True): if (str (check)! = on): if (GPIO.input (18)! = 0): #check zastavica za nožni prekidač = False else: check = start_button.get_val () #check za dugme za pokretanje pritisnite appcheck = start_button.app_status ()
drugo:
if (GPIO.input (18)! = 0): #check nožna sklopka = False
xval = 0
yval = 0 zval = 0 prosjek = 2 delayTime = 0
ciljevi = wlbt.get_targets ()
ako je len (ciljevi)> 0:
za j u rasponu (prosjek):
ciljevi = wlbt.get_targets ()
ako je len (ciljevi)> 0: ispis (len (ciljevi)) ciljevi = ciljevi [0]
ispis (str (target.xPosCm))
xval += int (ciljevi.xPosCm) yval += int (ciljevi.yPosCm) zval += int (ciljevi.zPosCm) time.sleep (delayTime) else: print ("nema ciljeva") xval = xval/prosjek
xval = numMap (xval, -60, 60, SERVO_MIN, SERVO_MAX)
xval = myRound (xval) ako je xval SERVO_MAX: xval = SERVO_MAX LCD1602.write (0, 0, 'x =' + str (xval) + '') pwm.set_pwm (0, 0, xval)
yval = yval/prosek
yval = numMap (yval, -60, 60, SERVO_MIN, SERVO_MAX)
yval = myRound (yval) if yval SERVO_MAX: yval = SERVO_MAX LCD1602.write (0, 1, 'y =' + str (yval)) pwm.set_pwm (1, 0, yval)
zval = zval/prosjek
zval = numMap (zval, R_MIN, R_MAX, SERVO_MIN, SERVO_MAX)
zval = myRound (zval) ako je zval SERVO_MAX: zval = SERVO_MAX LCD1602.write (8, 1, 'z =' + str (zval)) pwm.set_pwm (2, 0, zval)
drugo:
print ("nema ciljeva") LCD1602.write (0, 0, "Gašenje") LCD1602.write (0, 1, 'The Walabot') time.sleep (3) wlbt.stop () wlbt.disconnect ()
if _name_ == '_main_':
dok True: main ()
za guitareffect.sh
#!/bin/sh
cd /home /pi
sudo python GuitarEffectCLI.py
Kopija RC lokalne datoteke za referencu
#!/bin/sh -e # # rc.local # # Ova skripta se izvršava na kraju svake višekorisničke razine izvođenja. # Uvjerite se da će skripta "izaći 0" u slučaju uspjeha ili bilo koje druge # vrijednosti u slučaju greške. # # Da biste omogućili ili onemogućili ovu skriptu, samo promijenite # bita izvođenja. # # Prema zadanim postavkama, ova skripta ne radi ništa.
# Odštampajte IP adresu
_IP = $ (ime hosta -I) || true ako ["$ _IP"]; zatim printf "Moja IP adresa je %s / n" "$ _IP" fi
./blynk-library/linux/blynk --token = "token ide ovamo" &
spavanje 10 sudo /home/pi/guitareffect.sh i izlaz 0
Korak 27: Github spremišta za upotrebu
Koristite ovo za LCD zaslon Sunfounder
github.com/daveyclk/SunFounder_SensorKit_f…
Koristite ovo za servo upravljački program
github.com/daveyclk/Adafruit_Python_PCA968…
Koristite ovo za Blynk Python HTTPS omot
github.com/daveyclk/blynkapi
Korak 28: Zaključak
Pa, ovo je bila strma krivulja učenja, ali se toliko isplatilo.
Moja oduzimanja su
- Morao sam naučiti Python..ispostavilo se da je as
- Povezao Python na Raspberry Pi sa Blynk IoT uslugom. Ovo nije službeno podržano pa postoje neka ograničenja njegovih funkcija. Ipak i dalje odlično funkcionira!
- Ispostavilo se da je Walabot odličan za muzičko izražavanje. Koristio sam ga na Korgu SDD3000, ali možete koristiti bilo koji efekt koji želite
Idite sami. Ovo nije ograničeno na efekte gitare, mogu se koristiti sa bilo kojim instrumentom sa bilo kojim efektom.
Drugoplasirani na takmičenju Raspberry Pi 2017
Preporučuje se:
Predpojačalo audio efekata sa VS1053b: 3 koraka
Predpojačalo audio efekata s VS1053b: Ovo je potpuno funkcionalno predpojačalo audio efekata koje koristi VLSI VS1053b audio DSP IC. Ima potenciometar za podešavanje jačine zvuka i pet parametara efekta. Ima devet fiksnih efekata i jedan prilagodljivi efekat, pri čemu svaki efekat ima pet efekata
Krug lakih audio efekata + pojačalo: 3 koraka
Krug lakih audio efekata + pojačalo: Evo kako lako sastaviti fantastično kolo audio efekata koji će vam dati mogućnost dodavanja zvuka odličnog kvaliteta s vrlo fleksibilnim okidanjem (do 11 podesivih okidača) za vaš sljedeći projekt kojem je potreban zvuk. Sve se to može uraditi za manje od
Znanje analognog kruga - kolo zvučnih efekata sata sa kucanjem bez IC -a: 7 koraka (sa slikama)
Znanje o analognom krugu - Uradite sami krug zvučnih efekata sata koji otkucava bez IC -a: Ovaj krug zvučnog efekta sata koji je otkucavan napravljen je samo od tranzistora i otpornika i kondenzatora bez ikakve IC komponente. Idealno je za vas da naučite osnovno znanje o krugu pomoću ovog praktičnog i jednostavnog kruga. Potrebna podloga
LED sekvencijalno svjetlo sa 7 različitih hladnih efekata!: 8 koraka
LED sekvencijalno svjetlo sa 7 različitih hladnih efekata!: Ovaj projekt uključuje 7 različitih efekata uzastopnih svjetala koji će biti obrađeni kasnije. Inspirisan je jednim od kreatora koje sam vidio na Youtube -u prije nekoliko dana, i čini mi se da je to stvarno super pa bih ovo želio podijeliti s vama i napraviti potpunu
Laserski sintitar iz gitare poput gitare poput heroja: 6 koraka
Laser-synthitar Od gitare poput gitare poput igračke gitare: Bio sam jako inspiriran svim youtube video zapisima laserskih harfi, ali smatrao sam da su svi preveliki da ih ponesete na jam sesiju ili su im trebali komplicirano postavljanje i računalo itd. Pomislio sam na gitaru s laserima umjesto žica. Tada sam pronašao pokvaren t