keeping output files' tags in sync

My personal tagging standards and procedure documentation is still evolving, and MP3Tag is a tremendous tool for helping me go back to the already-tagged subset of my collection and retroactively keeping it in sync with my current specs.

However I find it hard to believe I'm supposed to have to do this at least twice - once for my FLAC "master source" file and again for the generated lossy ones (usually MP3).

Is there a way to allow me to just update my FLAC masters and automate the updating of the subsidiary files? Ideally this should be done within the MP3Tag ecosystem rather than through a completely separate third-party "catalog manager" type tool so as to take advantage of the automagical field mapping feature.

I don't mind if this isn't 100% automated, not looking for a cron-type "watch folder tree" functionality, incremental improvements to the workflow would be most welcome.

As a related question, I seem to recall one of the "catalog manager" apps recently announcing that they now recognized their database objects (albums and tracks) on an ongoing basis via the tags rather than file-system specific kruft, but can't recall and haven't been able to identify which one via google - this ring a bell with any of the gurus here?

You do all the other things twice so why not the tagging?
How should any program be able to GUESS which files are related if they differ in format and contents?
The moment you modify one field you cut the connection between these files - unless you provide a unique identifier.

You do know that you can copy and paste tags between files if they match in fields, number and sequence?
So, a semi-bulk processing could look like this that you load both, the parent and child files, select all the parent files, copy the tags, select all the child files and paste the tags.

The way I generate my Mp3 mirror library is through a script. Tagging of the Mp3 library isn't at all like that of the FLAC library, because the playback applications differ significantly in their tag handling. My FLAC library is played through Squeezebox Server, which supports multiple values in fields, such as multiple artists and genres, and also supports sort fields such as ARTISTSORT. My Mp3 library is played on portable players with Rockbox, which doesn't recognize either multiple field values or sort fields. It's also best on most portable software to eliminate unused fields, as it speeds up file indexing for the database. So the transcoding script takes this all into account and generates fields accordingly, by combining multiple values and by throwing away many unneeded fields like comments and sorting fields.

I periodically run the transcoding/mirroring script, which adds new files, removes deleted files and updates changed files. The mirrored files are given the same timestamp as the originals, so that when the modified time changes, the file is re-transcoded and the tags are transferred according to the rules. This picks up any changes to the file, whether it's due to a tagging change or a completely new rip of the CD.

Robin Bowes' perl script for transcoding FLAC to Mp3 is capable of doing a tag transfer/update without re-transcoding the file.

This isn't something I'd use Mp3tag for. Field mapping alone couldn't be used to combine multiple value fields or to remove unnecessary fields. Even if a dumb 1:1 transfer of tags was acceptable, it sounds like it would require a fair amount of manual fiddling in Mp3tag. I want the maintenance of the Mp3 mirror library to be infinitely more automated than that.

Not sure what you're referring to?

In my case it could be done by the fact that the folder trees are identical other than the [FLAC] vs [MP3] nodes.

Or preferably just like the ReplayGain tagging tools can be told how to recognize which files belong to the same album independent of folders, e.g. %AlbumArtist%-%RELEASETIME%-%Album%

(Note I use TDRL for the album-level year, while the more usual %YEAR% value is a per-track recording date.)

Yes, I'd read that, thanks, and of course that is helpful, I'm just wary of user errors when dealing with hundreds of albums.

The way I generate my Mp3 mirror library is through a script.

May I ask what language/library you use? I've wanted a real-life project to start to learn programming. . .

Tagging of the Mp3 library isn't at all like that of the FLAC library, because the playback applications differ significantly in their tag handling. My FLAC library is played through Squeezebox Server, which supports multiple values in fields, such as multiple artists and genres, and also supports sort fields such as ARTISTSORT. My Mp3 library is played on portable players with Rockbox, which doesn't recognize either multiple field values or sort fields.

My plan is to have "canonical" MP3 files, and then have canned sets of Actions in MP3Tag modify copied sets to handle lo-fi player quirks, copying from my custom "singleArtist" and "singleGenre" fields, from the sort fields to the main ones, and now that you mention it, deleting the unused fields is a good idea.

Robin Bowes' perl script for transcoding FLAC to Mp3 is capable of doing a tag transfer/update without re-transcoding the file.

Thanks for the link, I'll check it out. It hasn't been maintained for three years though. . .

I want the maintenance of the Mp3 mirror library to be infinitely more automated than that.

I guess that's yet another pipe dream without the programming chops to do it yourself as you have.

Greatly appreciate your detailed and considered response.

VBScript, although I'm not sure I'd recommend it for learning programming. If you want to learn a scripting language, something like Python might be a better bet.

The script is essentially an intelligent wrapper for a number of command-line tools. It uses

flac.exe - decode FLAC files to WAV
metaflac.exe - read tagging from FLAC files
lame.exe - encode WAV to Mp3 and transfer tagging
lametag.exe - read LAME tags
metamp3.exe - add additional ID3 fields after encoding
touch.exe - copy timestamps

Robin Bowes' Perl script, by contrast, uses calls to FLAC and Mp3 libraries to do the decoding, encoding and tag transfer.

Apparently here's a somewhat updated version that does album art and copies over the other non-media files as well.