ID3v2 SYLT frame

Lukáš Lalinský lalinsky at
Fri Sep 11 09:18:56 CEST 2009

2009/9/11 Lukáš Lalinský <lalinsky at>:
> On Wed, Sep 9, 2009 at 3:10 PM, Marvin Schmidt <marvin_schmidt at> wrote:
>> It links to
>> where i attached a implementation of the ID3v2 SYLT frame. I would
>> appreciate it if you could take a look at it and tell me whether it
>> would be possible to work that into 1.6 or if the merge-window is
>> already closed. :)
> No, I was not aware of this patch. The main reason is -- there is no
> bug report for it. Lyric3 support is something I consider very low
> priority, so I didn't even look at comments there. I'll review the
> patch tomorrow and most likely commit to SVN, so that it's included in
> 1.6.

I took a quick look and I think it will have to wait for 2.0.
Technically it seems fine, but I disagree with the structure it's
using. The ID3 specification doesn't say anything about special
handling of newlines. It says that they are treated as any other
whitespace (at the beginning of a word). We don't have special
handling for newlines in UnsynchronizedLyricsFrame either.

[ Note that there is a bug in the handling, if you have "foo" $00 $00
$01 $0A "bar" $00 $00 $02, you will ignore the last part after $0A ]

That would reduce List< Map<long, String> > to Map<long, String>, but
the specification doesn't specifically say that timestamps are
required to be unique. I'd prefer to see it as List< Pair<long,
String> >.

There are also some minor issues, for example that
SynchronizedLyricsFrame should not have those default values in
contructor, but those are trivial to fix.

Lukas Lalinsky
lalinsky at

More information about the taglib-devel mailing list