HOW-TO:Create LRC karaoke lyrics files

From XBMC
Jump to: navigation, search

This guide explains how to create text lyrics in LRC format to use with karaoke files. LRC lyrics format is text-based, and therefore renders with much better quality on high-definition equipment comparing to CD-G, which is restricted to a window 300x216 pixels. Being text-based, it also allows easy modification of content, including text and timings - something nearly impossible with CD-G. Its size is also much smaller, and typically is 3-10Kb comparing to average 1.5Mb CD-G. It is a specially formatted separate file with the same file name as the music file, and .lrc extension.

Unfortunately creating lyrics is a manual process. Once you mastered it the process is easy and fun. But first couple of lyrics might take a while, so be prepared. This is also time-consuming process - a single song needs to be listened to at least twice (usually more than that), and this means that you should plan to spend at least 10 minutes per song even when you're mastered it. For your first songs you might spend 3-4 hours per song, which is normal as you're getting used to the tools.

This guide covers making lyrics under Linux using free software. I have checked several programs available on Windows, which were available at least in shareware form, but so far found nothing really useful. The closest to follow this guide would probably be MiniLyrics, but I found it inconvinient for creating lyrics, and I personally would not pay $19.99 for a program which does not fit my purposes. I also checked VividLyrics (which didn't work at all for me as it did not want load MP3 audio), and MediaCommander. MediaCommander is actually very good software, but it has a single drawback which makes it impossible to make any lyrics with it - there is no keyboard hotkey (at least I didn't find it, nor it is mentioned in the guide) to set the time for current syllable and move to the next one. Instead the author asks you to click the mouse on the appropriate time value, which is VERY hard when you need to set up time twice a second. If this issue is fixed, MediaCommander would definitely be worth looking.

Contents

1 Prerequizites:

Installing lrcShow-II
When you installed lrcShow-II, configure it to use F12 button instead of F5 for setting current time tag, resize its window and increase the font size. It's much easier to handle. To do this, open Amarok, go to menu "Tools" -> "Script manager", select lrcShow-II in the list of installed scripts, and press Run. Then in the lrcShow window resize the window to make it larger. Then press the right mouse click in it, select "set fonts..." and choose font/size which looks good for you. Then in the same menu select "Other functions..." -> "Configure", go to "Shortcuts" tab and change the key from F5 to F12 for the "Insert time tag" action.
Changing shortcut key

2 Gathering necessary data

To create the karaoke song you need a music file without backing vocal, and a lyrics text file with timing marks.

2.1 Music file

There are several options to get karaoke music files. You can:

2.2 Lyrics file

Unlike music, there are not a lot of options to get lyrics in LRC format. Usually it is much easier to find the lyrics to the song than to find the song itself. However it's almost impossible to find lyrics with timing marks set properly unless it is bundled together with the song file. So in most cases you need to get a lyrics text from any lyrics search engine (start with Google), and make the Karaoke lyrics using this guide.

Once you found both music and lyrics, it is time to

3 Preparing to make your karaoke

3.1 Preparing the music file

Please listen to your music file completely before you start doing anything else! You will save yourself a lot of time! Corrupted music files happen, and even if the file itself is ok, you might now like the way the karaoke composer played it. For most songs there is more than one file available, and you can choose the one you line.

Also make sure your song plays fine both in Amarok and XBMC. Currently there is a bug in the XBMC which chops first couple of seconds of some MP3 songs. If you have such song, recompress it using LAME into constant bitrate by using the following commands:

lame --decode <your song> -o tmp.wav
lame --cbr -q 2 -b 192 tmp.wav -o <your new song>

-b option specifies bitrate. If your song had higher bitrate than 160, use higher bitrate instead. For example, use 224 if your song had 192.

Since this recompression lowers the quality, please save the original song somewhere, and replace the recompressed one when the bug hopefully is fixed :)

3.2 Adding/fixing tags in the music file

This is optional, but highly recommended to maintain your music library in order. Run Kid3, open your song file and change/add the tags as necessary. Also if you performed recompression described above, be aware that it strips ALL the tags, so add it again. Please do not use ID3v1 tags; just remove them. Use Id3v2 tags instead.

3.3 Proof-reading your lyrics

Please proof-read your lyrics before pasting them for mistakes and misunderstandings. Most lyrics are very good quality, but occasionally you will find lyrics which contain mistypes and mistakes. If there are too many of them, you better get another lyric file somewhere else.

Once everything is checked, it's time to start. I'll use Eagles "Hotel California" as example song, which was generated from MIDI file downloaded from http://diamond-back.com/hotelcal.html - this page also has lyrics.

4 Making lyrics

4.1 Pasting lyrics into the editor

  1. Make sure lrcShow-II is started. If you cannot see its lyrics window, it is not. To start it, open Amarok, go to menu "Tools" -> "Script manager", select lrcShow-II in the list of installed scripts, and press Run.
  2. Open Amarok, clear playlist (menu "Playlist" -> "Clear"), and add your file ("Playlist" -> "Add media"). Press "Play". Now lrcShow-II will search for your lyrics in the Internet. If the lyrics are found, you'll see them in the window. Do not get overexcited - those lyrics only have per-line timings, and most likely it will be different. If the lyrics are not found, the lrcShow screen will change to "No valid tag information" or "No lyrics found" message. It doesn't matter.
  3. When the song is playing or paused (but not stopped), right-click on lrcShow-II window and select "LRC editor". You'll get a dialog box saying "No local lrc file was used currently", and empty editor will pop-up.
    Opened empty LRC editor
  4. Fill up the basic information: put song name into ti: tag, and artist name into ar: tag. I usually remove al and by tags; you could fill them up if you want. I also suggest adding sr: tag to indicate the source you got the music file from - MIDI conversion, Internet, CD and so on. It will make it easier if in future you want to replace one song by another.
  5. Select and copy the previously found lyrics from your web browser, and paste them into LRC-Editor window. If the lyrics you've got already have timing marks, remove them by selecting "Operation" - "Clear all tags" in LRC editor menu. Then select in the editor menu "Save us" and save it in the same directory your music file is in, under the same name but with .lrc extension.
    Lyrics pasted into the editor
  6. Let lrcShow know you'll be using local lyrics - right-click on lrcShow window, select "Set lrc strategy for current track", select "Remember" in the checkbox and select the file you just saved. Press "Stop" and "Play" in Amarok and make sure the lyrics window is now empty as you do not have any timing marks. Press "Stop" again.

4.2 Breaking the song apart

Now the most important part. Since LRC-editor cannot put time tags between words, only when the line begins, you need to manually select where the timing marks will be appropriate. Because XBMC karaoke highlights song as it is played word-by-word and not line-by-line, having one timing when the line starts is usually not enough to get good visual results. I usually split the lyrics to have timing tags:

So, for example, for the first chapter:

On a dark desert highway, cool wind in my hair
Warm smell of colitas rising up through the air
Up ahead in the distance, I saw a shimmering light
My head grew heavy and my sight grew dim
I had to stop for the night

Try to play it and sing it. You'll see that there is no hearable pause on a line "On a dark desert highway", but there is a pause between it and "cool wind in my hair". This means we need to mark both the end of "On a dark desert highway" and the start of "cool wind in my hair". This could be done by adding an empty line between them (which will contain the time mark where the previous line ends). Also since the music is relatively slow, I put extra breaks in each song line to add more synchronization marks. As a result, the first chapter in my editor looks like:

On a dark 
desert highway

cool wind 
in my hair

Warm smell 
of colitas 

rising up 
through the air

Up ahead 
in the distance

I saw a 
shimmering light

My head grew heavy 
and my sight grew dim

I had to stop 
for the night


Follow till the end of the song. I repeat, this is the most important part. If during actually setting up timing marks you'll see that you added extra breaks or didn't add necessary breaks, it is usually easier and faster to abort setting marks, stop the song, fix the breaks and start again. Do not be afraid if you need to change timings five or ten times, I spent more than two hours on my first song and still wasn't happy with result. After your third song you'll do much better, and after your tenths you won't need further correction anymore.

Here's now mine formatted song looks like (should be an LRC file here)

4.3 Setting up timings

Now you're going to set up timing for each line. It's done in a relatively easy way - you listen to the song, and as soon as the line the cursor is on is started playing, you hit the "Insert time tag" button, which is F12 if you followed my suggestion and switched from default F5. Note that auto-scroll only shows you the last line, so I suggest to get a keyboard with a scroll wheel so you can scroll the text using your other hand at the same time.

This is the part which gets repeated a lot. Even now, after having done more than 100 lyrics, I still have to repeat setting up timing marks more than once. This is because manual correction of timing marks is very difficult comparing to re-setting them again, and I prefer to repeat the process now to fixing the marks later using XBMC.

To start the process, position the cursor at the start of the first lyrics line ("On a dark" in our case), then right-click on lrcShow (not the editor) window, select "Amarok control" and press "Play". Then switch the focus to the editor window, listen to the song, and press F12. Remember that for each line you need to press F12 at the moment the first character is to be sing, and on an empty line you must press F12 when the singer stops singing the previous line, not when the next line starts. If next line starts when the previous line ends, this means the extra empty line is not needed here, and needs to be removed.

If you feel like you need to edit the line breaks again, press "Stop", then select "Operation" - "Clear all tags" in LRC editor menu to remove all time tags, and do it again. For example, after the first try I removed the empty line between "and my sight grew dim" and "I had to stop " as the pause there was not really hearable.

Again, do not hesitate to repeat timing process! It is near impossible to get perfect timing the first time!

4.4 Testing your timings in lrcShow

Once you're done, save the lyrics file into the same file you selected earlier, and play the song again using Stop/Play in Amarok. Watch the lyrics. If you remember you screwed up in some specific place, remove the timing tags manually there, and press F12 when this place is played - it's possible. The lyrics should play ok in lrcShow unless you did some major screwup. I usually skip this part, and go to formatting directly.

That's what I get for the same first chapter:

[00:53.60]On a dark
[00:54.85]desert highway
[00:56.26]
[00:57.20]cool wind 
[00:58.14]in my hair
[00:59.08]
[01:00.65]Warm smell 
[01:01.44]of colitas 
[01:02.69]
[01:03.94]rising up 
[01:04.73]through the air
[01:06.14]
[01:07.39]Up ahead 
[01:08.17]in the distance
[01:09.59]
[01:10.53]I saw 
[01:11.00]a shimmering light
[01:12.41]
[01:13.82]My head grew heavy 
[01:14.91]and my sight grew dim
[01:16.95]I had to stop for the night
[01:19.15]
Timing is done

4.5 Formatting lyrics

Even though XBMC could play lyrics in its current form, you do not want it. As you remember, we split them before, so we now need to restore the formatting. Close Amarok, you won't need it anymore. Open the LRC file in the editor, and format it again using the following guidance:

This is ONE block piece which will show an empty line between "On a dark desert highway" and "cool wind in my hair"

[00:53.60]On a dark [00:54.85]desert highway
[00:56.26]
[00:57.20]cool wind [00:58.14]in my hair

This is TWO blocks piece will show "On a dark desert highway" and "cool wind in my hair" on two different blocks.

[00:53.60]On a dark [00:54.85]desert highway[00:56.26]

[00:57.20]cool wind [00:58.14]in my hair

Here's my reformatted first chapter.

[00:53.60]On a dark [00:54.85]desert highway[00:56.26]
[00:57.20]cool wind [00:58.14]in my hair[00:59.08]
[01:00.65]Warm smell [01:01.44]of colitas [01:02.69]
[01:03.94]rising up [01:04.73]through the air[01:06.14]

[01:07.39]Up ahead [01:08.17]in the distance[01:09.59]
[01:10.53]I saw [01:11.00]a shimmering light[01:12.41]
[01:13.82]My head grew heavy 
[01:14.91]and my sight grew dim
[01:16.95]I had to stop for the night[01:19.15]

4.6 Listening in XBMC

Open XBMC, go to "Music" and select your new song. The song should start playing, and the lyrics should pop up. If they do not, make sure the file name is exactly the same, that the lyrics file has proper .lrc extension, and that there is no other file with the same file name in this directory except one music file and one lyrics file.
Karaoke in XBMC

Time tags represent how the current line will be painted character-by-character. For example:

[00:53.60]On a dark [00:54.85]desert highway[00:56.26]

This means the "On the dark" will be painted between 53.6 and 54.85 seconds, and "desert highway" will be painted between 54.85 and 56.26 seconds. Using this knowledge, the time correction is easy:

Using this guide you could correct minor hiccups in the lyrics file. Please do not forget that the value on the right side of the decimal point represents tenths of seconds, and therefore could be anything from .00 to .99. However the value on the left side of the decimal point represents minutes and seconds, and therefore must be in range from 00 to 59.

Do not try to make lyrics perfect! Any correction less than .2 seconds is usually not necessary. Because of nature of OS, codecs and software most likely you'll never be able to achieve perfect results anyway.

And the last thing - share your lyrics!

5 See also

Personal tools
Namespaces
Variants
Actions
Navigation
Wiki help
Google Search
Toolbox