In unserem P-Seminar geht unsere Projektarbeit nun los. Das Problem, das ich nun habe, ist folgendes:
Wir bauen ein "Mini-Schlagzeug" ähnlich diesem hier (http://www.instructables.com/id/Pringle-Can-MIDI-Drums/), also grob gesagt, soll ein Antippen der Piezo-Elemente einen Ton ergeben. Wir wollen das aber über eine Klinkenbuchse verwirklichen über die der Ton (von Sounddateien auf einer microSD) ausgegeben werden soll. Mein Problem ist nur jetzt, wie ich es schaffe, dass zwei (oder mehr) Sounddateien gleichzeitig gespielt werden können, wenn z.B. zwei schnell aufeinanderfolgende Schläge kommen.
Ich habe bisher einzig einzelne Frequenzen via Piezo ausgegeben
... könnte mir aber vorstellen, daß das Mischen von Tönen, wie in Audacity (Programm, Freeware) ein 'einfaches' Überlagern darstellt.
Dafür dürfen die Töne aber addiert bestenfalls den Maximal-Pegel annehmen - im Úmkehrschluß: die Töne müssen so leise sein, daß die Ausgabe nicht übersteuern KANN.
Hier wäre wohl ein analoges Signal besser zu verrechnen, Welches bei Ruhe (=0) halben Pegel hat, so wäre die Summe aller Signale in Ruhe ebenfalls =0, was dann ebenfalls des halben Versorgungsspannung entspräche.
Wie man Das digital mischt ... keine Ahnung - vll. reichen einfache Dioden, kann ich mir aber nicht wirklich vorstellen, alleine, wenn wir nur ein Signal von 1Hz und 440Hz mischen wollen, wird eine halbe Sekunde die Membran auf Vdd liegen, die andere Sekunde mit 440Hz vor sich hin quietschen - wohl nicht, was gesucht wird.
Jaythay:
... Mein Problem ist nur jetzt, wie ich es schaffe, dass zwei (oder mehr) Sounddateien gleichzeitig gespielt werden können, wenn z.B. zwei schnell aufeinanderfolgende Schläge kommen. ...
Wenn das Mischen der beiden Sounddateien live im Arduino stattfinden soll, hast Du IMO sehr schlechte Karten. Mit nur 16 MHz Taktfrequenz und gerade mal 2 kB RAM ist der meiner Meinung nach vollkommen überfordert.
Wobei ich die Idee, mit Arduino und Piezo-Elementen ein Schlagzeug zu bauen, auch schon hatte. Allerdings dachte ich bei den Daten, die der Arduno verschicken sollte, nicht an Wellenformen sondern an MIDI-Signale. Für die Klangerzeugung kommt dann jeder MIDI-Expander infrage.
@postmaster-ino: leider völlig am Thema vorbei geschrieben, aber der Wille zum Helfen ist erkennbar
@Jaythay: Gregor hat's auf den Punkt gebracht; nur der arduino kann das nicht (wobei ich nur von den "üblichen" wie Uno oder Mega spreche)
Wenn Midi eine Option für euch ist > los geht's, das ist ziemlich überschaubar.
Ansonsten würde ich mich mal nach nem Player umschauen, der tatsächlich mehrere Audiodateien simultan gesteuert raushusten kann. Alle die ich kenne schieben nur EIN Audiofile an den Ausgang und hacken im besten Fall beim Triggern eines zweiten das erste radikal ab.
Mit Teensy kenne ich mich überhaupt nicht aus ....
Man könnte natürlich auch für jedes Instrument einen separaten Player nehmen - kostet auch nicht die Welt und am Ende passiv mischen reicht sicher.