Bei Objekt-Resampling stimmt Abspielpunkt nicht präzise

Daniel.Sutter schrieb am 05.12.2021 um 10:58 Uhr

Ich verwende Samplitude Pro X3, in der Version X6 stelle ich das im Folgenden beschriebene Problem aber immer noch fest.

Es geht hier um das Resamling auf Objektebene. Spiele ich ein solches Objekt nicht von Anfang an ab, stimmt der Aufsetzpunkt nicht präzise. Samplitude muss in so einer Situation quasi live den Zeitraum vom Objektanfang bis zum Play-Cursor durchrechnen, damit es beim Wiedergabestart den richtigen Punkt trifft, denn das Objekt wird ja beim Resampling entweder länger oder kürzer. Je länger der Bereich vom Objektstart bis zum Playcursor ist, desto extremer macht sich das bemerkbar. Ich schätze mal, dass das bei einer länge von einer Minute schnell einmal ein zwei hundertstel Sekunden ausmacht.

Ihr werdet jetzt sagen, was kümmern mich ein paar Hundertstel beim Abspielen? Für mich ist dies aber essentiell, denn ich erstelle DJ-Mixes, bei denen die Rhythmus-Schläge zweier Titel absolut präzise übereinander liegen, da hört meiner Erfahrung nach selbst Otto Normalverbraucher schnell einmal eine einzige Hunderstelsekunde heraus. Habe ich nun einen ersten Titel, der z.B. von 118 auf 120 BPM angepasst werden musste und ich mische so ab der fünften Minute den nächsten Titel hinein, spiele ich natürlich immer wieder ab dieser fünften Minute ab und platziere diesen nächsten Titel so, dass die Beats der beiden genau übereinander sind. Spiele ich später aber das ganze Projekt ab (oder exportiere es oder brenne es auf CD oder was auch immer), so sind die beiden Titel in Realität gar nicht präzise übereinander. Das hört sich dann relativ hässlich an, so nämlich, wie wenn ein DJ es live verbockt, die Titel schön übereinander zu legen.

Ihr könnt das Problem auch wie folgt nachvollziehen: nehmt einen normalen Dance-Track und mach eine kleine Geschwindigkeitsanpassung über Resampling auf Objektebene. Zerschneidet das Objekt nun so etwa bei der vierten Minute. Wichtig: dort wo ihr den Cut macht, muss der Rhythmus des Titels regelmässig anschlagen. Hört euch nun den Track an, einmal kurz vor dem Cut (dann wird das in Ordnung sein) und einmal von Anfang an (dann werdet ihr feststellen, das der Rhythmus beim Cut "springt"). Genau dies spricht eignentlich dafür, dass nicht der Aufsetzpunkt beim Abspielen falsch berechnet wird, sondern das das Resampling an und für sich in der Zeitlinie nicht ganz korrekt arbeitet!

Ich habe diese Frage schon vor vielen Jahren mal beim Support platziert, mehr als eine Stadardantwort vonwegen man werde das man der Entwicklung weitergeben, habe ich aber nicht erhalten. Ich bin nicht sicher, ob das Problem verstanden wurde, habe damals allerdings sogar ein kleines Beispielprojekt gesendet.

Das Problem lässt sich übrigens lösen, indem man in den Resampling-Optionen des Objektes den Haken bei "High Quality Resampling" entfernt. Dann klingt das Resampling aber leider sehr schlecht, denn es gehen dann seeeeehr deutlich Höhen verloren, vor allem bei nur kleinen Tempoanpassungen. Genau dies spricht aber auch dafür, dass das Resampling an und für sich nicht korrekt arbeitet und die Berechnung des Aufsetzpunktes beim Abspeilen an und für sich korrekt arbeiten würde.

Jemand eine Idee, wie man dieses Problem lösen kann? Mein Workaround ist es bislang, jedes Objekt, das ein Resampling drin hat, alle ca. 60 Sekunden einmal zu zerschneiden und natürlich genau beim Start des jeweils nächsten Titels einen Cut zu machen, so dass Samplitude keinen Vorlauf berechnen muss. Kanns ja aber irgendwie nicht sein... Die Objekte offline resamplen will ich auch nicht, denn danach ist man auf die neue BPM-Geschwindigkeit fixiert und wenn man doch noch was am Projekt anpassen möchte, muss man mit dem Resampling von vielen Objekten wieder von vorne beginnen.

Kommentare

SP. schrieb am 05.12.2021 um 14:58 Uhr

@Daniel.Sutter Tritt das Problem auch mit dem Elastique Pro-Algorithmus auf? Der braucht aber natürlich deutlich mehr Computerleistung.

Ich denke mal, du machst das schon ganz richtig mit dem Zerteilen in 60-Sekunden-Abschnitte. Ich vermute, dass das Problem durch Rundungsfehler bei der Berechnung auftritt und dieser Resamplingalgorithmus nicht für deinen Einsatzzweck geeignet ist. Weil Computer nicht mit einer beliebigen Genauigkeit rechnen können muss man irgendwann einen Kompromiss zwischen Genauigkeit und Geschwindigkeit eingehen. Und du stößt jetzt an an Grenzen, wenn du ein Timestretching über vier, fünf Minuten machst. Insbesondere, weil du nur um einen sehr kleinen Faktor resampelst. Am besten sind natürlich immer ganzzahlige Faktoren, aber in deinem Fall ist das natürlich nutzlos.

Es gibt auch spezielle Software für DJs wie Serato DJ Pro. Die verwenden auf diesen Zweck angepasste Algorithmen, um saubere Übergänge hinzubekommen.

Daniel.Sutter schrieb am 06.12.2021 um 07:53 Uhr

Vielen Dank für die ausführliche Antwort!

Mit sämtlichen anderen Algorithmen habe ich das Problem nicht, tritt nur beim Ressmpling auf. Die anderen sind aber für einen DJ meist kein Thema, da die Bass-Kicks ganz leicht verschoben werden, und zwar nicht regelmässig gleich.

Rein mathematisch gesehen kann mann Resampling sehr wohl absolut präzise ausführen, das ist im Vergleich zu timestretch und pitchbend eher Kinderkram. Dass die Länge ohne die erwähnte high quality Checkbox stimmt zeigt ja eigentlich, dass es geht. Das Problem wird für Magix aber eventuell darin liegen, dass wenn sie dieses Problem korrigieren würden, bereits bestehende VIP-Projekte nicht mehr präzise das gleiche Ergebnis liefern würden.

Danke auch noch für den Hinweis auf Serato. Habe schon davon gehört, mich aber ehrlich gesagt nie damit auseinandergesetzt. Ich kann mir nicht vorstellen, dass das alle Features bietet, die ich in Samplitude verwende, da meine Projekte weiter über das simple Aneinanderreihen von Titeln hinausgehen. Aber man könnte ja mal einen Blick darauf werfen.

Sonst jemand eine Idee, wie man das Problem eleganter lösen kann?