Import von 24-Bit-Dateien

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • 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.
      Markus -- Audacity Lead Developer / Administrator Audacity Forum
      [url=http://www.privatmusikverein.de/]Privatmusikverein Nürnberg e.V. - Veranstalter für Kammermusik-Konzerte in Nürnberg[/url]
    • 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.
      Markus -- Audacity Lead Developer / Administrator Audacity Forum
      [url=http://www.privatmusikverein.de/]Privatmusikverein Nürnberg e.V. - Veranstalter für Kammermusik-Konzerte in Nürnberg[/url]
    • Meine Kritik nehme ich teilweise zurück: Die Bitraten-Angabe im Format Chunk wird doch richtig eingetragen. Ich hatte die Aufnahme versehentlich als 16-Bit-Datei exportiert.

      Die Datei habe ich hier nicht hineingekriegt, aber hier kannst Du sie abholen:

      http://monoped.de/arec.wav
    • monoped wrote:


      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.
    • Wie gesagt, ich werde mir das bei Gelegenheit mal anschauen, kann aber ein paar Tage dauern, bis ich die Zeit dazu finde.
      Markus -- Audacity Lead Developer / Administrator Audacity Forum
      [url=http://www.privatmusikverein.de/]Privatmusikverein Nürnberg e.V. - Veranstalter für Kammermusik-Konzerte in Nürnberg[/url]
    • 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:

      Source Code

      1. Ok, I've had a look. Its not exactly the same problem I suspected,
      2. but a related problem. It ll comes down to microsoft's ambiguous
      3. definition of the file format. The file header shows this:
      4. fmt : 16
      5. Format : 0x1 => WAVE_FORMAT_PCM
      6. Channels : 2
      7. Sample Rate : 44100
      8. Block Align : 8
      9. Bit Width : 24
      10. Bytes/sec : 352800
      11. and the hex dump of small part of the file's data section shows this:
      12. 00000630: 00 2A FC FF 00 C1 09 00 00 5A FA FF 00 E0 0A 00
      13. 00000640: 00 A0 F8 FF 00 CE 0B 00 00 5F F7 FF 00 D2 0B 00
      14. 00000650: 00 D0 F6 FF 00 99 0B 00 00 54 F6 FF 00 90 0A 00
      15. 00000660: 00 DF F6 FF 00 5D 09 00 00 B3 F7 FF 00 90 07 00
      16. As you can see, the data has a repeating patterm every four bytes. That
      17. means that the "Block Align" field above is right. The problem is that
      18. microsoft didn't fully specify what to do when the data size (in this
      19. case 32) is bigger then tha number of valid bits (in this case 24).
      Display All
      Markus -- Audacity Lead Developer / Administrator Audacity Forum
      [url=http://www.privatmusikverein.de/]Privatmusikverein Nürnberg e.V. - Veranstalter für Kammermusik-Konzerte in Nürnberg[/url]
    • 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...
      Markus -- Audacity Lead Developer / Administrator Audacity Forum
      [url=http://www.privatmusikverein.de/]Privatmusikverein Nürnberg e.V. - Veranstalter für Kammermusik-Konzerte in Nürnberg[/url]