WAV-Export generiert jedes Mal unterschiedliche Datei

  • Erstmalig Hallo zusammen ... und gleich ein Problem: Ich möchte Kompilations-CDs aus Tracks von meinen CDs erstellen. Das habe ich vor knapp zehn Jahren schon ziemlich ausführlich gemacht, allerdings mit komplett anderer Software (und natürlich Hardware). Dabei war und ist mir wichtig, daß ich alle Bearbeitungsschritte (Schnitt, ggf. Überblenden, später auch Lautstärkeanpassung) exakt reproduzieren kann, wenn ich später doch noch einzelne Änderungen vornehmen sollte, und zwar sowohl in meinen Notizen als auch auf Dateiebene.


    Dabei ist mir folgendes Phänomen aufgefallen: Wenn ich eine gerippte WAV-Datei mit Audacity öffne und - ohne daß ich irgendwelche Bearbeitungen vornehmen würde - als Standard-16bit-WAV wieder exportiere, entsteht eine vom Original komplett unterschiedliche Datei (d.h. erstens, WinDiff meldet einen Unterschied, und bei manueller Inspektion in WinDiff sehe ich nur Unterschiede, zweitens und wichtiger, die "Vergleiche WAV"-Funktion von Exact Audio Copy meldet ausschließlich unterschiedliche Samples). Ich habe in meinen Einstellungen gesucht, ob irgendwelche Änderungen automatisch vorgenommen werden, glaube aber nicht, daß es an den Einstellungen liegt, denn: Wenn ich zwei- oder mehrmals hintereinander in Audacity einen Exportvorgang durchführe, ohne irgendwas zu ändern außer dem Dateinamen der Exportdatei, bekomme ich ebenfalls jedes Mal (nach den genannten Kriterien) unterschiedliche Dateien.
    Dabei ist zu beachten - und diesen Punkt verstehe ich überhaupt nicht -, daß auf der Audio-Ebene (im Unterschied zur Dateiebene) offenbar keine Unterschiede bestehen: Wenn ich eine der Dateien nehme, den Inhalt invertiere und mit dem Inhalt einer anderen Datei zusammenführe, resultiert, soweit ich sehen und hören kann, die erwartete komplette digitale Stille.


    Mir ist bewußt, daß der primäre Einsatzzweck von Audacity nicht im schnöden Editieren von WAVs besteht, finde dieses Verhalten aber trotzdem irritierend. Ich kann das Problem mit der aktuellen 1.3 Beta und mit der aktuellen 1.2 von Audacity nachvollziehen. Wenn ich dafür keine Lösung finde, ist Audacity für mich für diesen Zweck unbrauchbar. Ich habe zu Testzwecken nochmal das meiner damaligen Soundkarte beiliegende uralte Creative WaveStudio bemüht, das ich vor zehn Jahren verwendet habe, und das arbeitet tatsächlich konsistent: Datei lesen und wieder exportieren ergibt eine identische Kopie, und beim Export nach dem Kürzen meldet Exact Audio Copy die genauen Unterschiede zwischen den Dateien, während alle anderen Samples gleich bleiben. Allerdings würde ich ungern zu dieser Uraltsoftware zurückgehen ... die Bedienung war eine Qual.


    Gibt es eine Erklärung? Bug oder doch Feature? Oder liegts doch an meinem System? (*)
    Vielen Dank schonmal!


    (*) auch schon wieder betagter AMD Athlon 64 x2 3800+ Dual-Core mit 1,5 GB RAM, Windows XP SP3, Audacity 1.3.12 Beta bzw. 1.2.6, Exact Audio Copy in der aktuellen Version (0.99 prebeta 5).

  • Deine Ausführung ist Teils vom Verständnis schwer nachzuvollziehen. Dennoch gehe ich auf das, was ich glaube, verstanden zu haben ein.


    Zitat von Fischer

    ....entsteht eine vom Original komplett unterschiedliche Datei....


    Dieser Punkt ist nicht ganz verständlich. Das die Ursprungsdatei mit der Exportierten Datei nicht identisch ist, ist verständlich, da Audacity diese Datei Exportiert und nicht einfach nur dröge speichert. Soweit ich das bemerkt habe, scheint sich das auch teils etwas auf die Lautstärke auswirken zu "können". Auch kann ich mir vorstellen, das Nicht-Konforme Eintragungen (wie z.b. Tags) teils nicht mehr enthalten sind (das betrifft z.b. auf eingebetete Bilder usw.). Also hier ist Wave nicht gleich Wave.


    Schreib bitte, falls du was anderes meinentes.


    Zitat von Fischer

    Unterschied zur Dateiebene) offenbar keine Unterschiede bestehen: Wenn ich eine der Dateien nehme, den Inhalt invertiere und mit dem Inhalt einer anderen Datei zusammenführe, resultiert, soweit ich sehen und hören kann, die erwartete komplette digitale Stille...


    Sofern die Dateien jeweils exakt gleich laut sind und zudem auch absolut Parallel laufen, sollte Audacity diese Stille hervorrufen. Ist das nicht so, wirkt das in der tat etwas seltsam.


    Zitat von Fischer

    Mir ist bewußt, daß der primäre Einsatzzweck von Audacity nicht im schnöden Editieren von WAVs besteht,......


    Würde ich nicht sagen. Audacitys Stärken liegen in der Aufnahme und Nachbearbeitung von Soundspuren. Da man meist (wegen des geringen Verlustes) Wave verwendet, ist das Editieren solcher Dateien durchaus einer der Stärken und Ziele. Nicht jeder möchte mit solch einem Programm komplizierte Bearbeitungen vornehmen.


    Zitat von Fischer

    ... Exact Audio Copy die genauen Unterschiede...


    Wie schon oben geschrieben, dürften die Dateien vermutlich eher selten exakt gleich sein. Allerdings dürfte eine inhaltliche Veränderungen der reinen Spur nicht davon betroffen sein, da es ja eine Abfolge von Frequenzdurchläufen sind, die auch so in der einen und in der anderen Spur zu finden sein sollte.

  • Danke für die Antwort. Ich versuchs nochmal zu erklären, runtergebrochen auf das Kernproblem.


    Ich öffne eine von CD gerippte WAV-Datei in Audacity. Dann klicke ich auf "Datei exportieren". Ich vergebe den Dateinamen "aud1", als Dateityp wähle ich "WAV (Microsoft) 16-bit PCM" (das Format, wo man im Speichern-Dialog von Audacity keine Optionen einstellen kann, weil es keine Optionen gibt). Ich klicke auf "Speichern". Im folgenden Metadaten-Dialog gebe ich nichts ein. Es entsteht eine Datei "aud1.wav". Dann klicke ich unmittelbar im Anschluß ein zweites Mal auf "Datei exportieren", vergebe den Dateinamen "aud2" und lasse den Dateityp unverändert. Wieder gebe ich keine Metadaten ein. Es entsteht eine Datei "aud2.wav". Beide Dateien sind aufs Byte genau gleich groß.


    Was ich erwarten würde, ist: Die Dateien aud1.wav und aud2.wav sind Byte für Byte identisch (ggf. mit Ausnahme eines kleinen Abschnitts in dem Fall, daß das Erstellungsdatum o.ä. als Meta-Information in die Datei selbst geschrieben wird; Microsoft Office z.B. macht so etwas, denke ich).


    Was tatsächlich passiert, ist: Die Dateien sind in weiten Bereichen unterschiedlich. Damit meine ich:


    1. Benutze ich ein Tool zum byteweisen Vergleich zweier Dateien, bekomme ich einen Haufen von Unterschieden angezeigt. Oben hatte ich von WinDiff als diesem Tool gesprochen. Um es noch klarer zu machen, hier ein kleiner Auszug aus dem Ergebnis von BinDiff (aus den Windows Server 2003 Support Tools. WinDiff ist vor allem geeignet für den Vergleich von Textdateien, BinDiff ist für Binärdateien wie WAVs.)


    [Blockierte Grafik: http://img209.imageshack.us/img209/2474/bindiff.gif]


    Links ist der Inhalt von aud1.wav Byte für Byte abgebildet, rechts der von aud2.wav. Bytes, die zwischen den Dateien differieren, sind in spitzen Klammern dargestellt. Man sieht: Die ersten 44 Bytes sind identisch. Das ist der Header. Danach beginnt der Teil mit den eigentlichen Audioinformationen. Hier gibt es ein Muster, bei dem (mit wenigen Ausnahmen) jedes zweite Byte zwischen den Dateien unterschiedlich ist. Beispiel: Das fünfundvierzigste Byte in aud1.wav hat den Wert CA (hexadezimal, ist dezimal 202). Das fünfundvierzigste Byte in aud2.wav hat aber den Wert C9 (dezimal 201). Das sechsundvierzigste Byte beider Dateien ist wieder identisch (02).


    Wie gesagt, wir sind hier schon im Teil mit den Audioinformationen. Das fünfundvierzigste und sechsundvierzigste Byte beschreiben das allererste Audiosample, niederwertiges Byte voran. Da wir eine Abtastrate von 16 Bit haben, wird jedes einzelne Bit dieser zwei Bytes genutzt. In aud1.wav hat das erste Sample eine Amplitude von 2x256+202=714. In aud2.wav hat das erste Sample nur eine Amplitude von 2x256+201=713. Und so geht das die ganze Datei über weiter, wobei die Unterschiede variabel sind. Eben hatten wir nur einen Amplitudenunterschied von 1, aber ich sehe bei oberflächlicher Betrachtung auch Unterschiede von 4 (hexadezimal 25 versus 21). Wie groß der maximale Unterschied ist, weiß ich nicht.


    2. Daß tatsächlich Unterschiede zwischen den Audioinformationen beider Dateien bestehen, bestätigt mir auch die "Vergleiche WAV"-Funktion von Exact Audio Copy:


    [Blockierte Grafik: http://img89.imageshack.us/img89/6880/eac.gif]


    Über die gesamte Dateilänge hinweg unterscheiden sich die Audiosamples zwischen den beiden Dateien.


    Es handelt sich also nicht nur um ein kosmetisches Problem. Zwar sind die Unterschiede minimal und vermutlich auch vom geschultesten Ohr nicht hörbar, aber: Audacity schreibt bei jedem Exportvorgang unterschiedliche Audioinformationen. Das wäre so, als ob ein Textverarbeitungsprogramm jedes Mal, wenn ich einen Text abspeichere, willkürlich einzelne Buchstaben ändert. Ich kann mir nicht vorstellen, daß das gewollt ist.



    Zitat von Ingmar

    Das die Ursprungsdatei mit der Exportierten Datei nicht identisch ist, ist verständlich, da Audacity diese Datei Exportiert und nicht einfach nur dröge speichert. Soweit ich das bemerkt habe, scheint sich das auch teils etwas auf die Lautstärke auswirken zu "können".


    Unabhängig davon, daß ich es irritierend fände, wenn Audacity eigenmächtig die Lautstärke so stark "anpaßt", daß man es sogar hören kann (wenn ich dich da richtig verstanden habe), sollte man doch erwarten, daß der Exportvorgang jedes Mal exakt gleich arbeitet, wenn ich ihn durchführe. Das ist aber, wie beschrieben, nicht der Fall. Dabei spielt es übrigens keine Rolle, ob das Quellmaterial eine frisch gerippte WAV ist oder eine bereits von Audacity bearbeitete WAV. Bei jedem Exportvorgang ändern sich die Audioinformationen.


    Ich muß mich insofern auch korrigieren. Oben hatte ich geschrieben:


    Zitat von Fischer

    Dabei ist zu beachten (...), daß auf der Audio-Ebene (im Unterschied zur Dateiebene) offenbar keine Unterschiede bestehen: Wenn ich eine der Dateien nehme, den Inhalt invertiere und mit dem Inhalt einer anderen Datei zusammenführe, resultiert, soweit ich sehen und hören kann, die erwartete komplette digitale Stille.


    Richtig ist: Wenn ich beide Dateien aud1.wav und aud2.wav in Audacity als zwei Spuren einlese, dann die eine Spur invertiere und schließlich die beiden Spuren zusammenführe, höre ich nichts und sehe nur einen geraden Strich bei der Nullinie. Trotzdem bestehen aber offensichtlich Unterschiede zwischen den Audioinformationen beider Dateien, ich kann die Abweichung von der digitalen Stille nur nicht hören (weil die Unterschiede zu minimal für das Gehör sind) und nicht sehen (weil die Unterschiede kleiner sind als die Auflösung des "geraden Strichs").


    Zitat von Ingmar

    Allerdings dürfte eine inhaltliche Veränderungen der reinen Spur nicht davon betroffen sein, da es ja eine Abfolge von Frequenzdurchläufen sind, die auch so in der einen und in der anderen Spur zu finden sein sollte.


    Eben nicht. Das ist das Problem. Dem "Normalnutzer" dürfte das schnuppe sein, weil die Unterschiede minimal sind. Mir nicht, weil ich möchte, daß die Audioinformation exakt reproduziert wird und außerdem darauf angewiesen bin, daß ich jederzeit bei einem Dateivergleich sehen kann, was ich verändert habe.

  • Kleiner Nachtrag:


    1. "Abtastrate von 16 Bit" ist natürlich Quatsch. Es muß "Auflösung" heißen (die Abtastrate=Samplingfrequenz ist 44,1 kHz).
    2. Mir würde es schon weiterhelfen, wenn jemand schauen könnte, ob das beschriebene Phänomen bei ihm/ihr auch auftritt.

  • Zitat

    Wenn ich zwei- oder mehrmals hintereinander in Audacity einen Exportvorgang durchführe, ohne irgendwas zu ändern außer dem Dateinamen der Exportdatei, bekomme ich ebenfalls jedes Mal (nach den genannten Kriterien) unterschiedliche Dateien.


    Frage: ist "Dithering" eingeschaltet? (Audacity > Bearbeiten > Einstellungen > Qualität ...) Dithering verursacht Rauschen, und Rauschen verursacht unterschiedliche Ausgabedateien.


    Siehe auch folgende Diskussion: Samples 16 Bit, Export 16 Bit, trotzdem Dithering?

  • Exakt das war's! Dithering war an. Ich muß das morgen nochmal gründlicher testen, aber es sieht so aus, als liefe jetzt alles konsistent: beim testhalber reinen Importieren/Exportieren und auch beim Kürzen von Abschnitten. Wenn's dabei bleibt, hast du mich gerade eben sehr glücklich gemacht. Vielen Dank!