WAV-Exportfunktion in 1.3.6 Rauscht

  • Hallo,
    ich habe heute (vermutlich) einen nervigen Bug in Audacity 1.3.6 (Windows XP, 32 Bit) gefunden. So ist er zu reproduzieren:
    Einstellungen (vermutlich nicht so wichtig):
    Samplerate: 44,1 kHz
    Sampleformat: 16 Bit (oder 32 float, ist egal)


    1. Neue Monospur anlegen
    2. Stille erzeugen (z. B. 4410 samples = 0,1 Sekunden)
    3. Als WAV exportieren ODER Auswahl als WAV exportieren (egal)


    So, nun mal mit einem Hex-Editor in die Datei schauen. Entgegen meinen Erwartungen ist diese NICHT mit Nullsamples gefüllt. Es kommt noch schlimmer: Speichert man zweimal direkt hintereinander in zwei unterschiedliche Dateien, so sind diesen NICHT identisch.


    Was ist da los?


    Chris

  • Das Ganze nennt man Dithering und dient bei richtigen Dateien (nicht bei Stille) dazu, das Quantisierungsrauschen (das beim Mixdown immer auftritt) gleichmäßig im Frequenzspektrum zu verteilen. Wenn Du das nicht möchtest, geh in die Audacity-Einstellungen und stelle unter Qualität kein Dithering ein.

  • Ok, danke für die Erklärung. Klappt wunderbar, ich hatte die Option auch schon gefunden, war aber nicht davon ausgegangen, dass sie in meinem Fall wichtig ist denn:


    Wenn ich eine Spur im 44100 Hz 16 Bit - Format als WAV im 44100 Hz 16 Bit Format exportiere, dann erkenne ich darin keine Umwandlung (Was aber die Überschirft des entsprechenden Menüpunktes ist).


    Ich hab mal etwas zum Dithering gelesen (vorher noch nie gehört):


    http://www.hifi-writer.com/he/dvdaudio/dither.htm


    Soweit ich das verstanden habe, ist Dithering nur sinnvoll, wenn von einer hohen Auflösung zu einer niedrigeren konvertiert wird, also von 32 Bit zu 24 Bit, oder von 24 Bit zu 16 Bit usw..


    Ich bin also immernoch der Meinung, dass dies ein Bug ist. Wenn die Auflösung gleich bleibt, sollte kein Dithering vorgenommen werden. Oder gibt es noch weitere Gründe für das Dithering?


    Chris

  • Audacity 1.3.6-beta unter Win XP Pro: Wenn ich unter "Bearbeiten > Preferences > Qualität > Umwandlung > Art des Ditering" auf "Kein Dithering" stelle werden Dateien mit Null-Samples exportiert. Nur wenn dort das Dithering eingeschaltet ist, entsteht dieses 1-Bit Rauschen.


    Dithering macht beim Exportieren einer 44100Hz/16bit Tonspur in eine 44100Hz/16bit WAV Datei natürlich keinen Sinn, aber so ist das halt nunmal bei freier Software, du musst es halt selbst ein- oder ausschalten...

  • So ist das halt nunmal bei freier Software?


    Sehe ich anders.


    Klar kann ich das von Hand umschalten, aber es kann doch nicht so schwierig sein, da ein paar Zeilen Code mit 'ner Abfrage einzufügen, so dass das Dithering nur dann eingesetzt wird, wenn es auch sinnvoll ist. So wie es im Moment standardmäßig eingestellt ist, verschlechtert es das Audiomaterial unnötig und den Bug kann man ja wohl in der nächsten Version fixen.


    Ich frage hier nicht nur nach, damit ich das Problem umgehen kann, sondern auch in der Hoffnung, dass jemand, der evlt. direkt in die Entwicklung involviert ist, einen Bug report postet, sofern es denn als solcher gilt.


    Chris

  • Den Bug kannst Du auch sofort fixen, wenn Du dir den Source Code runterlädtst und es selber tust. Das ist eigentlich der Sinn von freier Software.


    Falls es dich beruhigt: ich weiss, dass zumindest einer der Audacity Entwickler dieses Forum liest, vielleicht kann der noch was dazu sagen.


    Einen Bug Report kannst Du posten unter: https://lists.sourceforge.net/lists/listinfo/audacity-bugs


    Du kannst die Audacity Entwickler direkt über die 'audacity devel' Mailing-Liste erreichen, anmelden kannst Du dich hier: https://lists.sourceforge.net/lists/listinfo/audacity-devel

  • Zitat von edgar-rft


    Den Bug kannst Du auch sofort fixen, wenn Du dir den Source Code runterlädtst und es selber tust. Das ist eigentlich der Sinn von freier Software.


    <Ironie>
    Klar, weil ich ja auch sofort Schreibrechte für das Repository bekomme. Ansonsten kann ja jeder Enduser den Bug einzeln fixen.
    Außerdem kenne ich mich im Sourcode von Audacity Prima aus, deswegen ist das in 30 Min gemacht. Übrigens kann jeder User von freier Software perfekt C, C++, Java, etc. programmieren, sonst würde er die Software ja nicht benutzen.
    </Ironie>


    Mal im Ernst: Ich habe den Eindruck, dass Du mich für zu Faul hältst es selbst zu fixen. Dies ist aber nicht der Fall, ich stecke bloß nicht in dem Projekt drin. Jemand, der weiß wo zu arbeiten ist, macht das evtl. in 15 Minuten, ich brauche dafür Tage, daher wäre es extrem ineffeizient, wenn ich jetzt anfange da am Sourcecode 'rumzupfuschen.


    Zitat von edgar-rft


    Einen Bug Report kannst Du posten unter: http://sourceforge.net/mailarc…?forum_name=audacity-bugs


    Nein, kann ich nicht, denn das ist ein read-only Mail-Archiv. Wenn hier jemand evtl. bei der Bug Mailingliste angemeldet ist, möge er den Bug bitte posten. Ich habe ihn zumindest gefunden und im Forum darüber berichtet. Wenn das nicht reicht, wird er eben nicht behoben.


    Du kannst nicht von jedem Endbenutzer erwarten, dass er sich mit CVS/SVN, C/C++ Programmierung, Sourceforge und Mailinglisten auseinandersetzt, nur um einen mickrigen Bug zu beheben, den jemand anderes mit den von mir gelieferten Infos in 15 Minuten fixen könnte.


    Zitat von edgar-rft


    Falls es dich beruhigt: ich weiss, dass zumindest einer der Audacity Entwickler dieses Forum liest, vielleicht kann der noch was dazu sagen.


    Jo, das wäre nicht schlecht ...


    Chris

  • Zitat

    Klar, weil ich ja auch sofort Schreibrechte für das Repository bekomme.


    Keine Ironie: Du brauchst dazu keine Schreibrechte. Runterladen kann den Code JEDE(R) auch ohne Rechte.


    Zitat

    Ansonsten kann ja jeder Enduser den Bug einzeln fixen.


    Keine Ironie: JEDER User kann den Bug (theoretisch) sofort fixen.


    Zitat

    Du kannst nicht von jedem Endbenutzer erwarten, dass er sich mit CVS/SVN, C/C++ Programmierung, Sourceforge und Mailinglisten auseinandersetzt, nur um einen mickrigen Bug zu beheben, den jemand anderes mit den von mir gelieferten Infos in 15 Minuten fixen könnte.


    Es gibt keinen "Endbenutzer", da es sich nicht um ein "Produkt" im kommerziellen Sinne handelt, sondern um ein Projekt, bei dem es darum geht, eine Programmiersprache (im Fall von Audacity C++) zu lernen, und ob dabei ein für irgendeinen Zweck auch nur irgendwie brauchbares Programm herauskommt oder auch nicht, ist reiner Zufall. Das steht auch ausführlich in der GPL (GNU Public License) beschrieben, die Du beim ersten Starten von Audacity akzeptiert hast, weil sonst hättest Du das Programm gar nicht starten können.

  • Zitat von kobelix:1232798718


    Wenn ich eine Spur im 44100 Hz 16 Bit - Format als WAV im 44100 Hz 16 Bit Format exportiere, dann erkenne ich darin keine Umwandlung (Was aber die Überschirft des entsprechenden Menüpunktes ist).


    Es ist richtig, dass in diesem Fall Dithering nicht notwendig wäre. Da aber Audacity momentan beim Export stets einen Mixdown aller Spuren macht und dabei immer eine Wandlung in das 32-bit-float-Format und zurück stattfindet, wird auch in diesem speziellen Fall Dithering angewandt. Wie gesagt, lässt sich das aber einfach beheben, indem man Dithering einfach global ausschaltet.


    Das Ganze ist insofern eher ein Randproblem, als Audacity standardmäßig mit 32-bit-float-Spuren arbeitet und das auch Sinn macht, wenn man Nachbearbeitungen vornimmt. Außerdem gibt es einen einfachen Workaround, also wäre der Fix eher "kosmetisch". Trotzdem könnte man natürlich das derzeitige Verhalten als "Bug" bezeichnen. Leider habe ich derzeit keine Zeit, das Problem zu beheben, Du kannst aber gerne auf der Mailingliste "audacity-devel" (siehe Audacity-Homepage) das Problem melden, dann wird sich sicher jemand darum kümmern oder das Problem wird zumindest in die Liste aufgenommen.

  • Zitat von Markus


    Da aber Audacity momentan beim Export stets einen Mixdown aller Spuren macht und dabei immer eine Wandlung in das 32-bit-float-Format und zurück stattfindet, wird auch in diesem speziellen Fall Dithering angewandt.


    Ok, darüber hatte ich noch gar nicht nachgedacht ... ist der 32-Bit Zwischenschritt beim Mixdown überhaupt sinnvoll, wenn nur 16-Bit Spuren vorhanden sind? Ich vermute eher nicht, daher beschränkt sich der Bug vielleicht doch nicht auf nur diesen einen Spezialfall.


    Na gut, ich werd das evtl. posten, vermutlich aber eher nicht. Hatte mich erst nur gewundert, was da los ist.


    Danke für die Infos,


    Chris

  • Zitat von kobelix


    ist der 32-Bit Zwischenschritt beim Mixdown überhaupt sinnvoll, wenn nur 16-Bit Spuren vorhanden sind? Ich vermute eher nicht, daher beschränkt sich der Bug vielleicht doch nicht auf nur diesen einen Spezialfall.


    Kommt drauf an. Es ist dann z.B. sinnvoll, wenn man Verstärkungsfaktoren in Spuren eingestellt hat. Perspektivisch gesehen wäre es dann sinnvoll, wenn man Echtzeit-Effekte zu den Spuren hinzugefügt hat (die es derzeit aber noch nicht gibt).