Hallo, ich möchte ein Klavier bauen, das wie folgt funzt: Taste 1 drücken - Ton 1 wird abgespielt. Taste 2 drücken - Ton 2 wird abgespielt. Taste 1 und 2 gleichzeitig drücken - Ton 1 und 2 werden abgespielt. Am besten der Ton ist kein Piepen, sondern klingt so, wie der richtige Sound eines Klavier. (Ton auf nehmen - wav - wiedergeben) Ich habe ca 40 Tasten :-) was ist die preiswerteste Lösung das zu realisieren? Ich bin totaler Anfänger was Mikrocontroller angeht bzw. DSPs Vielen Dank Thimo
Wenn es nur um den Preis geht.... http://www.thomann.de/de/casio_sa_45.htm Wenn nicht - kann was aufwendiger werden. Mit Klavierton aufzeichnen und bei Tastendruck wiedergeben wird es nicht getan sein. Dein Sample hat nur eine endliche Länge. Wird die Taste sehr lange gehalten, musst Du das sample natlos wiederholen - ohne Klicken oder andere Artefakte. Die Wiedergabe aber perfekt wie ein Piano klingen lassen, das bekommen teilweise nicht mal etablierte Firmen hin - wie soll das dem Hobbyisten mit einem Bastelprojekt gelingen?? Normalerweise hätte ich dir zu einem ATMEGA geraten. Allerdings benötigst Du relativ viel Speicher für die Klänge - die werden vermutlich nicht mehr in den internen Flash passen. Mehrere Töne mischen bekommt man auch ohne DSP hin. Für einen ordenlichen Klang benötigst Du aber eine vernünftige Abtastrate (Richtung 32...48kHz), mehrere Tasten heisst - Berechnung für mehrere Kanäle durchführen. Der Haken fängt mit einer Anschlagdynamik an. Die muss sauber gemessen, ein Modell berechnet werden und mit dem Wavesample verknüpft werden. Sollen dann noch Oberwellen hinzu gefügt werden wird es anstrengend. Eigentlich ein schönes Endlosprojekt um in die DSPtechnik einzusteigen :)
Du kannst ja versuchen die Töne mathematisch zu beschreiben. Um bei deinem kleinen Beispiel zu bleiben etwa so: Ton_1 = sin(omega_1*t) Ton_2 = sin(omega_2*t) Und beide zusammen: Ton_3 = sin(omega_1*t)+sin(omega_2*t) Das sind bei 40 Tönen zwar sehr viele Berechnungen aber du sparst die den Speicherplatz für deine wav Dateien.
Ein solches Projekt kenne ich für Kirchen-Orgel-Simulation auf PC-Basis: Hauptwerk - the world's most advanced virtual pipe organ. http://www.hauptwerk.com/ Könnte -mit einigen Anpassungen- auch für Piano funktionieren. Der Aufwand richtet sich danach, wie real es klingen soll. wavetables wäre der erste Begriff zum Suchen.
> was ist die preiswerteste Lösung das zu realisieren?
Ein (alter) PC.
Dir ist aber schon klar, daß das mit einem Klavier so viel Ähnlichkeit
hat, wie eine Autohupe mit einer Trompete?
Hallo Thimo, Du kannst in der Numerik bzw. digitalen Signalverarbeitung einfache saubere (Sinus-)Töne mit Hilfe von digitalen Oszillatoren erzeugen. Dazu sind pro Oszillator nur zwei Speicherstellen und wenige matehmatische Operationen pro Abtastwert aufzuwenden. Das sieht dann z.B. so aus: Y(n) = SIN_OMEGA*dirac(n) + 2*COS_OMEGA*Y(n-1) - Y(n-2) SIN_OMEGA und COS_OMEGA sind Konstanten. SIN_OMEGA*dirac(n) ist der Initialwert, der die Amplitude bestimmt. SIN_OMEGA = sin(2*pi*fc/fs) mit fc - gewollte Oszillatorfrequenz, fs - Abtastrate COS_OMEGA bestimmt die Oszillatorfrequenz: COS_OMEGA = cos(2*pi*fc/fs) Wenn Du beide Konstanten ausgerechnet hast und SIN_OMEGA in die Speicherstelle Y(n-1) schreibst, mußt Du nur für jeden Abtastwert des Oszillators folgendes rechnen: Y(n) = 2COS_OMEGA*Y(n-1) - Y(n-2) Es bleibt also nur eine Multiplikation und eine Subtraktion pro Sample zu rechnen und ein perfekter Sinus kommt heraus. Natürlich mußt Du bei jedem Durchlauf Y(n-1) in die Speicherstelle Y(n-2) und Y(n) nach Y(n-1) für den nächsten Durchlauf schieben. Versuche es einfach mal in der numerischen Simulation aus (www.scilab.org, oder www.octave.org). Da es sich um eine rückgekoppelte Struktur handelt (IIR), ist die Amplitude und Frequenz nicht ohne weiteres modulierbar. Das ganze System würde instabil werden. Mit einem Klavierton hat das natürlich nichts zu tun, sondern mit ganz sauberen Sinustönen. Viele Grüße! Gerrit, DL9GFA
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.