Projektidee:
Es soll eine einfache Konstruktion werden die mich beim Gitarrespielen unterstützt.
- Bis zu 8 wav files synchron zugleich abspielen, als Backingtape bzw Bandersatz.
- Jede einzelne Spur ist ein und aus schaltbar bzw. in der Lautstärke änderbar
- Die Tracks sind per Fußschalter startbar.
- Das ganze läuft autark ohne PC, Monitor oder Tastatur.
- Ein einfaches Metronom. BPM und Ton einstellbar.
Diese Punkte habe ich bereits umgesetzt und sie funktionieren soweit sehr gut. Für die Zukunft hätte ich noch ein paar Ideen.
- Mehrspur Midi Dateien wiedergeben, so daß ich per Fussschalter z.B. das Drumsolo starten kann oder die Geschwindigkeit ändern kann. (In weiter Ferne, da ich noch keinen Ansatz gefunden Midi qualitativ wiederzugeben.)
- Eine Setlist eingeben die dann nacheinander automatisch die nächsten Titel lädt. (kommt als nächstes)
- Tap Funktion für das Metronom
- Eine Webinterface um Einstellungen via PC oder Smartphone vorzunehmen. (Vielleicht später,habe ich mich noch nicht mit beschäftigt)
- Die LED's als Taktanzeige bei den Backing Tracks benutzen. Ich habe als Idee bei den Tracks den Pegel der Metronom Klick Spur zu analysieren und ab einem gewissen Pegel ein LED aufblinken zu lassen. Damit habe ich mich aber noch nicht weiter beschäftigt. Ich habe keine Ahnung ob es realisierbar ist.
Projekthardware:
Raspberry Pi
Audiointerface Behringer UCA 222
2x16 LCD Display
74HC595 Schieberegister (um GPIOs zu sparen und evtl. auf 4 Zeiliges Display aufzurüsten)
4x LED
4x Taster
1x Fusstaster
Klinkenbuchse 6,3mm Mono (für Fusstaster)
Diverse Widerstände
Projektsoftware:
Standard Distri
Python
Div. Bibliotheken (hauptsächlich pygame zur Wiedergabe)
Den Sourcecode habe ich nicht anbei. Da ich das letzte mal vor 20 Jahren in Turbo Pascal laienhaft programmiert habe, ist es einer der schmutzigen Sorte. Aber fehlerfrei hoffe ich Außerdem fange ich keine Fehler ab, falls man ungültige Tracks per FTP hochlädt. Das größte Problem ist aber, das ich zur Ansteuerung des Displays eine Routine aus dem Internet benutzt habe, die ich lediglich etwas verfremdet habe, damit das Display über das Schieberegister angesteuert werden kann anstatt direkt über die GPIO's. Leider finde ich die Webseite nicht mehr von der ich den Code habe.
Die Tasten reagieren in einigen Situationen nicht zuverlässig (vor allem beim Metronom mit geringen BPM). Eine mögliche Lösung wäre die Tastenabfrage über Interrupt, damit habe ich mich aber noch weiter beschäftigt.
Bei langen Liedern sollte man nicht alle Spuren benutzen, da es sonst zu einem Buffer underrun kommt und die Wiedergabe asynchron wird.
Die Mehrspur Tracks erzeuge ich mir selber mit einer Midi fähigen Software, bzw ein paar habe ich einem Webshop für Karaoke Lieder gekauft.
Soweit bin ich ganz zufrieden und das Teil erfüllt seinen Zweck. Für Kommentare, Kritik und Anregungen jeder Art wäre ich sehr dankbar.