Feature Request: Tag Write Caching


#1

Greetings,

First of all let me say that I don't know how I can begin to thank you guys for this wonderful free program. There is no other application out there that would allow me to tag and write filenames nearly as fast and as automated as this program. Being able to write scripts that check against invalid charachters as well as check to see if a year exists and what not are simply amazing. Short of sitting down and writing something similar in perl I don't know how I would begin to automate such tasks.

I've managed to tag over 7000 songs in a relatively short period of time. I don't know if I am the typical user, but all of my music is sitting on a linux samba share with multple hardrives. This means that I have been editing thousands of tags over ethernet. Typically I like to get the basics sorted out first. I usually start out with static tags and set the album, year, artist and I make sure the comments are blank because comments are pretty useless to me. Then I get the titles from the file names and I tend to throw all the useless crap in the filename into comments, which now need to be blanked again. If I do a freedb query, a lot of times I have to set the year and get rid of the useless comments. As you can see, every step requires a long slow write to the filesystem. Even with local files this waiting can slow you down.

Here is what I propose. Why not simply cache all of your tags until the user is finally done making changes to them and then execute a write incorporating all of those changes to the files? People would be able to tag their files probably at least 2-3x faster than they would be the way it is now. No more of this "set year".......wait.....check....wait...."set song titles"......wait......check.....wait.....

Sometimes it takes 10-15 minutes of waiting just to get the tags arranged how I would like them to be. Unless someone has a faster way of going about these things I find it kind of annoying the way it is for me. I mean, would it be that hard to code in an array and store all of the tag information there until you write it out? It would seriously make your program a whole lot better. The pieces are all there. Instead of immediately committing the changes to the files, just cache them until the user can say, write out the cache. Just record the tag fields that are to be changed (can't be more than like 5-10 or so) and then commit them to the files in one big swoop. Even the ability to define the tags in a text file (like someone said earlier) would be a good move towards writing the files out just once.

Granted now, I do run this program on a lot of blank oggs that I have converted from FLAC. And these files take a WHOLE lot longer to tag than MP3. I don't know if it is because the tags are all blank when I start or what. The MP3s definately write pretty fast for the most part. I use highbitrates with my oggs, so an album is roughly 150 megs or so. That's a lot of data to parse over ethernet repeatedly and my bandwith from the samba share isn't all that great. (Are network disks ever fast?)

Anyways, I do indeed love your program. I just thought I had to share my only real problem that I've had so far with it.

Thanks again,

Zos


#2

Guess nobody liked my idea. It took a lot of time to think about how mp3tag could be improved too. :stuck_out_tongue:

Oh well. Too bad you guys can't open source mp3tag (yes, I read about someone using some of the code in a commercial product). If you could, I'm sure people (like myself) would be writing patches tommorow. Can I help you guys or something? I have no problems working on closed source code and I'm damned honest too, so you would really never have to worry about me releasing a competing product or something with derivative code. Just an offer. My Deutsche is a bit rough these days though (as in real rough), so I guess communications might be a formidable barrier.


#3

Zos,

the fact that nobody replied to your suggestion doesn't mean that nobody likes your idea :slight_smile:

I do in fact like the idea and I really understand the need for a tag writing queue when tagging on slow network shares. At the moment I'm implementing Unicode support for Mp3tag - that's why I have very little time to work on other new features.

And sorry, I don't plan to involve other developers with Mp3tag's development. Thanks for your kind offer anyway.

Best regards,
~ Florian


#4

Why not simply cache all of your tags until the user is finally done
making changes to them and then execute a write incorporating
all of those changes to the files?

Belatedly, I'd second that. Provided it was optional. An option to suspend changes until Save was clicked.

In fact the UI appears to do this already! Edit a tag (status bar says nothing), see that the Save button is active, click it, and status bar says "Saved tag in 1 of 1 files").

But this impression is false.

Even the ability to define the tags in a text file (like someone said earlier) would
be a good move towards writing the files out just once.

You can. This is the workaround I use. File | Export, edit in editor, Convert | Text file -> tag.

blank oggs that I have converted from FLAC. ... take a WHOLE lot longer
to tag than MP3. I don't know if it is because the tags are all blank when
I start or what.

I'd guess Yes.