Das Elektor-Forum schließt seine Pforten (siehe auch http://www.elektormagazine.de/forum). Ab Freitag, den 01. März, ist es nicht mehr möglich, sich im Forum einzuloggen. Alle Inhalte des Forums bleiben jedoch bis Ende März noch sichtbar. Am 01. April wird das Forum schließlich komplett geschlossen.

Signalverarbeitung -lieber Analog oder Digital?

Analog, HF, Akkus, Grundlagen, Praxistipps,<br>allgemeine technische Fragen...

Postby wallew » Sun Jul 21, 2013 12:00 am

Hallo und Guten Tag,

ich möchte, dass ihr mich von meinen anfängerhaften Fantasien abbringt:

Meine Fantasie ist folgende:
Wir leben in einer heilen Welt.
Analoge Frequenzfilter tun das, was sie tun sollen.
Klaviere sind gestimmt.

Ich will das Einsetzen einer neu geschlagenen Klaviertaste zeitlich genau erfassen.
Ein Klavier hat 88 Tasten. Somit sind 88 Filter nötig, jedes davon für eine Frequenz. Jeder Filter speichert seinen Zustand in einem FlipFlopWenn ich eine Taste anschlage, dann soll ein Filter arbeiten, dessen Zustand in einem FlipFlop gespeichert wird.

Das erste hier auftretende Problem ist, dass das Anschlagen einer Taste nicht nur eine Frequenz liefert, sondern eine ganzes Spektrum. Da sind noch Oberwellen drin, die eventuell andere Filter ansprechen könnten.
Z.B. enthält das Anschlagen eines tiefen G auch seine Oktave in Form einer Oberwelle, diese Oktave spricht dann den Filter für das nächste G an.

Kurz gesagt: jede Taste eines Klaviers hat eine eigene Charakteristik. Wenn man ein Tiefes G anschlägt, dann spricht das nicht nur den Filter für den Grundton an, sondern auch noch viele weitere, je nach dem wie man spielt.
Wenn man allerdings das nächste G anspielt, dann sieht das Muster der angesprochenen Filter anders aus.

Dazu kommt noch der Effekt, dass beim Anschlagen einer Taste erstmal diese Transienten sind, die aber schnell wieder abklingen, das könnte das Ergebnis positiv oder negativ beeinflussen.

Mir gehts darum, Tastenschläge zu registieren, und einmal angeschlagene, gehaltene Töne zu ignorieren.


Funktioniert das so? Oder ist diese Methode Spinnerei?

Danke im Voraus
wallew
 
Posts: 4
Joined: Fri Jan 03, 2014 2:02 pm

Postby ag » Sun Jul 21, 2013 12:00 am

Hallo wallew,

ich denke, es geht tendenziell in Richtung Spinnerei. Nicht nur wäre der nötige Aufwand ein Hinderness, du hast zusätzlich noch das von dir bereits angedeutete Problem des Abklingens: keine 2 Tastenschläge wären jemals (annährend) gleich, es sei denn, sie werden immer vollkommen "isoliert" erfolgen, also ohne Ausklangsreste von vorhergehende Tastenschläge. Meines Erachtens könnte das Vorhaben nur realisiert werden, wenn praktisch unbegrenzte Resourcen dafür zur Verfügung stehen.

Viele Grüße,
Ag
Ag
ag
 
Posts: 533
Joined: Thu Jan 02, 2014 10:37 am

Postby wallew » Sun Jul 21, 2013 12:00 am

Ja, Ausklangreste bereiten ein Problem. Aber es geht ja nicht um die genaue Erkennung, was jetzt im Einzelnen gespielt wurde. Es soll nur irgendwie erkannt werden, dass sich etwas signifikant verändert hat.
Im Prinzip müsste man eine Art Mustererkennung auf diese 88 Flipflops anwenden. Mit einem PC kann man das vergessen.
Dafür eignen sich soweit ich gehört hab Neural Networks besser.
Das geht aber schon Richtung Diplomarbeit.
wallew
 
Posts: 4
Joined: Fri Jan 03, 2014 2:02 pm

Postby thomas scherer » Sun Jul 21, 2013 12:00 am

Wenn ich das richtig verstehe: Du willst das Audiosignal anaylsieren auf Tastenanschläge?
Dabei wird jedes technische System vermutlich mindestens die Fehler machen, die auch das menschliche Gehör machen würde.
Und die zeitliche Auflösung wäre bei tiefen Tönen ziemlich begrenzt.
Menn man Tasten präzise erfassen will, muss man in die Klaviatur eingreifen und deren Anschlag direkt erfassen.
thomas scherer
 
Posts: 1128
Joined: Thu Jan 02, 2014 10:38 am

Postby ag » Sun Jul 21, 2013 12:00 am

Hallo wallew,

es geht ja nicht um die genaue Erkennung, was jetzt im Einzelnen gespielt wurde


wenn z.B. ein Akkord aus Tasten A, D, und G geschlagen wurde, soll eine Prüfung der Zustand alle 88 "FlipFlops" ergeben, dass A, D, und G seit dem letzten Reset gesplielt wurden. Nach vollständige Rezitation der "kleine Nachtmusik" würde eine Überprüfung ergeben, dass z.B. 68 der 88 Klaviertasten betätigt wurden. Und ob der Klavier gut gestimmt wurde oder nicht sollte das Ergebnis nicht ändern. So was in der Art? Also, eine grobe Erkennung von Grundtöne? Das müsste meines Erachten mit FPGAs (sollen für Fourieranalyse gut geeignet sein) realisierbar sein. Wäre aber dennoch ziemlich aufwendig, denke ich. Natürlich ware eine mehr oder weniger mechanische Abtastung am Klavier einfacher, aber ich glaube es geht hier mehr um "Ferndiagnose", oder?

Viele Grüße,
Ag
Ag
ag
 
Posts: 533
Joined: Thu Jan 02, 2014 10:37 am

Postby 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
wallew
 
Posts: 4
Joined: Fri Jan 03, 2014 2:02 pm

Postby wallew » Mon Jul 22, 2013 12:00 am

Dabei wird jedes technische System vermutlich mindestens die Fehler machen, die auch das menschliche Gehör machen würde.


Stimmt.
Im Normalfall erkennt das menschliche Gehör fast jedes Event. Vielleicht nicht immer beim ersten Hinhören. Aber es wäre gut wenn es die Maschine wenigstens annähernd so hinkriegt, dass man wenigstens eine Rythmik in den Peaks erkennt, oder einen Takt dazu schlagen kann. Die Peaks selbst sind ja im Prinzip der Takt. Nicht der wahre gleichmäßige Takt, aber sie überlappen mit dem wahren Takt. Meistens ist bei jedem Taktschlag des Metronoms auch der Anfang einer Note.
wallew
 
Posts: 4
Joined: Fri Jan 03, 2014 2:02 pm

Postby ag » Mon Jul 22, 2013 12:00 am

Hallo wallew,

Ich neige dazu zu glauben dass jeder der 88 Klaviertasten sich prinzipiell durch sein Grundton identifizieren laesst. Das lässt sich mit den nötigen Aufwand meines Erachtens durch Verwendung von FPGA Technik bewerkstelligen.

Neu ist nun die Tatsache, dass auch ein und derselbe Taste, X mal nacheinander betätigt, auch entsprechend X Ereignisse auslösen soll. Das laesst sich aber m.E. prinzipiell am Amplitude bzw. Anstiegsflanke erkennen.

Ob 4 gleichzeitige Tastenschläge zu ein oder 4 Ereignisse führen, oder ob nicht nur "Schläge" aufgezeichnet sondern auch noch welche Note jeweils geschlagen wurde, wäre dann auch nur eine Sache der entsprechende Programmierung.

Ich denke dass mit Spektrum Analysen, Filtern usw., eine Subjektivität eingeführt wird die nicht mehr zu beherrschen sein wuerde.

Die zeitliche Folge der Ereignisse aufzuzeichnen dürfte nicht das größte Problem sein. Vielmehr liegt meines Erachtens der großen Anteil des Aufwandes darin, die richtige Anzahl von FPGA Geräte beziehungsweise deren Programmierung und deren zusammenarbeit heraus zu arbeiten, so dass auch bei sehr reichhaltige Tonfolgen das System nicht überfordert wird.

Viele Grüße,
Ag
Ag
ag
 
Posts: 533
Joined: Thu Jan 02, 2014 10:37 am


Return to Allgemeines Elektronik-Forum

Who is online

Users browsing this forum: No registered users and 1 guest