Guess what? There is indeed a program out there that writes synchronized lyrics using the ID3V2 SYLT frames. It was right under my nose the whole time. Which program, you may ask? Why Windows Media Player 9, of course. I never noticed what features it had because I try not to open it. It's a bigger piece of bloat than WinAmp 3, even.


Either way, it's got an Advanced Tag Editor, which, among other things, lets you add lyrics to a file. It can add unsynchronized lyrics using whatever that unsynchronized lyrics frame is. Plus, it's got a very unintuitive, complicated interface for taking those lyrics and synchronizing them to time points.


It definitely uses the SYLT frame, as I can verify in MP3/Tag Studio. But, it's files don't work in emphatic. And, files I've processed using lrc2sylt don't work in WMP. So, even though they're both using the same frame, someone's not doing it right.


Tony, any chance that lrc2sylt is writing the frame in some broken way that emphatic is also broken to expect? Or does your use of id3lib pretty much preclude that possibility? If so, I guess it comes down to either id3lib being broken, or Microsoft. It's too bad there's so little software using this spec, so that it would be easier to test for interoperability.


Here's an interesting observation: If I save the SYLT frames as raw data to a file (using that handy new feature of MP3/Tag Studio 3.05), the Microsoft one has the first byte as $01, meaning Unicode, and appears to be structured as such. The lrc2sylt file is $00 (not Unicode). Does emphatic (or id3lib) not handle Unicode? That wouldn't explain why WMP couldn't handle the non-unicode file...


Any thoughts?
_________________________
-Aaron