Karplus-Strong-Algorithmus
Der Karplus-Strong-Algorithmus ist ein Verfahren der Klangsynthese, welches besonders geeignet ist, um den Klang von Saiteninstrumenten zu simulieren. Der Algorithmus wurde 1983 im Computer Music Journal von Kevin Karplus und Alex Strong vorgestellt. Ein US-Patent wurde 1987 erteilt.[1] Der Algorithmus basiert auf einem Kreislauf, in dem Geräuschsamples zirkulieren und dabei einen Filter durchlaufen. In diesen Kreislauf wird initial ein zufälliges Geräusch eingespeist, welches in jedem Durchlauf einmal vom Filter modifiziert und ausgegeben wird.
Funktionsweise
Zunächst werden p Samples mit zufälligen Geräuschen in den Kreislauf eingeführt, die einen Speicher (FIFO) füllen, der p Samples halten kann. Danach wird die Eingabe beendet und das erste Sample verlässt den Speicher, wird ausgegeben, durchläuft den Filter und wird in seiner nun modifizierten Version wieder in den Speicher gefüllt. Das Ganze geschieht mit einer Rate von R Samples pro Sekunde, die den Speicher verlassen und den Kreislauf durchlaufen.
Aufgrund eines psychoakustischen Phänomens, dem „Periodicity Pitch“ (periodische Tonhöhe) nimmt man einen Ton der Höhe R/p Hz wahr. Die Klangfarbe wird dabei von den gewählten Eingangsgeräuschen bestimmt. Um die Abklingcharakteristik einer gezupften Saite zu simulieren, wird als Filter ein Tiefpassfilter verwendet. Hochfrequente Komponenten der Geräusche verlieren dadurch schneller an Energie, als die niederfrequenten.
Aus Sicht der technischen Signalverarbeitung liegt hierbei eine Faltung des Signales mit sich selbst vor, bei der ein dedizierter Ausschnitt, nämlich die sich ergebende Dauer zur Periode des wiedergegebenen Signals wird. Infolge der Dämpfung nähert sich das Signal im Verlauf immer mehr einer Sinuswelle an. Damit verklingt der zunächst im Rauschmuster enthaltene Oberwellenanteil, ähnlich dem Verhalten einer ausgelenkten Saite.
Anmerkungen
Als Eingabesamples eignen sich besonders Geräusche mit dichtem Spektrum, wie z. B. ein weißes Rauschen. Möchte man unterschiedliche Stärken beim Saitenanschlag simulieren, lässt man die Samples vor der ersten Ausgabe einige Durchläufe zirkulieren ohne sie auszugeben. Dies bewirkt einen realistischeren Effekt, als einfach die Lautstärke vor der Ausgabe anzupassen.
Weblinks
- Herleitung des Algorithmus und Implementation in LabView (englisch)
Einzelnachweise
- US-Patent 4.649.783