"Sig4"
Melodie-Signaturen

Erkennung von Melodien aus der Tonhöhenfolge

Aus Melodien kann man durch einfache Prozeduren sehr charakteristische Zahlenfolgen gewinnen, über welche die Melodien mit großer Trefferwahrscheinlichkeit identifiziert werden können.
Ähnlich wie bei einem Fingerabdruck, kann man aus demselben nicht Menschen (bzw. die Melodie) rekonstruieren - aber die Zuordnung gelingt mit großer Sicherheit.
Beispiele für solche Prozeduren

Sig 1Notation des reinen Tonhöhenverlaufes (incl. Informationen zu Tonwiderholungen, Tonlängen und Pausen)
                       Beispielmelodie: J.Mitchel: CircleGame
                                      egc  efe c++e   egc efe c+d-   egc e++ c+++e-g-  def-gfe-c-  G++e+c  ... ... ...     MIDI-Datei
Sig 2Tonhöhen-Abfolge-Differenzen. Tonsprung nach oben "/".  Tonsprung nach unten "\". 
                                       ( "/3+-  +\12" = hoch 3 Halbtöne, TonWiderhollung lang, Pause, TonWiderhollung (kurz),  runter 12 Hälbtöne [Oktavsprung runter];  
                                        "/3+-  + \1\2" = hoch  3Halbtöne, TonWiderhollung lang, Pause, TonWiderhollung (kurz),  runter 1 Halbron, runter 1 Halbron )
                                           Zusätzlich mit gelegentlichen Hinweisen zu langen (-) besonders langen (---) Tonlängen und Pausen.
                      
                       Bsp: CircleGameAnfang: S/3\7  /4/1\1 \4++/4   +/3\7 /4/1\1 \4+/2-     /2/3\7 /4++ \4+++/4-/3-  \5/2/1-/2\2\1-\4-  \5++/9+\4  ... ... ...
                       Rekonstruktion der Melodie aus Sig2 ist noch recht gut möglich.
Sig 3Differenzieren der chromatischen Tonhöhenfolge.
                      Bsp: CircleGameAnfang: S/3\7/4/1\1\4++/4+/3\7/4/1\1\4+/2/2/3\7/4++\4+++/4/3\5/2/1/2\2\1\4\5++/9+\4 ... ...   MIDI
                      Erkennen der Melodie bereits erschwert, da keinerlei TonLängeninformationen und keine Pausen  mehr erhalten sind.

       Diese Signatur reagiert jedoch noch empfindlich, darauf, wenn z.B. eine doppelte kurze Note durch eine einzelne längere Note ersetzt wird - obwohl dies nur eine geringfügige Änderung der Melodie darstellt. Daher...
Sig 4Sig4= Sig100-D1-n0: =  wie Sig3 aber mit nachfolgendem Entfernen sämtlicher Nullen (=Mehrfachtöne auf gleiche Tonhöhe) aus der Signatur.
                      Beispiel:         -4-5-2-334-4,12-1-2-2-722
                      Bsp: CircleGameAnfang:  
 Sig4: S/3\7/4/1\1\4/4/3\7/4/1\1\4/2/2/3\7/4\4/4/3\5/2/1/2\2\1\4\5/9\4 ...  durch Auswechseln von Symbonen "/"  und "\"  durch "+" und "-"      Sig4: S+3-7+4+1-1-4+4+3-7+4+1-1-4+2+2+3-7+4-4+4+3-5+2+1+2-2-1-4-5+9-4 ...    MIDI
                       Erkennen/Erraten der Melodie (melodieabhängig) mitunter noch möglich -
                       Gute Rekonstruktion der AusgangsMelodie jedoch in aller Regel (allein aus dieser Signatur) nicht mehr möglich.

Sig4 ist gut geeignet (deutlich robuster), wenn bei der Melodieerkennung gewisse Abänderungen der Melodie (Tonlänge, Tonwederholungen, Pausen)  toleriert werden sollen.


BeispielMelodien:
MELODIE
                    SIGNATUR(en)
(= differenzierte Tonhöhenfolge ohne Nullen)




Volkslied
(jugendgefährdend)


Hänschenklein

 MIDI        1k
Sig1:    g e+-  f d+- cdefg++-  g e+-  f d+-  c e g+- c--    d++ ++ef-  e++ ++fg-  g e+-  f d+-  c e g+- c-  ***
Sig2:  S \3+-  /1 \3+- \2/2/2/1/2++-  + \3+-  /1 \3+-  \2 /4 /3+- \7--  /2++ ++/2/1-  \1++ ++/1/2-  + \3+-  /1 \3+-  \2 /4 /3+- \7- 
Sig3:  S\3+/1\3+\2/2/2/1/2+++\3+/1\3+\2/4/3+\7/2++++/2/1\1++++/1/2+\3+/1\3+\2/4/3+\7
Sig4(/\) S\3/1\3\2/2/2/1/2\3/1\3\2/4/3\7/2/2/1\1/1/2\3/1\3         
Sig4(/\) ===> Symboltausch:  "/" = "+" ;  "\" = "-" ===> Sig4(+-)=sig4
Sig4:(+-)S-3+1-3-2+2+2+1+2-3+1-3-2+4+3-7+2+2+1-1+1+2-3+1-3    MIDI
( das aus Sig4 zurückgebildete Melodierudiment in midi: ist schwerlich als Hänschenklein wieder erkennbar )



Joni Mitchel

Circle Game

 MIDI        4k  

Sig4: +3-7+4+1-1-4+4+3-7+4+1-1-4+2+2+3-7+4-4+4+3-5+2+1+2-2-1-4-5+9-4+7-3+3-7+7-3          MIDI

Circle Game - Signatur als midi


Der markante Melodiekern der meisten Lieder erzeugt eine Sig4-Signatur von weniger als 0,1kByte. In einer Datei von 1MB Größe lassen sich also etwa 10 000 solcher Signaturen abspeichern.
Eine 1MB-Datei läßt sich in Sekundenschnelle im Volltext durchsuchen. Ähnlich schnell läßt sich das Signaturfeld einer Datenbank im Volltext durchsuchen.
(Datenbankindizierung wäre zwar möglich birgt aber Probleme in sich.)

Aus einer Melodieanfrage (Tonhöhenabfolge) kann man Sig2 und Sig4 generieren. Zuerst sucht man mit Sig4 im Sig4-File.

=> Fall 0: kein Treffer
           ...man kann mit Bruchstücken der erzeugten Sig4 im Sig4-File suchen (z.B. mit dem erstem, dem zweiten oder letzten Drittel)

=> Fall 1: genau ein Treffer
            ...wird's dann wohl gewesen sein.

=> Fall 2:  mehrere Treffer
           ...dann kann man mit Sig2 im Sig2-File suchen