GithubHelp home page GithubHelp logo

WAV File Chunk Handling ?PMX about taglib-sharp HOT 8 OPEN

mono avatar mono commented on September 5, 2024
WAV File Chunk Handling ?PMX

from taglib-sharp.

Comments (8)

Starwer avatar Starwer commented on September 5, 2024 1

@jamsoft : Interesting study, although a bit old (2011). I hope the picture is better nowadays...
But still the support of metadata in the different software is not at the stage I would like it to be. My impression is that now ID3 as a proper support everywhere, but everything else has more uneven support.

The solution, I think, is a library like TagLib#. If the importance of this library becomes big enough, then more and more software will use it and then share the exact same compliance and support of Metadata. And developers will more and more extend this library instead of supporting there own implementation of metadata. At least, this vision motivates me in contributing on this project.

from taglib-sharp.

mskurnik avatar mskurnik commented on September 5, 2024 1

This is actually very easy to fix. I describe how to fix it in issue #101 by adding a single line of code in the TagLib.Riff.Read method. Again, sorry for not seeing this before I posted my issue or I would have replied to this instead of creating a new issue.

from taglib-sharp.

forReason avatar forReason commented on September 5, 2024 1

funnie, had the same issue with my very own decoder. thumbs up great solution

from taglib-sharp.

jamsoft avatar jamsoft commented on September 5, 2024

I've nailed down the issue. RIFF chunks should always be an even number of bytes.

This _XMP chunk is not an even number of bytes so a null/0 byte is appended after the chunk data. This byte is not included in the chunk data size but this ensures that the next chunk in the file starts on a word boundary.

from taglib-sharp.

jamsoft avatar jamsoft commented on September 5, 2024

To be honest the state of Metadata management has not improved in the pro audio field. I used to own a recording studio and have a lot of contacts in the industry.

The big boys mentioned in that study have a vested interest in their own monopoly.

Take the iXML chunk I'm looking at ... the standards site that controls that chunk is a mess. There are multiple versions of the standard and the differences are either not detailed on the site at all or are buried in tiny text with a little note saying something like "dont use this!!!!" ... nice ...

Then even more incredibly, some applications will take the contents of the iXML chunk and encrypt it. Yes, you did read that right. They encrypt it and then you're locked into them for reading / writing. Nowhere does the spec make the provision for this. The issue here is that the iXML spec is actually used in a lot of hardware field recorders meaning if they find a chunk like that they are going to attempt to read it and in some cases I've heard of them failing to read it, regarding that encrypted chunk "corrupt" and writing a new one.

I've been using tagging tools to inspect before and after files that taglib# is producing. BWF MetaEdit, Binary readers and Metadata Touch. BWF Meta Edit is great. Metadata Touch however ... sheesh ... thats killed more files than I care to mention. They're charing $60 for a tagging app that breaks files.

So, no ... the state has not improved! Bahhhhhh!

To be fair, the standard maintainers could do a better job to help. The iXML site is particularly bad. The only example file on the site is an invalid wav (padding issues) and the example XML is v1.52 despite the spec now being at 2.01. There are mentions of v1.27, 1.62 and literally no clue as to what those files looked like. It is literally a guessing game. You can imagine the mess of validating the reading and writing of this. All bets are off.

The aXML chunk is is easy, the spec just says any valid XML and the XMP chunk is the same spec in wav files as it is in image files, just with a _PMX chunk identifier.

I've enhanced the WAV file authoring with full padding validation and so far it's all ripping through files on my machine. I'm about to integrate it into an app that is processing around 100,000 audio files on my machine so we'll see how it fairs.

from taglib-sharp.

Starwer avatar Starwer commented on September 5, 2024

Pity that you closed this issue... I would have like to know the outcome of this ripping...
Reading between the line, I guess you dropped TagLib# for BWF Meta Edit ?

from taglib-sharp.

decriptor avatar decriptor commented on September 5, 2024

I'll reopen it, but you guy can close it again if you want.

from taglib-sharp.

jamsoft avatar jamsoft commented on September 5, 2024

No I'm still working on it. It's quite the headache! BWF Meta Edit is an app so I cannot use it in the context I need too, even if I wanted to.

from taglib-sharp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.