Import von 24-Bit-Dateien

  • Hallo,


    ich habe gerade mal versucht, eine mit arecord gemachte 24-Bit-Aufnahme in Audacity 1.3.2 zu importieren. Das Ergebnis ist unerfreulich: Es knarzt und kratzt und klingt völlig verzerrt, der Amplitudenverlauf sieht aus wie eine pickelige Gerade, obwohl die Aufnahme bestimmt zu 75% ausgesteuert ist. Die Datei ist an sich in Ordnung, denn mit aplay lässt sie sich korrekt wiedergeben.
    Auch mit Audacity selber gemachte 24-Bit-Aufnahmen sind kein Problem. Scheint also irgendeine Format-Unverträglichkeit zu sein. Kann man dagegen etwas tun?


    Gruß, Bernd

  • Es gibt technisch keinen Unterschied zwischen Importieren und Öffnen. Es gab aber in der Vergangenheit (und evtl. jetzt auch noch?) Bugs beim Importieren und Aufnehmen, wenn das Sampleformat von Audacity (also das Format für Audacity's Spuren) auf 24 bit gestellt war. Das Sampleformat auf 32bit float zu stellen, hat die Probleme behoben.

  • Das Sampleformat von Audacity einzustellen hat keine Auswirkungen. Das Problem scheint vielmehr zu sein, dass Audacity die von arecord im Format S24_LE gemachte Aufnahme als 32-bit float fehlinterpretiert; jedenfalls steht das links neben dem Track.
    Ich habe mir mal mit einem Binäreditor die mit 24 Bit von arecord und Audacity aufgenommenen Dateien angeguckt. Audacity schreibt bei der Aufnahme in den Format Chunk eine falsche Bitrate hinein, nämlich 16 statt 24. Es scheint sich aber beim Einlesen gar nicht um diese Angabe zu kümmern, sondern auf Grund anderer Daten herauszufinden, dass es sich um 24 Bit handelt. Arecord dagegen schreibt die korrekte Bitrate 24 hinein, und Audacity findet dann durch seinen raffinierten Algorithmus heraus, dass es sich um 32 Bit float handelt...

  • Also wenn beim Importieren was falsch läuft, dann liegt das nicht an Audacity, sondern an der von uns verwendeten Bibliothek "libsndfile". Da müsste man mit den libsndfile-Leuten mal checken, was da los ist. Könntest Du mal eine ganz kurze solche von Deinem arecord erzeugt 24-bit-Datei hier ins Forum reinstellen? Dann könnte ich mir das mal anschauen.


    Deine Vermutung, dass Audacity die Daten als 32-bit float interpretiert, ist übrigens falsch. Audacity verwendet für neue und importierte Spuren immer die in den Einstellungen angegebene Bittiefe. Das heißt, auch wenn Du eine 8-bit-Datei importierst, wird Dir Audacity daraus eine 32-bit-float-Spur erzeugen, um Dir beim Bearbeiten die volle Bitbreite zur Verfügung zu stellen.

  • Zitat von monoped


    Es knarzt und kratzt und klingt völlig verzerrt, der Amplitudenverlauf sieht aus wie eine pickelige Gerade, obwohl die Aufnahme bestimmt zu 75% ausgesteuert ist. Die Datei ist an sich in Ordnung, denn mit aplay lässt sie sich korrekt wiedergeben.


    Verhaelt sich bei mir genauso. :( Die pickelige Gerade veraendert sich stark, wenn man reinzoomt.

  • Update: ich habe jetzt mal mit Erik, dem Entwickler von libsndfile diskutiert, und er sagt, dass die Dateien, die arecord schreibt, nicht 100%tig dem Standard entsprechen (bzw. der "Standard" an dieser Stelle nicht 100%tig genau definiert, wie die Datei einzulesen ist). Dass es natürlich geht, wenn man mit arecord aufnimmst und mit aplay wieder abspielst ist klar (beides wurde von den gleichen Entwicklern geschrieben), aber wie es mit anderen Playern ausschaut, ist unklar. Eine (nicht repräsentative) Erhebung auf meinem Rechner hier (Linux+Windows) hat ergeben, dass die Datei auf etwa 50% der Player richtig und auf 50% der Player falsch bzw. garnicht wiedergegeben wird.


    Erik hat gesagt, er schaut sich das nochmal genauer an und sagt mir Bescheid, wenn er noch einen Workaround findet. Evtl. kann man auch mit den ALSA-Leuten reden, dass sie ihren Code entsprechend ändern.


    Zur Info, hier ist die Antwort von Erik:


  • Ja, klar, WAV-Dateien sind auf 2 GB beschränkt. Bei der "Anmerkung 2" in der verlinkten Seite haben sie sich's aber auch ein wenig zu leicht gemacht. Man hätte ja auch zusätzlich noch eines der vielen anderen Standard-Dateiformate wie AIFF oder AU unterstützen können. Bei Verwendung einer Bibliothek wie libsndfile muss man dazu nicht mal groß was programmieren, denn es gibt alles kostenlos und frei als Open Source. Aber das ist heute leider die Einstellung vieler Firmen, wenn der sogenannte "Standard" nicht von Microsoft definiert wurde, wird nicht mal in Erwägung gezogen es zu benutzen...