metatag public beta

Jeremy's icon

It has come to our attention that jit.qt.movie's id3 tag features rely on Apple technologies which don't work with Unicode strings. As such, id3 tags which use non-English characters are inaccessible via those messages. Which is unfortunate.

At the link which follows is a new object, 'metatag', which is dedicated to the manipulation of metadata in media files via the 'taglib' library (http://developer.kde.org/~wheeler/taglib.html). Currently it supports both ID3v1 and ID3v2 for MP3 files, Ogg Vorbis comments and ID3 tags and Vorbis comments inFLAC, MPC, Speex, WavPack and TrueAudio files.

Help file is included, as are binaries for Mac and Windows, and source code. This object is in beta, but should be stable enough for production use. Thanks for any feedback and testing!

Jeremy

DiGiTaLFX's icon

Perfect! I've been wanting something like this to get access to tags without loading a track into both sfplay and qt.movie at the same time :D

DiGiTaLFX's icon

I'm using this regularly now, and it works really well. I do have a feature request however. Would it be easy to make it more flexible by enabling read/write access to id3v2 frames directly by their name? E.g. By using a message of "getframe TLEN" the length tag would be returned etc. Also then giving the ability to access TXXX frames would allow custom tags to be manipulated in max patches This would really make it a useful object!

Many thanks

DiGiTaLFX

Jeremy's icon

The chances of me implementing this in the near future are slim to none. However, I'll release the object's source code when it goes out of "beta" (I'll try to post it on my share page in the coming days) and someone else is free to take over development. Glad to hear it's working!

DiGiTaLFX's icon

Oooo Ok thanks very much!

Jeremy's icon

Oh hey, look. The source is actually included in the original download. So there's nothing for me to do, I guess. :) Enjoy.

DiGiTaLFX's icon

Haha oh yeh! I cleverly only kept the Mac folder first time round. Got it now though. Cheers.

misal's icon

This is nice!
Would be nice, though, if one could ask for all metatags, as 'description' and so on.

Gmix's icon

Great!!! been looking out for something like this for a while!

What about BPM though? I tried sending a getBPM message to the tags but no luck. Seems like it wouldn't be too difficult to go ahead and include all the fields that are standard with id 3 tags? Or are some fields harder to access than others? I guess I could just use the "comment" field for BPM but that would require a lot of work to copy and paste that over for all my audio files. If it's a simple fix, could someone point out where in the source code I could add that functionality? Thanks a lot!!!

-G

Gmix's icon

Still kind of befuddled that BPM didn't make the cut... what do you all recommend I do, copy over the BPM attribute to some other field like Album, or just insert it in front of all my file names. I kind of like the idea of having that information permanently attached to all my files, without having to worry about installing this external on all computers that run my patches. But for the cleanliness, and look factor, and since most all of my samples are already tagged in iTunes using the BPM field, it would be really nice if this feature could be implemented in the final release...

When is the final release for this object by the way? Looking forward to it... Thanks a lot,
G

michaellcs's icon

This is just perfect for my project except I am wondering is there anyway to extract cover art from the mp3 file by using this?

Your reply is truly appreciated. Thanks a lot.

Alex_k's icon

Any news about this object or meta tag functions in the new Max7?

I'm looking for a way to write meta tag information into AIF and WAV.

Thanks

Alex_k's icon

One interesting thing about this object is that, if I try [metatag] with AIFF files that already contain metadata, it is able to write all the tags.

If I create an AIFF in Max (write from a buffer) and then try to write metadata with [metatag] I get a currupted file. So it seems that the problem is to create a proper AIFF file in Max maybe.

Any idea why this happens?

Does Max create AIFF files in a different way than other software?

Scott's icon

Any chance some one could compile this on Mac/Win for 64-bit architecture? I need to load 24/96 audio files but Max7 in 32-bit mode crashes due to not enough memory. Loading 24/96 files in Max7 64-bit works fine. But alas the metatag external only works in 32-bit mode. It would be much appreciated. Thanks.

Jeremy's icon

Two years too late, seven years after starting this project. Ben Bracken reminded me recently that I did this, I had completely forgotten about it.

Here's a new version, in package format, with prebuilt libraries from the latest taglib/zlib(Win) source (source code is included if you want to go to the trouble of building it yourself with cmake). No new features, but it's now 32/64-bit FAT on OSX, and includes 32-/64-bit binaries on Windows.

So it's now in a good place to be extended by someone. If there's interest, I could do a little more cleanup and put it on Github or something.

http://expr-i0.net/metatag_170715.zip

halftheory's icon

Attached is an updated metatag.mxo external and metatag.cpp source file to support BPM queries on Mac (tested with Max7). (sorry it's not the full package; upload limits here)

Get the value of the TBPM id3 tag with a "getbpm" message.

Note: Unfortunately the TBPM tag will always be an integer (no floating values) in order to be compatible with the id3 spec. Other software might write floating bpm data to other custom tags, such is the case with the encoded TRAKTOR4 tag, which one may or may not be able to read with taglib. So not an ideal solution I'm afraid...

metatag-bpm.zip
application/zip 727.19 KB

Jeremy's icon

@halftheory, thanks for contributing. I've created a Github repository at https://github.com/jeremybernstein/metatag/tree/master for metatag. Would you mind forking, making your changes and submitting a pull request so we can better track these sorts of updates?

The repository makes use of Github's Large File Support: https://git-lfs.github.com to deal with the unsightly precompiled libraries and externals. I've added a release page, as well, so that's the place to get new releases from now on: https://github.com/jeremybernstein/metatag/releases .

rubén's icon

Thanks jeremy, i thought i could never use it again :) and it's a great object

Gmix's icon

Any ideas how to display/re-order/arrange multiple files in a cellblock/iTunes/spreadsheet way inside Max? I would have hoped Max 7's new "file browser" would have supported adding tags to media files by now... in the meantime, still looking for solutions here, ultimately a solution that would let me view all the files on a tablet in Miraweb and press the file on the screen to have it cue up all the necessary metadata.

I'm not quite savvy enough to figure a way to say drag and drop a folder of media files into a "dropfile" and have some kind of [zl] sort magic to automatically parse all that information into a jit.cellblock, but perhaps someone out there has those magic powers?