Bit-identische Musik-Dateien auf derselben Festplatte
Verfasst: 11.05.2014, 19:31
Hallo Forenten,
angeregt durch den aktuellen Thread Audiophiles Rippen habe ich mal ein Experiment gemacht. Dieses trägt nichts zur ursprünglichen Frage des zitierten Threads bei, weshalb ich hier einen neuen aufmache. Ähnliche Fragen kommen ja in schöner Regelmäßigkeit in diesem und anderen Foren auf, und leider gleiten die entsprechenden Threads in gleicher Regelmäßigkeit in "kann nicht sein"- oder "Vodoo"-Diskussionen ab, und liefern wenig Brauchbares zur ursprünglichen Frage. (Eine Liste ähnlicher Threads hat Erwin dieser Tage zusammengestellt.)
Ein Grund für die erwähnten fruchtlosen Diskussionen scheint mir zu sein, dass viele Leute bei digitalen Daten zwei Aspekte nicht unterscheiden: Erstens der abstrakten digitalen Information (einer "gedachten Folge von Nullen und Einsen") und zweitens ihrer physikalischen Repräsentation (z.B. Vertiefungen in der Oberfläche einer CD, Magnetisierung von Partikeln auf einer Festplatte, Ladung in einer Speicherzelle, der Wellenform eines elektrischen Signals während einer Übertragung, einem Ausdruck auf Papier, usw. usw.).
Schauen wir etwas genauer auf das Beispiel der CD: Hier werden Bitfolgen, die die Samples einer digitalen Tonaufnahme beschreiben, durch Vertiefungen in einer Oberfläche beschrieben, die in einem Laufwerk per Laser abgetastet werden. Hier gibt es nun gewisse Toleranzen, wie diese Vertiefungen genau auszusehen haben (Länge, Breite, Steilheit der Kanten, Glattheit der Oberfläche, ...). Das gute an digitalen Daten ist, dass es für ihre Rekonstruktion auf die Feinheiten nicht ankommt. Solange eine CD diese Toleranzen einhält und nicht beschädigt ist, kann jedes noch so billige oder teure Lesegerät die digitalen Daten zu 100% wieder auslesen. Und was bedeutet "auslesen"?: Die digitalen Daten werden in ein (analoges!) elektrisches Signal verwandelt, das am Ausgang des Lesegerätes abgegriffen werden kann. Auch bei diesem Signal gibt es eine große Bandbreite, wie dies genau aussehen kann. Im Idealfall würden wir uns das als ein Rechtecksignal vorstellen, das für gewisse Zeitintervalle pro Bit zwischen zwei Amplituden wechselt, die die Nullen und Einsen repräsentieren. So sieht es aber in Wirklichkeit nicht aus. Die Kanten sind vielleicht nicht besonders steil, das Signal ist von einer Vielzahl höherfrequenter Störungen überlagert, es wechselt nur ungefähr zwischen zwei Amplituden, ... Aber das ist gut genug, um die abstrakte Information zu 100% zu übertragen; es genügt, wenn die Amplitude in einem Zeitintervall für ein Bit überwiegend über- oder unterhalb einer gewissen Schwelle ist.
Und so ähnlich ist es auch mit einer Festplatte: Zum Schreiben von Daten wird ein elektrisches Signal benutzt, um in gewissen Spuren Partikel auf einer Platte zu magnetisieren. Ich kenne mich in den technischen Details nicht besonders aus, stelle mir aber vor, dass die Bandbreite an Magnetisierungsmustern (Länge, Breite, Stärke und Gleichmäßigkeit der Magnetisierung, ...), die ein- und dieselbe abstrakte digitale Information kodieren, recht groß ist. Ich kann mir auch gut vorstellen, dass auf der Magnetspur nicht nur die abstrakte digitale Information gespeichert ist, sondern diese weit mehr Details des beim Schreiben anliegenden elektrischen Signals kodiert (zum Beispiel schwächere Magnetisierung bei kleinerer Amplitude, ungleichmäßigere Magnetisierung bei stärkeren hochfrequenten Überlagerungen des Signals, usw.). Und gleiches wird dann auch für das Auslesen gelten (schwächere Magnetisierung liefert geringere Amplitude, ...).
Dies ist sicher ein extrem vereinfachtes Modell der komplizierten Wirklichkeit. Aber es scheint mir plausibel und es kann zum Beispiel erklären, dass beim Rippen einer CD auf eine Festplatte die zu 100% gleiche und korrekte abstrakte digitale Information (das heißt "bit-identisch") in recht unterschiedlicher Repräsentation auf der Festplatte gespeichert wird; und auch, dass die Qualität des Signals beim Beschreiben der Festplatte die Qualität des Signals beim Auslesen (etwa zum Abspielen oder Kopieren) beeinflusst.
Ok, soweit das theoretische Modell. Aber können beim Rippen unter verschiedenen Bedingungen (verschiedene Laufwerke, Akku oder Steckdose, verschiedene Software, ...) diese Unterschiede groß genug sein, dass beim Abspielen Unterschiede hörbar sind? Da ich nur noch ein externes CD-Laufwerk im Haus habe, fällt mir kein sinnvoller Versuch ein, um eine CD mit potentiell unterschiedlicher Qualität zu rippen.
Deshalb habe ich mich allgemeiner gefragt, ob ich es hinbekomme, bit-identische Dateien auf meiner Festplatte zu generieren, so dass ich einen Unterschied beim Abspielen hören kann. Meistens durchlaufen die Musikdateien bei mir beim Abspielen noch viele Konversionen (resamplen, Raumkorrektur, und anderes), und in diesem Setup kann ich mir nicht vorstellen, dass hinten noch hörbare Unterschiede rauskommen. Meinen Test habe ich deshalb mit vorgefalteten Dateien gemacht. Diese werden dann beim Abspielen nur noch auf einem Rechner von der Festplatte gelesen und per Ethernet an einen anderen Rechner geschickt, der sie über einen USB-DAC abspielt.
Ich habe also mehrere Stücke, die ich schon seit langem als Teststücke verwende, zuerst vorbehandelt, wie beim normalen Abspielen. Statt Abspielen habe ich das Ergebnis in eine Datei auf meiner Festplatte umgelenkt. Die Signalqualität (im Sinne von störenden Überlagerungen) ist auf dem Rechner, den ich hier verwendet habe, wohl ziemlich gut, und ich sehe nicht, wie ich die künstlich verschlechtern könnte. Was aber bei den so generierten Dateien nicht ganz optimal ist, ist das Timing. Meine Datei ist im 192kHz/32bit Format und wurde bei einer CPU-Taktrate von 1600 MHz geschrieben; das macht im Durchschnitt 4167 Taktzyklen pro Sample. Ich vermute mal, dass in Wirklichkeit die Anzahl der Taktzykeln zwischen den Samples, die zum Schreiben an die Festplatte geschickt wurden, stark variiert hat. Das brachte mich auf die Idee, die Dateien zu "verbessern", indem ich sie mit meinem Programm "bufhrt" kopiere, das Datenblöcke in sehr präzisen Zeitintervallen schreibt (das Linux-Programm ist [url=http://frank_l.bitbucket.org/stereoutils/player.html]hier[/url] erklärt und erhältlich).
Dann der Hörtest: Ich habe mir die beiden Versionen der (bit-identischen) Dateien auf der gleichen Festplatte angehört - und sie klangen unterschiedlich! Im allgemeinen halte ich nicht so viel von ABX-Tests oder Ähnlichem. Aber in diesem Fall wollte ich doch sicher gehen, dass ich mir nichts einbilde. Ich habe daher per Zufallszahlengenerator die Kommandos zum Abspielen der beiden Dateien zwei Skripten A und B zuordnen lassen. Nach einmaligem Aufruf von A und B konnte ich immer sagen, welche Version welche ist (eigentlich wusste ich es sogar schon nach Aufruf von A). Das ganze habe ich mit 5 verschiedenen Stücken wiederholt und konnte es verlässlich reproduzieren. (Bei 4 der Stücke klang übrigens für mich die "verbesserte" Datei auch besser, bei einem war es andersherum.)
(Hinweis für Leute, die so etwas auch probieren wollen: Bei mehrfachem Abspielen der gleichen Dateien von Festplatte, sollte die entsprechende Partition der Festplatte zwischendrin mal aus- und eingehängt werden, damit die Dateien nicht gecached aus dem RAM gelesen werden.)
Damit sind für mich die Berichte über gehörte Unterschiede in den eingangs erwähnten Threads glaubwürdig. Insbesondere, wenn man gerippte Musik ohne viel weitere Behandlung direkt abspielen will, kann es sich lohnen, mit Laufwerk, Stromversorgung, Software usw. zum Rippen zu experimentieren.
(Und man kann von Stücken, die schon auf der Festplatte liegen, unter Umständen "verbesserte" Kopien erzeugen!)
Viele Grüße,
Frank
angeregt durch den aktuellen Thread Audiophiles Rippen habe ich mal ein Experiment gemacht. Dieses trägt nichts zur ursprünglichen Frage des zitierten Threads bei, weshalb ich hier einen neuen aufmache. Ähnliche Fragen kommen ja in schöner Regelmäßigkeit in diesem und anderen Foren auf, und leider gleiten die entsprechenden Threads in gleicher Regelmäßigkeit in "kann nicht sein"- oder "Vodoo"-Diskussionen ab, und liefern wenig Brauchbares zur ursprünglichen Frage. (Eine Liste ähnlicher Threads hat Erwin dieser Tage zusammengestellt.)
Ein Grund für die erwähnten fruchtlosen Diskussionen scheint mir zu sein, dass viele Leute bei digitalen Daten zwei Aspekte nicht unterscheiden: Erstens der abstrakten digitalen Information (einer "gedachten Folge von Nullen und Einsen") und zweitens ihrer physikalischen Repräsentation (z.B. Vertiefungen in der Oberfläche einer CD, Magnetisierung von Partikeln auf einer Festplatte, Ladung in einer Speicherzelle, der Wellenform eines elektrischen Signals während einer Übertragung, einem Ausdruck auf Papier, usw. usw.).
Schauen wir etwas genauer auf das Beispiel der CD: Hier werden Bitfolgen, die die Samples einer digitalen Tonaufnahme beschreiben, durch Vertiefungen in einer Oberfläche beschrieben, die in einem Laufwerk per Laser abgetastet werden. Hier gibt es nun gewisse Toleranzen, wie diese Vertiefungen genau auszusehen haben (Länge, Breite, Steilheit der Kanten, Glattheit der Oberfläche, ...). Das gute an digitalen Daten ist, dass es für ihre Rekonstruktion auf die Feinheiten nicht ankommt. Solange eine CD diese Toleranzen einhält und nicht beschädigt ist, kann jedes noch so billige oder teure Lesegerät die digitalen Daten zu 100% wieder auslesen. Und was bedeutet "auslesen"?: Die digitalen Daten werden in ein (analoges!) elektrisches Signal verwandelt, das am Ausgang des Lesegerätes abgegriffen werden kann. Auch bei diesem Signal gibt es eine große Bandbreite, wie dies genau aussehen kann. Im Idealfall würden wir uns das als ein Rechtecksignal vorstellen, das für gewisse Zeitintervalle pro Bit zwischen zwei Amplituden wechselt, die die Nullen und Einsen repräsentieren. So sieht es aber in Wirklichkeit nicht aus. Die Kanten sind vielleicht nicht besonders steil, das Signal ist von einer Vielzahl höherfrequenter Störungen überlagert, es wechselt nur ungefähr zwischen zwei Amplituden, ... Aber das ist gut genug, um die abstrakte Information zu 100% zu übertragen; es genügt, wenn die Amplitude in einem Zeitintervall für ein Bit überwiegend über- oder unterhalb einer gewissen Schwelle ist.
Und so ähnlich ist es auch mit einer Festplatte: Zum Schreiben von Daten wird ein elektrisches Signal benutzt, um in gewissen Spuren Partikel auf einer Platte zu magnetisieren. Ich kenne mich in den technischen Details nicht besonders aus, stelle mir aber vor, dass die Bandbreite an Magnetisierungsmustern (Länge, Breite, Stärke und Gleichmäßigkeit der Magnetisierung, ...), die ein- und dieselbe abstrakte digitale Information kodieren, recht groß ist. Ich kann mir auch gut vorstellen, dass auf der Magnetspur nicht nur die abstrakte digitale Information gespeichert ist, sondern diese weit mehr Details des beim Schreiben anliegenden elektrischen Signals kodiert (zum Beispiel schwächere Magnetisierung bei kleinerer Amplitude, ungleichmäßigere Magnetisierung bei stärkeren hochfrequenten Überlagerungen des Signals, usw.). Und gleiches wird dann auch für das Auslesen gelten (schwächere Magnetisierung liefert geringere Amplitude, ...).
Dies ist sicher ein extrem vereinfachtes Modell der komplizierten Wirklichkeit. Aber es scheint mir plausibel und es kann zum Beispiel erklären, dass beim Rippen einer CD auf eine Festplatte die zu 100% gleiche und korrekte abstrakte digitale Information (das heißt "bit-identisch") in recht unterschiedlicher Repräsentation auf der Festplatte gespeichert wird; und auch, dass die Qualität des Signals beim Beschreiben der Festplatte die Qualität des Signals beim Auslesen (etwa zum Abspielen oder Kopieren) beeinflusst.
Ok, soweit das theoretische Modell. Aber können beim Rippen unter verschiedenen Bedingungen (verschiedene Laufwerke, Akku oder Steckdose, verschiedene Software, ...) diese Unterschiede groß genug sein, dass beim Abspielen Unterschiede hörbar sind? Da ich nur noch ein externes CD-Laufwerk im Haus habe, fällt mir kein sinnvoller Versuch ein, um eine CD mit potentiell unterschiedlicher Qualität zu rippen.
Deshalb habe ich mich allgemeiner gefragt, ob ich es hinbekomme, bit-identische Dateien auf meiner Festplatte zu generieren, so dass ich einen Unterschied beim Abspielen hören kann. Meistens durchlaufen die Musikdateien bei mir beim Abspielen noch viele Konversionen (resamplen, Raumkorrektur, und anderes), und in diesem Setup kann ich mir nicht vorstellen, dass hinten noch hörbare Unterschiede rauskommen. Meinen Test habe ich deshalb mit vorgefalteten Dateien gemacht. Diese werden dann beim Abspielen nur noch auf einem Rechner von der Festplatte gelesen und per Ethernet an einen anderen Rechner geschickt, der sie über einen USB-DAC abspielt.
Ich habe also mehrere Stücke, die ich schon seit langem als Teststücke verwende, zuerst vorbehandelt, wie beim normalen Abspielen. Statt Abspielen habe ich das Ergebnis in eine Datei auf meiner Festplatte umgelenkt. Die Signalqualität (im Sinne von störenden Überlagerungen) ist auf dem Rechner, den ich hier verwendet habe, wohl ziemlich gut, und ich sehe nicht, wie ich die künstlich verschlechtern könnte. Was aber bei den so generierten Dateien nicht ganz optimal ist, ist das Timing. Meine Datei ist im 192kHz/32bit Format und wurde bei einer CPU-Taktrate von 1600 MHz geschrieben; das macht im Durchschnitt 4167 Taktzyklen pro Sample. Ich vermute mal, dass in Wirklichkeit die Anzahl der Taktzykeln zwischen den Samples, die zum Schreiben an die Festplatte geschickt wurden, stark variiert hat. Das brachte mich auf die Idee, die Dateien zu "verbessern", indem ich sie mit meinem Programm "bufhrt" kopiere, das Datenblöcke in sehr präzisen Zeitintervallen schreibt (das Linux-Programm ist [url=http://frank_l.bitbucket.org/stereoutils/player.html]hier[/url] erklärt und erhältlich).
Dann der Hörtest: Ich habe mir die beiden Versionen der (bit-identischen) Dateien auf der gleichen Festplatte angehört - und sie klangen unterschiedlich! Im allgemeinen halte ich nicht so viel von ABX-Tests oder Ähnlichem. Aber in diesem Fall wollte ich doch sicher gehen, dass ich mir nichts einbilde. Ich habe daher per Zufallszahlengenerator die Kommandos zum Abspielen der beiden Dateien zwei Skripten A und B zuordnen lassen. Nach einmaligem Aufruf von A und B konnte ich immer sagen, welche Version welche ist (eigentlich wusste ich es sogar schon nach Aufruf von A). Das ganze habe ich mit 5 verschiedenen Stücken wiederholt und konnte es verlässlich reproduzieren. (Bei 4 der Stücke klang übrigens für mich die "verbesserte" Datei auch besser, bei einem war es andersherum.)
(Hinweis für Leute, die so etwas auch probieren wollen: Bei mehrfachem Abspielen der gleichen Dateien von Festplatte, sollte die entsprechende Partition der Festplatte zwischendrin mal aus- und eingehängt werden, damit die Dateien nicht gecached aus dem RAM gelesen werden.)
Damit sind für mich die Berichte über gehörte Unterschiede in den eingangs erwähnten Threads glaubwürdig. Insbesondere, wenn man gerippte Musik ohne viel weitere Behandlung direkt abspielen will, kann es sich lohnen, mit Laufwerk, Stromversorgung, Software usw. zum Rippen zu experimentieren.
(Und man kann von Stücken, die schon auf der Festplatte liegen, unter Umständen "verbesserte" Kopien erzeugen!)
Viele Grüße,
Frank