İçindekiler:

Walabot FX - Gitar Efekt Kontrolü: 28 Adım (Resimlerle)
Walabot FX - Gitar Efekt Kontrolü: 28 Adım (Resimlerle)

Video: Walabot FX - Gitar Efekt Kontrolü: 28 Adım (Resimlerle)

Video: Walabot FX - Gitar Efekt Kontrolü: 28 Adım (Resimlerle)
Video: Walabot FX- Guitar Effect Control. Full Demo 2024, Aralık
Anonim
Walabot FX - Gitar Efekt Kontrolü
Walabot FX - Gitar Efekt Kontrolü

En sevdiğiniz gitar efektini harika gitar pozlarından başka bir şey kullanmadan kontrol edin!

Adım 1: İhtiyacınız Olan Şeyler

Donanım bileşenleri

Walabot - Walabot

Raspberry Pi - Raspberry Pi 3 Model B

Sunfounder LCD1602

Arduino ve Raspberry Pi için SunFounder PCA9685 16 Kanal 12 Bit PWM Servo Sürücü

Servo (genel) Bağlantı yok

9V Pil Klipsi

4xAA pil tutucu

AA Piller

Atlama telleri (genel)

DPDT Kilitleme Hareketli Ayak Pedalı

Korg SDD3000-PDL

Yazılım İşletim Sistemleri, Uygulamalar ve Çevrimiçi Hizmetler

Autodesk Fusion360 -

Blynk -

Araçlar vb

3 boyutlu yazıcı

Havya

2. Adım: Özet

Getting Started
Getting Started

3D uzayda gitarınızın konumundan başka bir şey kullanmadan müzikal ifadeyi kontrol etmek nasıl olurdu? Pekala, bir şeyin prototipini yapalım ve öğrenelim!

Adım 3: Temel Fikir

3 efekt parametresini gerçek zamanlı olarak kontrol edebilmek istedim, bunu gitarımı nasıl konumlandırdığımı kullanarak yapmak istedim. Yani bir şey açıktı, birkaç şeye ihtiyacım olacaktı.

  • 3D alanı görebilen bir sensör
  • Düğmeleri çevirmek için servolar
  • LCD ekran
  • Bir I2C Servo sürücüsü
  • Ahududu Pi
  • Python öğrenmek

Adım 4: Walabot

Duvarların ötesini görmek ister misin? 3B uzayda nesneleri duyun? Odanın karşısından nefes alıp almadığınızı hissediyor musunuz? Şanslısın!

Walabot, düşük güçlü radar kullanarak etrafınızdaki alanı algılamanın yepyeni bir yoludur.

Bu, bu projenin anahtarı olacaktı, 3B uzaydaki nesnelerin kartezyen (X-Y-Z) koordinatlarını alabilecek ve bunları, bir gitar efektinin sesini gerçek zamanlı olarak değiştirerek servo pozisyonlarına eşleyebilecektim, pedala dokunmadan.

Kazanç.

Walabot hakkında daha fazla bilgiyi burada bulabilirsiniz

Adım 5: Başlarken

Her şeyden önce, Walabot'u sürmek için bir bilgisayara ihtiyacınız olacak, bu proje için dahili WiFi ve genel ekstra güç nedeniyle bir Raspberry Pi 3 (burada RPi'de anılacaktır) kullanıyorum.

İşleri güzel ve basit tutmak için NOOBS önceden yüklenmiş 16 GB'lık bir SD kart satın aldım ve Linux işletim sistemi seçimim olarak Raspian'ı yüklemeyi seçtim

(Raspian'ı nasıl kuracağınızı bilmiyorsanız, lütfen biraz okumak için biraz zaman ayırın)

Tamam, Raspian'ı RPi'nizde çalıştırdıktan sonra, projemiz için işleri hazır hale getirmek için atmanız gereken birkaç yapılandırma adımı var.

Adım 6: Raspberry Pi'yi Ayarlama - 1

Öncelikle en son Çekirdek sürümünü çalıştırdığınızdan emin olun ve bir komut kabuğu açıp yazarak güncellemeleri kontrol edin.

sudo apt-get güncellemesi

sudo apt-get dağıtım yükseltme

(Yönetim ayrıcalıklarına sahip olduğunuzdan emin olmak için sudo eklenir, örneğin işler işe yarayacaktır)

Bunun tamamlanması biraz zaman alabilir, o yüzden gidin ve bir fincan çay için.

7. Adım: Raspberry Pi'yi Ayarlama - 2

RPI için Walabot SDK'yı yüklemeniz gerekir. RPi web tarayıcınızdan https://www.walabot.com/gettingstarted adresine gidin ve Raspberry Pi Yükleyici Paketini indirin.

Bir komut kabuğundan:

cd indirmeleri

sudo dpkg -I walabotSDK_RasbPi.deb

Adım 8: Raspberry Pi'yi Ayarlama - 3

i2c veri yolunu kullanmak için RPi'yi yapılandırmaya başlamamız gerekiyor. Bir komut kabuğundan:

sudo apt-get install python-smbus

sudo apt-get install i2c araçları

bu yapıldıktan sonra, aşağıdakileri modüller dosyasına eklemelisiniz

Bir komut kabuğundan:

sudo nano /etc/modüller

bu 2 dizeyi ayrı satırlara ekleyin:

i2c-dev

i2c-bcm2708

9. Adım: Raspberry Pi'yi Ayarlama - 4

Walabot oldukça fazla akım çekiyor ve ayrıca şeyleri kontrol etmek için GPIO'ları kullanacağız, bu yüzden bunları ayarlamamız gerekiyor.

Bir komut kabuğundan:

sudo nano /boot/config.txt

dosyanın sonuna aşağıdaki satırları ekleyin:

safe_mode_gpio=4

max_usb_current=1

RPi, üreticiler için mükemmel bir araçtır, ancak Walabot'a gönderebileceği akımla sınırlıdır. Bu nedenle neden daha standart 500mA yerine 1Amp maksimum akım ekliyoruz?

Adım 10: Python

Neden Python? kodlaması çok kolay, çalıştırması hızlı olduğu için ve bir sürü iyi python örneği mevcut! Daha önce hiç kullanmadım ve kısa sürede çalışmaya başladı. Şimdi RPi istediğimiz şey için yapılandırıldı, bir sonraki adım Python'u Walabot API, LCD Servo arayüzlerine erişecek şekilde yapılandırmak.

Adım 11: Walabot için

Bir komut kabuğundan

Sudo pip kurulumu “/usr/share/walabot/python/WalabotAPI-1.0.21.zip”

Adım 12: Servo Arayüzü İçin

Bir komut kabuğundan

sudo apt-get install git build-essential python-dev

cd ~

git klon

cd Adafruit_Python_PCA9685

sudo python setup.py kurulumu

Neden bir servo sürücü kullanmamız gerekiyor? Eh, bir RPI için birkaç nedenden dolayı.

1. Bir servo tarafından çekilen akım çok yüksek olabilir ve sahip olduğunuz servo sayısı arttıkça (elbette) bu sayı büyür. Servo directky'yi bir RPi'den sürüyorsanız, güç kaynağını üfleme riskiyle karşı karşıya kalırsınız.

2. Servoların pozisyonunu kontrol eden PWM'nin (Pulse Width Modulation) zamanlamaları çok önemlidir. RPi gerçek zamanlı bir işletim sistemi kullanmadığından (kesmeler vb. olabilir) zamanlamalar doğru değildir ve servoların gergin bir şekilde seğirmesine neden olabilir. Özel bir sürücü, doğru kontrole izin verir, ancak aynı zamanda 16 adede kadar servo eklenmesine izin verir, bu nedenle bu, genişleme için mükemmeldir.

Adım 13: LCD için

göz kırpmak
göz kırpmak

RPI web tarayıcınızı açın

www.sunfounder.com/learn/category/sensor-k…

indirmek

github.com/daveyclk/SunFounder_SensorKit_…

Bir komut kabuğundan:

sudo mkdir /usr/share/sunfounder

Grafik gezgini kullanarak python klasörünü zip dosyasından yeni sunfounder klasörünüze kopyalayın.

LCD, kullanıcıya tam olarak ne olduğunu sormak için kullanılır. Her bir servoya eşlenen x, y ve z değerlerine kadar konfigürasyon sürecini gösterme

Adım 14: Blynk

göz kırpmak
göz kırpmak
göz kırpmak
göz kırpmak

Blynk, eşyalarınızı kontrol etmek için özel bir uygulama oluşturmanıza olanak tanıyan mükemmel bir IoT hizmetidir. Bana ayarlarda gerçekten arama yapmak için walabot'un uzaktan kontrolünü vermek mükemmel bir çözüm gibi görünüyordu…

Bir problem. Blynk şu anda Python platformunda desteklenmiyor, bugger. Ama korkma! uzaktan kontrole ve uzaktan parametre girişine izin veren güzel bir küçük çalışma bulabildim! bu biraz hileli

ilk adım, favori uygulama mağazanızdan Blynk uygulamasını indirmektir.

İkincisi, bir hesap için kaydolun

Bu yapıldıktan sonra uygulamayı açın ve donanım olarak Raspberry Pi 3'ü seçerek yeni bir projeye başlayın.

Uygulama size bir erişim jetonu tahsis edecek (kodunuzu girmek için buna ihtiyacınız olacak)

Bunu bir kez yaptın. Uygulamayı resimlerde gösterildiği gibi kurmanız gerekecek. Bu, walabot ile arayüz oluşturma şeklidir.

15. Adım: Blynk Uygulamasını Yapılandırma

Blynk Uygulamasını Yapılandırma
Blynk Uygulamasını Yapılandırma
Blynk Uygulamasını Yapılandırma
Blynk Uygulamasını Yapılandırma
Blynk Uygulamasını Yapılandırma
Blynk Uygulamasını Yapılandırma

Adım 16: Size Zaman Kazandırmak İçin Projemi Klonlamak İçin Bu QR Kodunu Blynk Uygulamasıyla Kullanabilirsiniz

Bu QR Kodunu Blynk Uygulaması ile Projemi Klonlamak ve Zamandan Tasarruf Etmek İçin Kullanabilirsiniz
Bu QR Kodunu Blynk Uygulaması ile Projemi Klonlamak ve Zamandan Tasarruf Etmek İçin Kullanabilirsiniz

Tamam Uygulamanın tamamı kurulduğuna göre, Python ve RPi'yi internet üzerinden konuşacak şekilde yapılandırabiliriz. büyü

Adım 17: Blynk'i Raspberry Pi ile Çalıştırma ve Python için Blynk HTTPS'yi Kullanma

Öncelikle, Python için Blynk HTTPS sarmalayıcısını yüklemeniz gerekir.

Bir komut kabuğundan:

sudo git klonu

sudo pip kurulum blynkapi

İkinci olarak, Blynk Hizmetini RPi'ye yüklemeniz gerekir.

Bir komut kabuğundan:

git klonu

cd blynk kitaplığı/linux

hepsini temizle

blynk hizmetini çalıştırmak için

sudo./blynk --token=YourAuthToken

Blynk Hizmetinin başlangıçta çalıştığından emin olmak için /etc/rc.local dosyasını değiştirmeniz gerekir.

yaparak

sudo nano /etc/rc.local

bunu sonuna ekle

./blynk-library/linux/blynk --token=benim jetonum &

(referans için kod bölümüne /etc/rc.local dosyamın bir kopyasını ekledim)

Çalıştığını test etmek için yazmanız yeterlidir

sudo /etc/rc.local başlangıç

Blynk Hizmeti şimdi çalışıyor olmalıdır

Adım 18: Komut Dosyasını Otomatik Çalıştırma

Artık bunların hepsi ayarlanıp yapılandırıldığına ve python kodumuz hazır. klavye ve monitörlerden kurtulmak için işleri otomatik olarak çalıştırabiliriz

yapılacak birkaç şey var

Python Programını çalıştırmak için yeni bir komut dosyası oluşturun

sudo nano gitar etkisi.sh

bu satırları ekle

#!/bin/sh

python /home/pi/GuitarEffectCLI.py

kaydettiğinizden emin olun

Ardından, komut dosyasına yazarak çalıştırma izni vermemiz gerekiyor.

Sudo chmod +x /home/pi/guitareffect.sh

Ve son olarak, bu betiği daha önce kurcaladığımız /etc/rc.local dosyasına eklememiz gerekiyor.

Sudo nano /etc/rc.local

Ekle

/home/pi/guitareffect.sh &

"&" eklediğinizden emin olun, bu Python Komut Dosyasının arka planda çalışmasına izin verir

Doğru! Tüm yapılandırma ve yazılımlar bu kadar sıralandı, sıra donanımı bağlamaya geldi.

Adım 19: Donanım

Image
Image
Walabot guitar effects control proto1
Walabot guitar effects control proto1

İlk Breadboard prototipi

Adım 20: Muhafaza Tasarımı

Muhafaza Tasarımı
Muhafaza Tasarımı
Muhafaza Tasarımı
Muhafaza Tasarımı

Muhafaza, harika Fusion360'ta tasarlandı ve oluşturuldu

Adım 21: Cesur Atışlar

cesaret atışları
cesaret atışları
cesaret atışları
cesaret atışları
cesaret atışları
cesaret atışları

Adım 22: Son Montaj Çekimleri

Son Montaj Çekimleri
Son Montaj Çekimleri
Son Montaj Çekimleri
Son Montaj Çekimleri
Son Montaj Çekimleri
Son Montaj Çekimleri

Adım 23: Walabot'u Standa Sabitlemek İçin

Walabot'u Standa Sabitlemek İçin
Walabot'u Standa Sabitlemek İçin

Yerine sabitlemek için walabot ile birlikte gelen kendinden yapışkanlı metal diski kullanın

Adım 24: 3D Baskı için Donanım STL Dosyaları

Adım 25: Parçayı Kablolama Şemaları

Adım 26: Kod

Projeniz için ekteki Python betiğini kullanın

_future_'den import print_function from sys import platformundan os'tan import sistemi blynkapi'den import Blynk import WalabotAPI import time import RPi. GPIO as GPIO

#Kart Numaralandırmasını kullanarak GPIO'yu kurun

GPIO.setmode(GPIO. BOARD) GPIO.setup(18, GPIO. IN, pull_up_down = GPIO. PUD_UP)

#blynk kimlik doğrulama belirteci

auth_token = "your_auth_token_here"

# Servo kontrol için PCA9685 modülünü içe aktarın.

Adafruit_PCA9685'i içe aktar

#LCD modülünü konumdan içe aktar

imp import load_source LCD1602 = load_source('LCD1602', '/usr/share/sunfounder/Python/LCD1602.py')

# Varsayılan adresi (0x40) kullanarak PCA9685'i başlatın.

pwm = Adafruit_PCA9685. PCA9685()

# yanıp sönen nesneler

defaults = 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")

Eşik = Blynk(auth_token, pin = "V8")

ServoMin = Blynk(auth_token, pin = "V10")

ServoMax = Blynk(auth_token, pin = "V11")

tanımlı LCDsetup():

LCD1602.init(0x27, 1) # init(bağımlı adres, arka plan ışığı)

def numMap(x, in_min, in_max, out_min, out_max): """ walabot okumalarını servo konumuyla eşleştirmek için kullanılır """ return int((x- in_min) * (out_max - out_min) / (in_max - in_min) + out_min)

# ham verileri atanan değere yuvarlamak için bunu kullanın

def myRound(x, base=2): return int(taban * yuvarlak(kayan(x)/taban))

#döndürülen blynk dizesinden sayıyı çıkarır

def numberExtract(val): val = str(val) return int(filter(str.isdigit, val))

# Frekansı 60hz olarak ayarlayın, servolar için iyi.

pwm.set_pwm_freq(60)

# Minimum ve maksimum servo darbe uzunlukları varsayılanlarını yapılandırın

SERVO_MIN = 175 # 4096 üzerinden min darbe uzunluğu SERVO_MAX = 575 # 4096 üzerinden maksimum darbe uzunluğu

# walabot varsayılan değerleri

R_MAX = 60 R_MIN = 20 R_RES = 5

THETA_MAX = 20

THETA_RES = 5

PHI_MAX = 20

PHI_RES = 5

EŞİK = 1

# blynk anahtarlama için değişkenler

on = "[u'1']"

Walabot sınıfı:

tanım _init_(kendi):

self.wlbt = WalabotAPI self.wlbt. Init() self.wlbt. SetSettingsFolder() self.isConnected = Yanlış self.isTargets = Yanlış

def blynkConfig(self):

load_defaults = defaults.get_val() if str(load_defaults) == açık: SERVO_MAX = ServoMax.get_val() SERVO_MAX = numberExtract(SERVO_MAX) print("Servo Max =", SERVO_MAX)

SERVO_MIN = ServoMin.get_val()

SERVO_MIN = numberExtract(SERVO_MIN) print("Servo MIN =", SERVO_MIN) R_MAX = Rmax.get_val() R_MAX = sayıExtract(R_MAX) print("R max =", R_MAX)

R_MIN = Rmin.get_val()

R_MIN = sayıExtract(R_MIN) print("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)

EŞİK = Threshold.get_val()

EŞİK = sayıExtract(EŞİK) print("Eşik =", EŞİK)

else: # blynk uygulamasından hiçbir şey gelmiyorsa, varsayılanları yükleyin SERVO_MIN = 175 # 4096'nın minimum darbe uzunluğu SERVO_MAX = 575 # 4096'nın maksimum darbe uzunluğu

# walabot varsayılan değerleri

R_MAX = 60 R_MIN = 20 R_RES = 5

THETA_MAX = 20

THETA_RES = 5

PHI_MAX = 20

PHI_RES = 5

EŞİK = 1

def connect(self): deneyin: self.wlbt. ConnectAny() self.isConnected = True self.wlbt. SetProfile(self.wlbt. PROF_SENSOR) #self.wlbt. SetDynamicImageFilter(self.wlbt. FILTER_TYPE_MTI) self.wlbt. SetDynamicImageFilter (self.wlbt. FILTER_TYPE_NONE) #self.wlbt. SetDynamicImageFilter(self.wlbt. FILTER_TYPE_DERIVATIVE) self.wlbt. SetArenaTheta(-THETA_MAX, THETA_MAX, THETA_RES) self.wlbt. SetArena_PHI,PHI-PHI- SetArenaR(R_MIN, R_MAX, R_RES) self.wlbt. SetThreshold(THRESHOLD) self.wlbt. WalabotError as err: if err.code != 19: # 'WALABOT_INSTRUMENT_NOT_FOUND' err yükselt

def start(self):

self.wlbt. Start()

def calibrate(self):

self.wlbt. StartCalibration()

def get_targets(self):

self.wlbt. Trigger() geri self.wlbt. GetSensorTargets()

def stop(self):

self.wlbt. Stop()

def bağlantıyı kes (kendi kendine):

self.wlbt. Disconnect()

tanım ana():

flag = True check = "" LCDsetup() while flag: LCD1602.write(0, 0, 'Gitar') LCD1602.write(0, 1, 'Effect Control') time.sleep(2) LCD1602.write(0, 0, 'Başlat'a basın') LCD1602.write(0, 1, 'begin') time.sleep(2) if (str(check) == on): flag = False else: check = start_button.get_val() # blynk başlatma düğmesini kontrol edin eğer (GPIO.input(18) == 0): #check footswitch flag = False

LCD1602.write(0, 0, "Tamam! Yapalım")

LCD1602.write(0, 1, ' ') wlbt = Walabot() wlbt.blynkConfig() wlbt.connect() LCD1602.clear() wlbt.isConnected değilse: LCD1602.write(0, 0, 'Bağlı Değil') else: LCD1602.write(0, 0, 'Bağlı ') time.sleep(2) wlbt.start() wlbt.calibrate() LCD1602.write(0, 0, 'Kalibrasyon…..') time.sleep(3) LCD1602.write(0, 0, 'Walabot'u Başlatma')

appcheck = start_button.app_status() işaret = Ana program için doğru # sıfırlama işareti

while flag: # efekti beklemeye almak için kullanılır (etkili bir şekilde)

if (appcheck == True): if (str(check) != on): if (GPIO.input(18) != 0): #check footswitch flag = False else: check = start_button.get_val() #check for başlat düğmesi appcheck'e basın = start_button.app_status()

Başka:

if (GPIO.input(18) != 0): #check footswitch flag = False

xdeğer = 0

yval = 0 zval = 0 ortalama = 2 gecikme Süresi = 0

hedefler = wlbt.get_targets()

len(hedefler) > 0 ise:

j aralığında (ortalama):

hedefler = wlbt.get_targets()

if len(hedefler) > 0: print(len(targets)) hedefler = hedefler[0]

print(str(targets.xPosCm))

xval += int(targets.xPosCm) yval += int(targets.yPosCm) zval += int(targets.zPosCm) time.sleep(delayTime) else: print("hedef yok") xval = xval/average

xval = numMap(xval, -60, 60, SERVO_MIN, SERVO_MAX)

xval = myRound(xval) ise xval SERVO_MAX: xval = SERVO_MAX LCD1602.write(0, 0, 'x=' + str(xval) + ' ') pwm.set_pwm(0, 0, xval)

yval = yval/ortalama

yval = numMap(yval, -60, 60, SERVO_MIN, SERVO_MAX)

yval = myRound(yval) ise yval SERVO_MAX: yval = SERVO_MAX LCD1602.write(0, 1, 'y=' + str(yval)) pwm.set_pwm(1, 0, yval)

zval = zval/ortalama

zval = numMap(zval, R_MIN, R_MAX, SERVO_MIN, SERVO_MAX)

zval = myRound(zval) ise zval SERVO_MAX: zval = SERVO_MAX LCD1602.write(8, 1, 'z=' + str(zval)) pwm.set_pwm(2, 0, zval)

Başka:

print("hedef yok") LCD1602.write(0, 0, "Kapatılıyor ") LCD1602.write(0, 1, 'Walabot ') time.sleep(3) wlbt.stop() wlbt.disconnect()

eğer _name_ == '_main_':

Doğru iken: ana()

gitar efekti.sh için

#!/bin/sh

cd /ev/pi

sudo python GuitarEffectCLI.py

Referans için RC yerel dosyasının bir kopyası

#!/bin/sh -e# # rc.local # # Bu komut dosyası her çok kullanıcılı çalışma seviyesinin sonunda yürütülür. # Başarı durumunda betiğin "0"dan veya hata durumunda başka bir # değerden çıkacağından emin olun. # # Bu betiği etkinleştirmek veya devre dışı bırakmak için sadece yürütmeyi # bit değiştirin. # # Varsayılan olarak bu komut dosyası hiçbir şey yapmaz.

# IP adresini yazdır

_IP=$(hostname -I) || true if ["$_IP"]; sonra printf "IP adresim %s\n" "$_IP" fi

./blynk-library/linux/blynk --token="belirteci buraya gelir" &

10 uyku sudo /home/pi/guitareffect.sh ve çıkış 0

Adım 27: Kullanılacak Github Depoları

Bunu Sunfounder LCD için kullanın

github.com/daveyclk/SunFounder_SensorKit_f…

Bunu servo sürücü için kullanın

github.com/daveyclk/Adafruit_Python_PCA968…

Bunu Blynk Python HTTPS Sarıcı için kullanın

github.com/daveyclk/blynkapi

Adım 28: Sonuç

Image
Image
Walabot FX- Guitar Effect Control. Full Demo
Walabot FX- Guitar Effect Control. Full Demo
Çözüm
Çözüm
Çözüm
Çözüm

Eh, bu dik bir öğrenme eğrisi oldu, ama buna çok değdi.

benim çıkarımlarım

  • Python öğrenmek zorunda kaldım..as olduğu ortaya çıktı
  • Raspberry Pi'deki Python ile Blynk IoT hizmeti arasında arayüz oluşturdu. Bu resmi olarak desteklenmemektedir, bu nedenle işlevleri için bazı sınırlamalar vardır. Yine de harika çalışıyor!
  • Walabot'un müzikal ifade için harika olduğu ortaya çıktı. Korg SDD3000'de kullandım ama istediğiniz efekti kullanabilirsiniz.

Kendine bir şans ver. Bu gitar efektleriyle sınırlı değil, her enstrümanla her efektle kullanılabilir.

Ahududu Pi Yarışması 2017
Ahududu Pi Yarışması 2017
Ahududu Pi Yarışması 2017
Ahududu Pi Yarışması 2017

Raspberry Pi Yarışması 2017'de İkincilik

Önerilen: