Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#74 There isn't support for read/write lyrics on gtkpod

open
David Kohen
None
5
2008-10-17
2008-09-21
Felipe Castillo
No

Many iPod users love to see their song's lyrics, like me, while listening to the song. gtkpod doesn't have any support for reading or writing lyrics. The USLT (Unsynchronized lyric/text transcription) fiel inside the ID3 can be easily read and displayed. I hope that gtkpod can implement this in the future.

Discussion

  • Jorg Schuler
    Jorg Schuler
    2008-09-22

    Actually, lyrics should be supported. If the USLT field is set, gtkpod sets the lyrics flag, and the iPod should read the lyrics.

    Can you please clarify what is not working?

    JCS.

     
  • Jorg Schuler
    Jorg Schuler
    2008-09-22

    • status: open --> pending
     
    • status: pending --> open
     
  • Sorry if I wasn't too clear with this post. What I ment was that gtkpod doesn't have any GUI for editing lyrics, the user doesn't know if their song have or don't have any lyrics. If users want to handle lyrics they have to use another software. Gtkpod handles almost every relevant ID3 tag field of a mp3, but lyrics isn't. Like you said, gtkpod does support lyrics, if a song has it, they are sync to the iPod, but a user can't find out if there are any lyrics in the song or not.
    Another tab or unther the Misc. tab can show a box with the lyric info to be able to edit it, or add any if the song doesn't have it.

     
  • Jorg Schuler
    Jorg Schuler
    2008-09-22

    OK, I see. Shouldn't be too difficult to implement but I won't have time. If you can program a bit I do accept patches.

    Cheers,

    JCS.

     
  • I've notice that gtkpod is changing its .glade file. I don't know if it's possible to add the other tab for lyrics input and edit while the glade file is being changed. I know how to program, but my skills are really basic, I'd love to do it but I don't think I'd be able to. I hope it's not much of a problem to add the extra tab, since it's really simple. The problem would be in saving the lyric info in the ID3. I hope you can add this, it would be much appreciated by a lot of people.

     
  • Zoltar60
    Zoltar60
    2008-09-30

    Doesn't work for AAC files though. Posted about the issue on the gtkpod-questions mailing list.

     
  • According to this webpage, aac files do support lyrics in their metadata:
    http://atomicparsley.sourceforge.net/mpeg-4files.html
    It can be found scrolling down until the "Known iTunes Metadata Atoms" section. It says that lyrics have been supported since iTunes 5.0
    I've also heard that their is a Quicktime API that can be called from C#, I don't know if it only works for windows or not, but it can read/write tag information to aac files. Maybe it's worth trying to look at it, and see what it does and how to implement it in a standalone version.

     
    • summary: There isn't support for lyrics on gtkpod --> There isn't support for read/write lyrics on gtkpod
     
  • David Kohen
    David Kohen
    2008-10-05

    This should be in the feature requests tracker and not in bugs.
    Anyway, I know programming very well but I have no idea hot to write in the GTK+ API. (meanwhile all my patches have been for program logic)
    Todd has fixed the mp4 lyric support, according to the change log.
    If anyone can give me a heading like telling me where in the code the misc tab is defined I'll see what I can do about this.

     
  • Really?!?! Thanks a lot.
    Well, for what I've seen the graphical part of gtkpod is stored in a file named gtkpod.glade under the data directory. Inside that file, if you search for "_Misc" (without the quotes) you'll find that Misc tab. Everything before that word is the tab itself, since it's elements are described before the actual tab.
    I was playing with it, but I'm not that good. I did created another tab instead of adding the lyrics to the Misc tab, but the elements inside the Lyrics tab weren't properly generated.
    I hope I helped with this. I will love to be able to use this feature. If I can help in any other way, please let me know. Thanks a lot!

     
  • David Kohen
    David Kohen
    2008-10-06

    So I reached a program called glade3 that edits this XML and found a way to add the lyrics box (in the misc tab) but as it turns out, there is no in memory/DB data structure to hold that information, and reading it from a file is a huge overhead.
    The only good option to do that is to add the lyrics to the extended database but then we have a problem of changing the database structure, which is something that requires extensive knowledge about this program inner workings and might break compatibility with older versions, so I can't do it, at least not until I understand it all....

     
  • Jorg Schuler
    Jorg Schuler
    2008-10-06

    Yes, the gtkpod.glade file is edited using glade3.

    Without being able to read and write lyrics from the file the exercise is pointless, however: the iPod gets the lyrics information directly from the mp3 or mp4 file.

     
  • Well, I hope that dudyk can figure it out, and make a great feature available. Is it really that big overhead to read each lyric from the file? I thought that was the best answer to the problem, but I guess creating another database that holds that info. Maybe by looking at how other programs handle this info, it'll make it easier, software like easytag, or Kid3. Well, I hope I could be helpful in some other way.
    Thanks again to dudyk for trying to make this... Thanks a lot

     
  • Jorg Schuler
    Jorg Schuler
    2008-10-07

    Of course the reading/writing of the lyrics information will be done by some kind of library. I believe the libid3tag library for mp3 (and probably also the mp4v2 library for mp4) can do that.

    I googled a bit and at least for mp3 it seems quite straight-forward. If my memory serves me right, we are already checking for the USLT frame, but don't use its content:

    http://xbmc.org/trac/ticket/3962

     
  • David Kohen
    David Kohen
    2008-10-07

    As they say, if there's a will, there's a way.
    I got the lyrics from an mp3 file, but I have a dilemma, which of the copies should I read it from? The local or iPod copy? And what about saving it back? Considering it cannot be saved in db, I have to change the mp3 file itself, ignoring the "write id3 tags to disk" in the preferences, or present an error.

     
  • Jorg Schuler
    Jorg Schuler
    2008-10-08

    Read from the iPod if available. Use the local copy otherwise (there's a function to get the filename that takes an option (PREFER_IPOD).

    When writing, write to the iPod file. If that is not available, give a warning (changes will not be reflected on the iPod). Write to the local copy only if the prefs allow or after requesting permission (if iPod file is not available).

    That should work I guess.

     
  • David Kohen
    David Kohen
    2008-10-10

    UPDATE:
    Got read from A-Z working on mp3 files...
    What's left:
    1.Write.
    2.MP4.
    3.WAV lyrics warning.
    4.Cosmetic changes.

    Jorg, can you add me to the project and assign me to this bug?

     
  • Jorg Schuler
    Jorg Schuler
    2008-10-11

    • assigned_to: nobody --> dudyk
     
  • Jorg Schuler
    Jorg Schuler
    2008-10-11

    Done -- please send your patch to gtkpod-devel first so we can have a look at it.

    Thanks for your support!

    Cheers,

    JCS.

     
  • David Kohen
    David Kohen
    2008-10-17

    OK, so 90% of the changes are done, but as of now, I have a memory leak causing a segmentation fault, so I'll work on it some more...
    I added some things I haven't thought about originally, like a column for the lyrics flag in the track list, and a lyrics field in ExtendedTrackInfo structure.
    When it'll work, I'll post it on the devel list...

     
  • David Kohen
    David Kohen
    2008-10-17

    • labels: 479712 -->
    • milestone: 257498 -->
     
  • David Kohen
    David Kohen
    2008-10-27

    Posted on devel list.