Mehrspur Audio Wiedergabe und Metronom für Gitarre

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • 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.

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Einmal editiert, zuletzt von sasa (27. Dezember 2014 um 08:55)

  • Mehrspur Audio Wiedergabe und Metronom für Gitarre? Schau mal ob du hier fündig wirst!

  • Ich habe es in Python programmiert. Beim Metronome verwende ich in der Tat sleep. Ich habe aber die Anzahl der Tasterabfragen zwischen zwei Klicks erhöht (sind einstellbar im Code, zur Zeit 5 Abfragen).

  • Jup, Quellcode wäre super, vielleicht als Dropbox oder Mediafire..
    Meine Fragen:
    } das ganze läuft autark....
    ?aber man könnte einen Monitor anschließen und hätte dann erweiterte Möglichkeiten?

    Hast Du denn für Boys don't cry alle Tracks extra, Drums, Bass, Lead Guit, Rythm Guit, Vocals?
    Habe mich nur gefragt, weil Du plötzlich die Vocals weg geschaltet hast...

  • Den Quellcode liefere ich morgen nach. Das ganz läuft völlig selbstständig. Nur Netzteil rein und ich kann bis zum herunterfahren alles über die 4 Taster machen. So kann ich es überall mitnehmen wo ich gerade Gitarre spiele. Wenn man einen Monitor anschließt hat man halt die Shell, sonst nichts besonderes.

    Alle Instrumente sind einzelne Spuren, die ich manuell ein und ausschalten kann. Jede Kombination der Spuren ist möglich. Das ist bei all meinen Liedern auf dem Teil so und ist für mich der entscheidene Punkt, warum ich es gebaut habe.

  • Hier ist der entscheidene Quellcode. Zuerst der Metronome Teil als solches

    Hier die Tastenabfrage

    und der Vollständigkeit halber:

    Code
    def ledblink(port,leuchtdauerled):
    	ledblinkkillall()
    	GPIO.output(port, GPIO.HIGH)
    	channelA.play(sound)
    	time.sleep(leuchtdauerled)
    	keypress = tastenabfrage()
    	if (keypress == 0):
    		return 0
    	return keypress

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!