Return to Main Page
LyricTool
(started August 2010)

Intro
LyricTool is a simple program using Microsoft Visual Basic .Net (Visual Stuidio 2010, uses VB.Net 4.0) and the UltraID3Lib .Net Library to scan a list of .mp3 files and then list those files that do not contain lyrics.  This list can be exported to a .m3u playlist file.

The ID3 tag standard stores information within an MP3 file. In the current version, ID3v2.3 (and the lesser implemented v2.4) these pieces of information ("frames") include the artist, album, song title, year released and several dozen other categories.   LyricTool can in fact identify files missing any of the tags specified in the ID3 standard.


Why and What
Two lesser known frames are Synchronized and Unsynchronized Lyrics. My hearing impairment usually makes following the words in music very challenging, and so I'm a fan of lyrics in general... When using computers, I use WinAmp with the MiniLyrics program to show the lyrics. MiniLyrics stores lyrics on the computer in text files, but can be used to manually add the lyrics in the ID3 tag. I use an iPod touch as my portable MP3 player (and pocket computer, of course). The iPod touch can display unsynchronized lyrics if they are stored in the MP3 file. So I started saving lyrics in the files, but I never had a record of what tracks were still lacking lyrics.... Thus this very simple tool was dreamt.

LyricTool looks for the "Unsynchronized lyric/text transcription" frame in each MP3 file specified by the user, and lists the tracks that don't contain this frame.  It can then export the tracks to a .m3u playlist file (used by Winamp; recognized by other programs, too). You can also search for any other frame, using the drop-down box in the lower right and it's adjacent button.

Additionally, UltraID3Lib will generate errors.  These range from the wrong tag versions (i.e. not v2.3), to weird frame names or incorrectly specified frames.  The Tag Errors button will list files with such errors, and you can also identify files with errors and missing a tag using the 'Note Errors' checkbox.  Errors are noted with '- ERROR' appended to the file name in the right box.  To actually identify what the error is, you can use the included utility with the UltraID3Lib package (this may require Visual Studio, however).
Screenshot of the LyricTool interface.
LyricTool does not (and probably never will) include any features for adding lyrics to the ID3v2 tag (or modifying the ID3v2 tag in general) However, UltraID3Lib contains the necessary features for implementing such features.

From the generated list of lyric-less .mp3s, I manually find and save lyrics using MiniLyrics in WinAmp.


Working with iTunes:
I use iTunes for syncing music to my iPod touch. The list of songs that I sync is stored in the file "iTunes Music Library.xml." To read the playlists stored within this file, I use iTunesExport (see Links) to create .m3u files which can be imported into LyricTool.

There's an additional challenge here if you buy your music from iTunes. iTunes uses the ID3v2.2 tag, and the release version of UltraID3Lib.dll does not support v2.2 or v2.4. (The beta version does, but I've not had a chance to experiment with it.) The solution I found for these .mp3s with incompatible tags was to save them with a v2.3 tag using MP3Tag:
  1. Download, install and run MP3Tag: http://www.mp3tag.de/en/index.html
  2. Load files of interest
  3. In Tools>Options>Tags>Mpeg select ID3v2.3 UTF-16, then close the Options window
  4. Select all the files and press Ctrl + s to save them, and the tags will be written in v2.3


Bugs / ToDo:
I've successfully added lyrics to every song on my iPod Touch, and they all use ID3v2.3 tags... but for some reason (to be investigated) the lyrics aren't seen for every song on the iPod.

Since UltraID3Lib can only work with ID3v2.3, I want to implement way to identify files that don't have the correct ID3 version, and distinguish this from other errors that UltraID3Lib throws.


Download LyricTool:
To use this program yourself, you need two files: the UltraID3 dll and the executable.
The VB .Net files are stored as a project folder in the following .zip file if you want to play with code.


Links:

11-13-2012: Randomly discovered this approach: Automatically adding lyrics to files (OSX)

-11-13-2012