by wallew » Mon Jul 22, 2013 12:00 am
Ja "Ferndiagnose" stimmt schonmal.
Also mir geht es um folgendes:
Ich will eine Art Eventdiagramm, das aus der Ferne das gleiche liefert, wie wenn ich die Tastenevents mechanisch abgreifen würde.
Dabei interessieren mich nicht die Noten an sich.
Ich versuch es mal anders zu erklären:
Wenn jemand auf eine Digitalpiano mit Kopfhörern spielt, hört man von außen nur die dumpfen Tastenschläge. Ich will also nur diese dumpfen Events. Welche Taste gedrückt wird ist also egal, dumpf ist dumpf.
Sobald eine Taste gedrückt wird, 1 Peak.
Solange eine Taste gehalten wird, kein Peak.
Wenn die Taste losgelassen wird, kein Peak.
Wenn eine andere Taste gedrückt wird, auch 1 Peak.
Wenn 4 Tasten gleichzeitig gedrückt werden, 1 Peak.
Wenn 4 Tasten gleichzeitig gedrückt werden, gehalten werden, und einen Moment später noch 3 weitere Tasten gedrückt werden, 2 Peaks nebeneinander, mit dem passendem zeitlichen Abstand.
Wenn mehrere Tasten schnell hintereinander gespielt werden, sich die Töne also überlappen, vorallem mit reingedrücktem Pedal, mehrere Peaks nebeneinander.
Ich hab rausgefunden, wie das ganze als englischer Fachbegriff heißt: Onset detection. Ich bin also nicht der erste, der das braucht. Onset also für: Anfang eines Events.
Das wird üblicherweise mit Kurzzeitfourieranalysen gemacht. Da wird also das Audiosignal des Micros in Abschnitten analysiert. Dann kriegt man für jeden Abschnitt ein Spektrogramm. In jedem Spektrogramm werden alle sinnvollen Frequenzen durchgeprüft. Bei einer Geige wäre das z.B. etwa 100Hz bis 2600Hz. Das Spektrum des Klaviers ist insgesamt etwas größer.
Man legt diese einzelnen Abschnitte nebeneinander.
Wonach sucht man? Nach signifikanten Veränderungen. Wenn eine neue Taste angeschlagen wird, ist das eine signifikante Veränderung, vorausgesetzt es klingen nicht grade 50 Noten gleichzeitig odersowas.
In der Regel erkennt man die mit bloßen Auge. Dann versucht man diese Stellen mit diversen Algorythmen zu finden.
Was kann man alles optimieren? Vielleicht kann man schonmal die Audiosignale vorfiltern?
In der Fourieranalyse wird zwar nur das gesampled wonach wir suchen, aber ich bin mir nicht sicher ob es vielleicht für die Verarbeitung doch besser ist, das Signal trotzdem etwas analog aufzubereiten.Denn man weiß ja welcher Frequenzbereich etwa vorkommen wird, dann kann man nämlich die ganzen Oberwellen usw. rauswerfen, und erleichtert dem Algorythmus, signifikante Unterschiede zu erkennen.
Ansonsten würden diese signifikanten Unterschiede im Chaos der Akustik unterjocht. Das ist nur eine Behauptung ohne Begründung.
Es kann nämlich auch genauso gut sein, dass grade die Oberwellen dazu beitragen, signifikante Unterschiede zu erkennen, da sie sozusagen noch mehr Information bereitstellen, und die Charakteristik eines Tons besser beschreiben. Mich würde mal interessieren was ihr dazu sagt.
Zur Idee mit den 88 Zuständen: Man müsste, um ein neues Event vom Alten zu unterscheiden, eine Art Mustererkennung auf die 88 bit loslassen. Mustererkennung schaffen nur parallele Computer bzw neurale Netzwerke. Man müsste dem Netzwerk aber beibringen was die Muster bedeuten. Ein Tastenschlag hat eine bestimmte Charakteristik, es werden also bestimmte Filter abgesprochen, nicht nur das der Grundfrequenz. Und dieses Muster kann sich für den selben Tastenshclag massiv ändern, sobald etwas anders angeschlagen wird... also das ist echt so komplex, ich wüsste also im Rahmen eines Forumbeitrags keine Lösung