[Erklärung] Funktionsweise von Timecodes

kblsalat

kblsalat

dänzen!
Dabei seit
17 Aug 2011
Beiträge
232
Reaktionen
0
Ort
Technische Fakultät :\
Semesterferien, Langeweile, hier also der versprochene Thread mit bunten Bildern ;)

Allen, die nicht wissen, was ein Timecode überhaupt ist, empfehle ich, die Suchfunktion zu benutzen. So, Erklärung anhand der SSL Timecode-CD in drei Schritten:

1. Auswertung der Geschwindigkeit der Platte/CD:

Wie man im Bild erkennen kann, handelt es sich bei dem Timecode-Signal um eine Schwingung mit gleichbleibender Frequenz. Bei SSL beträgt die Frequenz dieses Signals 1000 Hz - pitcht man nun 1% hoch, hat das Signal eine Frequenz von 1010 Hz, pitcht man 0,1% runter, ist die Frequenz 990 Hz. Anhand der Frequenz und der Samplerate lässt sich also relativ einfach der Pitch-Wert errechnen.

13dfv.jpg


Die Frequenz errechnet sich, indem man die Anzahl von "Zero Crossings" (anz) in einem Datenblock zählt, darauf achtet, dass anz modulo 2 = 0 ist (so werden nur ganze Zyklen berücksichtigt), dann anz durch 2 teilt, und diesen Wert wiederum durch die Länge des Datenblocks vom ersten zum letzten Zero Crossings in Sekunden (Anzahl Bytes / Anzahl Kanäle / Samplerate) teilt.
Das Problem hierbei ist, dass es sich um gesamplete Daten handelt. Die Nullpunkte findet man also nicht, indem man überprüft, an welchen Stellen der Wert eines Samples 0 ist - denn die Nullpunkte liegen meist zwischen zwei Samples. Somit ist diese Art der Frequenzmessung nicht besonders genau (für DJ-Zwecke aber wohl ausreichend).

2. Auswertung der Drehrichtung:

Wie man im Bild erkennt, sind der linke und rechte Kanal nicht genau gleich. Sie enthalten scheinbar zwar die selben Daten, sind jedoch in der Zeit verschoben.

2edlm.jpg


Das macht auch Sinn, denn so lässt sich die Drehrichtung ermitteln. Liegen die "Peaks" des rechten Kanals ein gewisses Stück vor denen des linken (rote Linie), läuft die Platte vorwärts. Andernfalls wird gerade rückwärts gedreht.

Das ganze nennt sich Phasenverschiebung, die beträgt im Falle von SSL ca 90°. Hier ist die Samplerate kein Problem, da man im Grunde nur feststellen muss, wo die Position eines Peaks im rechten Kanal (posR) zwischen zwei Peaks im linken Kanal (posL1, posL2) liegt. Gilt posL1 - posR > (posL2 - posL1) / 2, läuft die Platte vorwärts, andernfalls rückwärts. Das würde theoretisch sogar mit einer Samplerate von 5 Samples pro Zyklus funktionieren.

3. Needle Drops/Cueing:

Auch wenn die Funktionen aus 1 und 2 eigentlich schon ausreichen, um ein DVS zu bedienen (sog. Relative Mode), ist es doch wünschenswert, die Nadel wie bei "echtem Vinyl" irgendwo auf der Timecode-Platte abzusetzen und direkt zur entsprechenden Stelle in der MP3 zu springen. Bei SSL scheinen die dafür benötigten "Timestamps" binär in der Lautstärke des Signals kodiert zu sein:

3vcj2.jpg


Wer in der Schule aufgepasst hat ;) weiß, dass Zahlen in binärer Darstellung eine Kombination aus 1en und 0en sind. Dem aufmerksamen Leser stellt sich nun die Frage, woher SSL wissen will, wo das Ende und der Start einer solchen Zahl sein soll. Deshalb schauen wir einmal genauer hin:

4oeoj.jpg


Es gibt nicht nur hohe und niedrige Peaks, sondern eher hoch-hohe, hoch-niedrige, niedrig-hohe und niedrig-niedrige. Die hab' ich einfach mal a, b, c und d genannt, sonst kriegt man ja 'nen Knoten im Kopf.

Wenn man genauer hinschaut, sieht man also, dass die Signale auf L und R nicht nur Phasenverschoben sondern auch nicht 100% identisch sind. Ich gehe davon aus, dass diese Unterschiede dazu dienen, den Start, das Ende, etc, eines Timestamps aufzuzeigen. Das System dahinter konnte ich aber auch nach viel probieren und rumrechnen nicht "knacken", ich denke mal, das ist auch so von Serato gewollt. Falls da jemand mehr weiß als ich, kann er mich ja gerne aufklären :)

So, damit habt ihr dann auch die Erklärung, warum Timecode-Vinyl nach längerer Zeit nicht mehr richtig im Absolute Mode, dafür aber noch praktisch tadellos im Relative Mode funktioniert. Cue Burns, Kratzer, etc, haben einen großen Einfluss auf das sehr sensible Timestamp-System, da nur 1 Wert "kaputt" sein muss, um das ganze System zum Skippen/wilden Rumspringen zu bringen. Der Relative Mode funktioniert dann aber immer noch, da 1 falscher Wert wenig bis gar keinen Einfluss auf die errechnete Frequenz hat, da die ja aus vielen, vielen Samples errechnet wird.

Solltet ihr Fragen haben, versuche ich, sie zu beantworten ;)

Edit: Und für alle, die Lust haben, mit ihren SSL/Traktor/Whatever-Timecodes ihre elektrische Eisenbahn zu steuern ( :D ), hier ist der Link zu einer C++-Klasse, die beliebige Timecodes im Relative Mode auswertet.
 
Zuletzt bearbeitet:
Hast dir ja ganz schön Mühe gegeben .. sollte angepinnt werden, damit es nicht im Nirvana verschwindet :)
 
alleine...nein. du hast schön anschaulich dar gestellt, wie das timecode prinzip funktioniert. aus erfahrung kann ich aber sagen: die wenigsten interessieren sich wirklich dafür, wie etwas funktioniert, solange es nur funktioniert.
die paar, die gerne die hintergründe kennen würden, bekommen sie hier schön aufbereitet und das ist doch prima. sticky werde ich den thread nicht machen, aber ich könnte ihn in die faqs schieben. wobei sich da die frage stellt: wer liest die überhaupt...
dafür geht er da aber nicht unter, sondern bleibt in einer überschaubaren sammlung interessanter themen, die eigentlich die quintessenz aller im forum gestellter fragen darstellen.
wenn du willst, mache ich das gerne. quasi als eine meiner letzten amtshandlungen. und ich finde da ist er in guter gesellschaft. einer von vielen threads mit vielen guten infos, die viel zu wenig beachtung bekommen ;)

edit: allerdings würde ich ich freuen, wenn du die bilder auf 1280x1024 verträglich grösse schrumpfst, damit auch leute die wie ich noch nen ollen 4zu3 19 zöller haben das ganze vernünftig ansehen können

nochn edit: als mod hat man meist mit dem aufräumen und beseitigen von offtopic und den ewig gleichen fragen zu tun. das bedeutet, dass man die leute oft auf ein "fehlverhalten" hinweisen muss, was auf dauer doch manchmal nervt.
daher freut es mich sehr, wenn jemand, der wie du erst seit kurzem bei uns ist, sich so einbringt und interessante themen verständlich aufbereitet.

an dieser stelle also mein ausdrückliches lob :)
 
Zuletzt bearbeitet:
Danke für diese tolle Erklärung, hab mich das schon länger gefragt, nur bisher nie die Zeit gehabt mich intensiver zu befassen!
 
hab die bilder mal resized und neu reingepackt. die thumbs waren dann doch wieder zu klein ;)
 
find ich gut !

sollte man aufheben.
 

Zurück
Oben