Zeugma440 / atldotnet

Fully managed, portable and easy-to-use C# library to read and edit audio data and metadata (tags) from various audio formats, playlists and CUE sheets
MIT License
459 stars 61 forks source link

Feature Request: Add ability to read and write custom APE tags to normal Windows PCM Wave files #204

Closed vrdriver closed 1 year ago

vrdriver commented 1 year ago

Feature Request:

Hi Team. I'm looking for a way to read and write custom APE tags to normal Windows PCM Wave files.

I've tried just about everything out there that I can find for my Windows c#.net project and I'm finally at a defeat. The last time I tried this was about 2 years ago, and nothing has moved on in the work of NAudio or TagLibSharp.

I notice that you guys haven't got the R/W of these kids of tags either.

I've found a CLI tool called 'tag 2.0.52' which will easily tag mp3 files, but not wave files, of which it's not maintained any more either.

I'd even tried asking about this a little bit on the NAudio project, but it's still open.

Thanks in advance. -Steve

Zeugma440 commented 1 year ago

Heya,

Let me rephrase what I understood of your needs : even though they are not part of its standard, you'd like specifically to create APE fields inside a WAV file. Is that correct ?

If so, could you please explain why do you want to do that ?

Last but not least, do you have a specification on how you'd envision things, or a sample file of how it would look like ?

Thanks~

vrdriver commented 1 year ago

Hi,

Thanks for getting back to me so quickly. I wasn't aware that it was a non-standard tag which explains why I'm having such difficulty trying to find a solution.

For context as to why I'm asking about this ~ I use the radio software StationPlaylist which stores it's required metadata in the files that it plays out. It does it with all the major audio files, MP3, WAV, VOB, FLAC etc., but the metadata it stores are radio specifics, such as the cue markers of the intros and outros and other bits of radio related content specific to that software.

The radio software is written in Delphi, and so I assume it's *could be using something similar to this library, but that's only speculation at this stage, which could be how it's supporting so many file formats using these APE tags regardless of the file standards.

I have attached 4 files - 2 raw, and 2 edits in mp3 and windows pcm wave. These files are straight out of Audition3 with the pink noise generator and saved as is. Those files listed with 'ape tags' have been run through the StationPlaylist metadata (Track Tool) tool which has appended it's APE tags to both files - mp3 and wave. raw_pink_noise.zip This should give you a good idea of what it's doing.

Ultimately, I'd like to be able to CRUD these tags for my own little tool to edit these tags and make updating everything easier, instead of only just supporting MP3 files.

Some of the tag content is written in plain ASCII characters, but others contain only HEX values which it uses for compressed dates and other historical now playing information.

Hopefully I haven't given too much detail or enough, but ultimately, yes, while WAV files have a lot of standardised metadata tag formats available, APE is the need and what the software has been built around, of which I need to support.

Is this a trivial thing to add? Have I mis-diagnosed the wave files as using APE tags?

I'm about to import audio from Zetta to SPL, but converting the metadata between the two is proving to be a bit more complex than first thought.

Thanks, Steve

Zeugma440 commented 1 year ago

Alright, thanks for developing your case and for the samples! I'll get back to you once I've analyzed them.

Zeugma440 commented 1 year ago

Just gave a look to "raw_pink_noise_ape_tags.wav" - the vast majority of metadata isn't stored in the APE structure, but in the DISP chunk, which is already supported by ATL.

The APE structure is very short - I'll have to dig a little more to see what it contains, but it looks like there's maybe 3 numeric fields, and definitely no custom ones.

Did you try reading these tagged files with the library ? I suggest you examine the Track.AdditionalFields property and see if you have everything you need in there.

Please report any missing field or value from the files you just sent.

vrdriver commented 1 year ago

Apologies for the the delay. I only just saw your message, and thanks for having a look. I'll dive in to this properly in the coming days.

Zeugma440 commented 1 year ago

Hi @vrdriver. Is there anything more I can do to help you, or can we close this?

Zeugma440 commented 1 year ago

No feedback from the OP for more than one month => issue closed

Please reopen it if there's a remaining problem to solve.