Timestretching: Tempo, Timing und Klang

Management Summary
Timestretching macht eine Aufnahme schneller oder langsamer, während die Tonhöhe möglichst gleich bleibt. In der Musikproduktion lassen sich Aufnahmen dadurch an ein anderes Tempo anpassen, ohne die Melodie zu verändern. Je nach Verfahren verändern sich aber Schlagzeuganschläge, gehaltene Klänge und das Zusammenspiel von linker und rechter Seite unterschiedlich. Der Vergleich erklärt, warum keine Einstellung für jede Aufnahme passt und genaue Zeitwerte allein noch keinen guten Klang belegen.
Inhalt
Timestretching ändert das Tempo einer Aufnahme, während die Tonhöhe möglichst gleich bleibt. Zwei FFmpeg-Filter wurden dafür mit künstlichen Testsignalen gemessen: atempo und rubberband. Das Ergebnis hängt stark vom Signal und von der Einstellung ab. Ein allgemeiner Klanggewinner lässt sich aus diesen Messungen nicht bestimmen.
Tempo ist nicht Dauer: Der Faktor 0,9 macht aus 120 BPM 108 BPM. Die Aufnahme wird dabei rechnerisch 11,11 Prozent länger. Faktor 1,1 ergibt 132 BPM und eine um 9,09 Prozent kürzere Aufnahme. BPM bedeutet Schläge pro Minute. Die folgenden Tabellen zeigen jeweils 0,9 / 1,1.

Was gemessen wurde
Die archivierte Messreihe verwendet FFmpeg 7.1.5, Rubber Band Library 3.3.0, 44,1 kHz und 32-Bit-Float-Ausgaben. Die Ergebnisse beschreiben diese Versionen und Testsignale. Eine Bewertung durch Anhören fand nicht statt.
- Zeit: 20 kurze Klicks im Abstand von 0,5 Sekunden. Geprüft wurden Ausgabelänge, erkannte Klicks und deren zeitlicher Versatz.
- Schläge: insgesamt zwölf Einzelschläge, abwechselnd sechs Kicks und sechs Snares. Die Abstände wurden variiert, damit die Schläge unterschiedliche Stellen der Verarbeitung treffen. Eine über 3 ms geglättete Pegelkurve zeigt den Anstieg; als Einsatz gilt die erste Stelle bei 50 Prozent der jeweiligen Kurvenspitze.
- Töne: fünf Sekunden lange Sinustöne bei 110, 440 und 1760 Hz sowie Sägezahntöne bei 55, 110, 220 und 440 Hz. Zusätzlich zu 0,9 und 1,1 wurden die Tempofaktoren 0,95 und 1,05 untersucht. Ein Sinus enthält nur eine Frequenz; ein Sägezahn zusätzlich viele Obertöne.
- Stereo: künstlich erzeugte Mixe mit je 16 Sekunden aus Schlagzeug, Bass, Fläche und Lead. Zufallsanteile und Startphasen unterscheiden sich zwischen den Durchläufen. Die Tabelle zeigt deshalb ähnliche Testmixe, keinen Vergleich mit durchgehend identischer Eingabedatei.
atempo setzt überlappende Audiostücke an möglichst ähnlichen Stellen zusammen. Das Verfahren heißt WSOLA. Bei 44,1 kHz verwendet der geprüfte Code 2048 Samples lange Fenster, also rund 46,4 ms. rubberband nutzt die Rubber Band Library und eigene Regeln für schnelle Klanganfänge, auch Transienten genannt.
Timing: Versatz und verbleibenden Fehler trennen
Die zweite Zahlengruppe der Tabelle ist der Median der Klickversätze: die Mitte der sortierten Einzelwerte. Die letzte Spalte zeigt etwas anderes: den größten Restfehler der zwölf Schlagpositionen, nachdem dieser Klickversatz bereits abgezogen wurde. Ein Restfehler von 0,58 ms bedeutet daher nicht, dass der unbearbeitete Sollzeitpunkt auf 0,58 ms getroffen wurde.
| Verfahren | Längenfehler, 0,9 / 1,1 | Klickversatz als Median, 0,9 / 1,1 | Größter Schlag-Restfehler nach Versatzkorrektur, 0,9 / 1,1 |
|---|---|---|---|
atempo |
−26,6 / −20,7 ms | −15,2 / −19,9 ms | 10,84 / 8,35 ms |
rubberband, Vorgabe (crisp) |
0,0 / 0,0 ms | −3,7 / +3,0 ms | 0,40 / 0,58 ms |
rubberband, transients=mixed |
0,0 / 0,0 ms | −3,7 / +3,0 ms | 1,50 / 2,04 ms |
rubberband, transients=smooth |
0,0 / 0,0 ms | −4,2 / +3,7 ms | 0,39 / 0,56 ms |
rubberband, window=long |
0,0 / 0,0 ms | −7,3 / +5,7 ms | 0,78 / 0,57 ms |
rubberband, channels=together |
0,0 / 0,0 ms | −3,6 / +3,0 ms | 0,37 / 0,52 ms |
Die Schlag-Restfehler wurden aus den archivierten Audiodateien mit dem jeweils passenden Eingang neu berechnet. Die frühere Auswertung verwendete einen gemeinsamen Snare-Bezug, obwohl sich die zufälligen Snare-Anteile unterschieden. Deshalb ändern sich einige Zeitwerte. Die Spitzenänderungen beziehen sich auf eine über 0,25 ms geglättete Hüllkurve, nicht auf rohe Sample-Spitzen; Einsatz und Vorlaufpegel verwenden 3 ms.
Negative Werte bedeuten kürzer oder früher als das rechnerische Ziel. Alle 20 Klicks wurden erkannt. Bei rubberband lag die Ausgabelänge innerhalb eines Samples am Ziel; 0,0 ms in der Tabelle ist gerundet. Trotzdem lagen die Klickmediane je nach Einstellung etwa 3,0 bis 7,3 ms davor oder dahinter.
Bei atempo war die Klickfolge rund 21 bis 27 ms zu kurz. Der Median lag etwa 15 bis 20 ms vor dem Ziel. Nach Abzug dieses Medians blieben bei den Schlägen bis zu 10,84 beziehungsweise 8,35 ms Fehler. Diese zwei Größen dürfen nicht verwechselt werden. Der Klickmedian ist außerdem kein Nachweis, dass jede Stelle einer Musikdatei um genau denselben Betrag verschoben wird.
Schlaganfänge und Spitzenpegel
Die Spitzenänderungen sind Mittelwerte über sechs Schläge je Klang, keine Grenze für jeden Einzelschlag. Die letzten beiden Spalten zeigen den höchsten Pegel unter zwölf Schlägen, gemessen 10 beziehungsweise 20 ms vor dem jeweiligen 50-Prozent-Einsatz. Als 0 dB gilt dabei die eigene Spitze der geglätteten Pegelkurve.
| Verfahren | Mittlere Kick-Hüllkurvenspitze, Änderung 0,9 / 1,1 | Mittlere Snare-Hüllkurvenspitze, Änderung 0,9 / 1,1 | Pegel 10 ms vor Einsatz, 0,9 / 1,1 | Pegel 20 ms vor Einsatz, 0,9 / 1,1 |
|---|---|---|---|---|
atempo |
−0,11 / −0,20 dB | −0,24 / −0,06 dB | −24,8 / −39,6 dB | Auswerteuntergrenze (−240 dB) |
rubberband, Vorgabe (crisp) |
−1,43 / −0,67 dB | −1,99 / −1,75 dB | −22,8 / −16,3 dB | −35,9 / −29,3 dB |
rubberband, transients=mixed |
−0,90 / −1,64 dB | −0,54 / −1,82 dB | −14,5 / −12,3 dB | −25,6 / −20,6 dB |
rubberband, transients=smooth |
−0,73 / −1,28 dB | −0,88 / −1,60 dB | −20,3 / −14,9 dB | −33,1 / −30,4 dB |
rubberband, window=long |
−1,15 / −1,14 dB | −1,77 / −1,61 dB | −14,1 / −14,7 dB | −20,0 / −17,1 dB |
rubberband, channels=together |
−0,93 / −1,31 dB | −1,63 / −1,19 dB | −21,4 / −17,9 dB | −33,8 / −34,3 dB |
Bei rubberband ist schon vor dem so bestimmten Einsatz Signal vorhanden. Besonders window=long zeigt 20 ms vorher noch bis zu −17,1 dB. Das beschreibt ein zeitliches Verschmieren des Anstiegs. Bei atempo lag der 20-ms-Wert am unteren Auswertewert von −240 dB. Die Messroutine begrenzt sehr kleine Werte dort; „absolut kein Signal“ wäre eine stärkere Aussage.
Die kleinen mittleren Spitzenverluste von atempo gelten nicht für jeden Schlag: Eine Snare verlor bei Tempo 0,9 rund 0,86 dB. Auch die Mittelwerte von rubberband verdecken größere Einzelverluste. Die Grafik zeigt einen ausgewählten Snare-Schlag und ersetzt nicht die gesamte Schlagreihe.
Sinustöne: kurze Pegelabfälle
RMS beschreibt den effektiven Pegel eines kurzen Signalabschnitts. Hier wird der kleinste 10-ms-RMS-Wert mit dem Median dieser Werte verglichen; die erste und letzte Sekunde bleiben außen vor. −11,5 dB bedeutet: Der leiseste ausgewertete Abschnitt lag 11,5 dB unter dem typischen Pegel. Ein kurzes RMS-Fenster kann auch beim ursprünglichen Sinus etwas schwanken.
| Verfahren | Sinus 110 Hz, 0,9 / 1,1 | Sinus 440 Hz, 0,9 / 1,1 | Sinus 1760 Hz, 0,9 / 1,1 |
|---|---|---|---|
atempo |
−0,4 / −0,4 dB | −0,1 / −0,1 dB | 0,0 / 0,0 dB |
rubberband, Vorgabe (crisp) |
−1,7 / −2,0 dB | −4,4 / −7,4 dB | −7,6 / −11,5 dB |
rubberband, transients=mixed |
−1,7 / −2,0 dB | −0,1 / −0,2 dB | −7,6 / −11,5 dB |
rubberband, transients=smooth |
−0,3 / −0,3 dB | −0,1 / −0,1 dB | −0,1 / −2,7 dB |
Die Vorgabe crisp zeigt bei mehreren Frequenzen deutliche Einbrüche. smooth verringert diese meist, aber nicht vollständig: Bei 1760 Hz und Tempo 1,1 bleiben −2,7 dB. mixed hilft in dieser Tabelle bei 440 Hz, jedoch nicht bei allen drei Frequenzen.
Die Herstellerdokumentation beschreibt unterschiedliche Regeln für das Zurücksetzen der Phasen. Die Messreihe zeichnet diese internen Vorgänge nicht auf. Deshalb lässt sich daraus keine sichere Ursache für jeden einzelnen Einbruch ableiten. Ebenso fehlt ein Hörtest, der die Wahrnehmbarkeit der Abfälle bewertet.
Sägezahntöne: Energie außerhalb der Obertonbereiche
Obertöne liegen bei Vielfachen der Grundfrequenz. Die Auswertung betrachtet einen zwei Sekunden langen Ausschnitt mit einem Blackman-Fenster, das die Ränder für die Frequenzanalyse absenkt. Im Bereich von 50 Hz bis 18 kHz werden schmale Bereiche um die geschätzten Obertöne ausgespart. Die übrige Energie wird durch die gesamte Energie in diesem Frequenzbereich geteilt. Das ergibt einen Restenergieanteil, keine direkte Bewertung des Klangs.
Die erste Tabellenzeile nennt diesen Anteil im Original in dB. Die weiteren Zeilen zeigen dessen Änderung gegenüber dem Original. Beispiel: −50,1 dB plus 40,3 dB ergibt etwa −9,8 dB. Das bedeutet weder einen um 40,3 dB lauteren Ton noch pauschal „40,3 dB mehr hörbare Störung“.
| Verfahren, Tempo 0,9 | 55 Hz | 110 Hz | 220 Hz | 440 Hz |
|---|---|---|---|---|
| Restenergieanteil des Originals | −50,1 dB | −47,1 dB | −43,9 dB | −41,0 dB |
atempo |
+40,3 dB | +1,4 dB | +10,5 dB | +3,4 dB |
rubberband, Vorgabe (crisp) |
+40,7 dB | +41,4 dB | +37,2 dB | +28,8 dB |
rubberband, transients=mixed |
+40,8 dB | +41,0 dB | +24,8 dB | +23,3 dB |
rubberband, transients=smooth |
+26,1 dB | +4,2 dB | +10,5 dB | +15,3 dB |
Bei 55 Hz und Tempo 0,9 fällt atempo deutlich auf. Bei 110 Hz ist der Wert dagegen näher am Original. Auch smooth gewinnt nicht in jeder Spalte. Die Auswertung hängt von Fensterlänge, geschätzter Grundfrequenz und den ausgesparten Bereichen ab. Verbreiterte oder verschobene Spektrallinien können den Restanteil erhöhen. Eine konkrete interne Fehlerursache wurde nicht gemessen.
Stereokanäle, Pegel und Rechenzeit
Die Korrelation beschreibt hier, wie ähnlich die Signalverläufe links und rechts sind. Ein Wert von +1 bedeutet gleiche Verläufe, eventuell mit unterschiedlichem Pegel. −1 bedeutet entgegengesetzte Verläufe; beim Zusammenmischen können sich Anteile auslöschen. Vor der Bearbeitung lag der Wert je Testmix zwischen etwa 0,918 und 0,921. Ein ähnlicher Wert nach der Bearbeitung beweist allein weder ein unverändertes Stereobild noch guten Klang in Mono.
| Verfahren | Kanalähnlichkeit nachher, 0,9 / 1,1 | RMS-Änderung, 0,9 / 1,1 | Eingangsdauer / Laufzeit, 0,9 / 1,1 |
|---|---|---|---|
atempo |
0,922 / 0,919 | −0,03 / −0,05 dB | 26,0 / 18,9-fach |
rubberband, Vorgabe (crisp) |
0,894 / 0,903 | −0,55 / −0,65 dB | 6,5 / 6,9-fach |
rubberband, transients=mixed |
0,749 / 0,757 | −1,10 / −1,34 dB | 5,6 / 7,1-fach |
rubberband, transients=smooth |
0,531 / 0,495 | −2,61 / −2,95 dB | 5,0 / 5,5-fach |
rubberband, window=long |
0,906 / 0,909 | −0,44 / −0,71 dB | 3,7 / 6,2-fach |
rubberband, channels=together |
0,920 / 0,919 | −0,55 / −0,65 dB | 5,1 / 4,7-fach |
rubberband, smooth und together |
0,911 / 0,912 | −2,66 / −3,03 dB | 5,0 / 7,4-fach |
rubberband, mixed und together |
0,940 / 0,935 | −1,12 / −1,35 dB | 5,5 / 8,1-fach |
channels=together hält die Kanäle stärker zusammen. Bei den getesteten Kombinationen lagen die Werte damit über 0,91. Die Option ist ein sinnvoller Vergleichskandidat für Stereomaterial; eine allgemeine Qualitätsgarantie folgt daraus nicht. Der Stereo-Korrelations- und Mid/Side-Messer unterstützt die technische Kontrolle. Zusätzlich bleibt ein Vergleich in Stereo und Mono erforderlich.
Die Pegelspalte zeigt die RMS-Änderung, keine Lautheitsmessung in LUFS. Beispielsweise bedeutet −3 dB RMS nicht automatisch, dass eine pauschale Anhebung um 3 dB sicher ist: Dabei können Spitzen zu hoch werden. Nach einer Pegelanpassung gehören Spitzen und Lautheit erneut geprüft.
Die Laufzeitzahl ist die Eingangsdauer von 16 Sekunden geteilt durch die kürzeste von drei Prozesslaufzeiten auf einem Raspberry Pi 4. Dateioperationen und wechselnde Rechnerlast gehen mit ein. Die Werte zeigen die Geschwindigkeit dieser Versuche, keine Garantie für beliebige Dateien oder ein Projekt mit vielen gleichzeitig laufenden Effekten.
Was sich praktisch ableiten lässt
Für rhythmisches Material lohnt ein Vergleich von rubberband mit channels=together und atempo. Dabei zählen sowohl die tatsächlichen Schlagpositionen als auch die Form der Anstiege. Für gehaltene Töne ist transients=smooth ein weiterer Kandidat. Die Messwerte begründen keine feste Empfehlung für Gesang: Stimmen, akustische Aufnahmen und Hall wurden nicht getestet.
Der BPM- und Delay-Rechner hilft bei Notenlängen und Delayzeiten zum neuen Tempo. Die passende Bearbeitung muss anschließend am tatsächlichen Audiomaterial geprüft werden.
Fragen und Antworten
Bleiben getrennt bearbeitete Spuren synchron?
Gleicher Tempofaktor und gleiche Optionen garantieren das nicht. Die Bearbeitung reagiert auf den Inhalt jeder Spur. Aus den Klickversätzen zweier Einstellungen lässt sich daher keine feste Differenz für beliebige Drum- und Padspuren ableiten. Ein Klick am Anfang prüft nur den Anfang, nicht die ganze Aufnahme.
Zusammengehörige Mikrofonspuren brauchen eine Bearbeitung, die deren zeitliche Beziehung gemeinsam erhält, etwa eine dafür vorgesehene gruppierte Funktion im Audioprogramm. Danach sind gemeinsame Ereignisse am Anfang, in der Mitte und am Ende sowie das Zusammenspiel in Mono zu prüfen.
Verringert window=long das Signal vor dem Schlag?
In dieser Messung nicht: Der größte Wert 20 ms vor dem Einsatz lag damit bei −17,1 dB. Bei crisp, smooth und channels=together waren die entsprechenden Maximalwerte niedriger. Das Ergebnis gilt für die untersuchten Schläge und Einstellungen.
Gilt der Vergleich auch für die R3-Engine?
Nein. Der geprüfte FFmpeg-7.1-Code startet Rubber Band im Echtzeitmodus und bietet keine eigene Engine-Auswahl; ohne R3-Flag kommt R2 zum Einsatz. Andere Einbindungen oder spätere FFmpeg-Versionen müssen getrennt geprüft werden. Die gemessenen Versätze sind keine universellen Latenzwerte der Bibliothek.