2003-2004
Patrick Giasson
portions (c) 2003 Tony Cebzanov
using mp3tool (c) 2000-2002 Mark Lord
Latest changes are in BLUE
What it's all about?
SYLT Lyrics plugin is a plugin that enable winamp users to view, edit and save songs lyrics directly into SYLT frames. I think it's the first and only program that does so (beside command-prompt lrctool from Tony Cebzanov)
Installation
Simply run the install (.exe) and specify your winamp folder.
Usage
First, let's check the settings (Menu Options/Settings):
- File Format Priority
- Put the format in which you would like to save your timestamped lyrics at the top of the list, using the arrow buttons. The order in which the different formats appear also set the order in which they will be looked for when you play a file. Lyrics3 is in the list, but is currently not implemented. Do not put it first: Lyrics won't be saved. Read from lyrics3 does work though, and is performed by the library I use to read SYLT frames. The dashed line is the cut: The sources listed above the cut are used, those under are not. Useful if you don't want to use internet: Move the cut above "Sing365", "All The Lyrics" and "lrcDB" and it won't try to connect.
- Erase other format when found
- If checked, the plugin will erase all the formats of lyrics it founds, except the one at the top of the list, of course. This option is useful if, for exemple, you have all your collection of lyrics saved to lrc files and you want to transfer them to SYLT frames. Simply check this option, then play all your songs, and press Ctrl-L then Ctrl-T. This will enter "Edit Mode" and immediatly save lyrics to SYLT. Then, it will erase the .lrc file.
- Show in taskbar
- Check this option if you want to see the SYLT plugin in the taskbar. If you uncheck this option, you must restart winamp to see the change.
- Hide Scrollbar
- Hide the vertical scrollbar in "Sing mode". You can still move around with the mouse wheel.
- Snap to Winamp
- With this option checked, the plugin will follow Winamp window. Move the plugin around by dragging it as you want it in relation with winamp, the move winamp and the plugin will follow. If you minimize or restore winamp, the plugin will do the same.
- Automatic Hide
- If checked, the lyrics plugin will only show if it finds lyrics. If not, it will hide itself. Bring back the plugin, select it from the winamp menu "SYLT Lyrics Plugin", or press Ctrl-Y in winamp.If you're in the process of tagging a number of songs, you should not enable "Automatic Mode" as the plugin will disappear each time a new song is selected. This option is useful if you're listening to songs in winamp, and dont want to see an empty window if there are no lyrics.
- Automatically adjust window width
- Use this option to make the plugin window adjust itself to the lyrics it displays.
- Auto "Click-as-you-Sing"
- When in Edit Mode, the plugin will go into "Click-as-you-Sing" mode automatically, depending of Winamp Status. If winamp is playing, it will enter that mode and return to Normal Mode when winamp will stop. You can bypass this all the time by pressing CTRL-D.
- Allow selecting when in "Click-as-you-Sing"
- When you are in the "Click-as-you-Sing" mode, timestamps are inserted when you release the mouse button. If you select this option, you can select text (by pressing the button and moving the mouse), and a timestamp won't be inserted on release of the button. This way, you can still correct typo when you timestamp a song, without leaving the "Click-and-Sing" mode.
- Show Incorrect Timestamp Error Message
- If checked, the plugin will try to correct any bad timestamped line and will add an error message on the lines these lines. Error that it can catch are: timestamp larger than song running time, smaller than 0.
and smaller than the previous one.
- Create backup
- This plugin is still in developpement, and if you're paranoid (or careful ;-), you can check this. When asked to save, the plugin will make a backup copy of the original mp3, untouched as "OriginalName_SYLT_backup.mp3"
- Use lrcDB
- lrcDB is a central repository for time-tagged song lyrics. To be able to retrieve lyrics from this site, you must first register there, then select this option and then enter you login/password in the following fields.
- AutoSave when lyrics found
- The lyrics found at lrcDB are already timestamped by other users: You should not have edit them. Normally, the plugin only saves lyrics when you "Enter Edit Mode" and then "Save". With this option, if the lyrics retrieved from lrcDB are a perfect match (Exact Artist, Title AND Album as id3 info in your mp3), the plugin assumes the lyrics are OK to be saved and do so immediatly after getting them from the site.
- Use Proxy
- If you need to use a proxy, enter the settings here. This is not thoroughly tested. There could be a lot of bugs introduced with this option. Keep me informed of how it works for you
- Timestamp format
- This option is there for compatibility issue if you use other programs which read timestamp. If it's not the case, simply let this option to "Long". It will increase accuracy.
- Timestamp adjustment
- Use this field to "compensate" your reaction time in "Click-as-you-Sing" mode. The time placed here will be added to playing time when the timestamp is inserted. If you always click half a second too late, type -0.5 here and that half second will be compensated.
Here is a typical workflow to put lyrics in mp3
Without Internet
- Open the mp3 in winamp
- Stop it, if it's already playing
- Enter "Edit Mode" by pressing Ctrl+L . If the popup "Open Location" appears, it's because the plugin didn't was not selected. Press cancel and then click on the plugin to select it, the try again.
- Paste the lyrics you previously found from the web, or type them in. (As guideline, insert a blank line at the top, at bottom and between verses. You'll use them to tag respectively the time [00:00], the time at wish the silence between two verses begin and the time at which the last lyrics finish. This will be helpful when you'll sing back and it will help if you use emphatic for those with an empeg)
- Enter "Click-As-You-Sing Mode" by pressing Ctrl+D
- Click on the first line. Depending of the type of timestamp you choose (short or long), you'll see either [00:00] or [00:00.000] appear. Begin to understand what we'll do next?
- Press play in Winamp. Then as soon as you sing each line, click on it. The time in the song at which you release the button will appear at the beginning of the line.
- Empty lines should also be timestamped. Use this to indicate the beginning of silences in the song. It's important to do so if you use multiple timestamps per line: When sorting the lines in correct order, the ones without timestamp are remove. If you don't timestamp empty lines, all the lyrics will appear as a single long paragraph.
- When you're all done with timestamping your song, press Ctrl+T to save the lyrics.
- Return to "Edit Mode" and listen to the song once again. Watch the "token" and the left part of the window. It scrolls exactly like the real lyrics would do in "Sing Mode". If you notice any lag/lead, adjust the time accordinly with CTRL-A and CTRL-B. When you're done, save again. Note that the timing of the token is updated only when you save the lyrics. If you want to check if the adjustements you made are ok, save the lyrics, then come back again in "Edit Mode"
- That's all! Lyrics are now saved and will come up every time the song is played.
With Internet
To use this method, you must have at least one of the following sources above the line (in the settings): lrcDB, AllTheLyrics, Sing365. You can also use this method by pressing CTRL-I (Search on Internet)
- Open the mp3 in winamp
- Stop it, if it's already playing
- Wait for the lyrics to appear. It could take a while (up to 20 seconds on certain occasions). If the message "No Lyrics Found" appears in the titlebar, then you'll have to use the "Without Internet" way of doing things!
- If lyrics were retrieved from lrcDB and you selected "AutoSave Lyrics" in the lrcDB settings, you're done! Otherwise, you just have to save them to your mp3, by pressing CTRL+L CTRL+T.
- If lyrics were retrieved from another Internet source, they are not timestamped. Enter "Edit Mode" by pressing Ctrl+L . If the popup "Open Location" appears, it's because the plugin didn't was not selected. Press cancel and then click on the plugin to select it, the try again.
- Continue from point 5 to 10 of above
Listen to the song once with the lyrics scrolling to see if everything is alright: Is the highlighted line following the song correctly? Any lag? No? Continue to next point. Otherwise, return to "Edit Mode" with CTRL+L and "Click-as-you-Sing" with CTRL+D and adjust the bad timestamps
- Submit the lyrics to lrcDB by pressing CTRL+U
You can now submit correction to lrcDB. The program automatically determines if your submission will be a first time submission or a correction request. The color dot next to the Submit menu will be green on new submission and yellow on correction.
Here are a few keyboard shortcuts:
- CTRL+Y
- Show or hide the SYLT Lyrics Plugin
- CTRL+L
- Switch to "Edit Mode" (where you type/paste lyrics and add timestamps)
- CTRL+T
- Save the lyrics and switch to Run mode (where the lyrics will scroll with the music)
- Esc
- Quit "Edit Mode" and discard any changes made
- CTRL+D
- Enter/Leave "Click-As-You-Sing Mode". For this to work, you most be in "Edit Mode" first (CTRL+L). Then, by pressing CTRL+D, the mouse cursor switch from the I beam to an arrow cursor. When in "Click-As-You-Sing Mode", a click on a line will insert current playing time of the song. This is the way to timestamp your songs: Simply paste lyrics (or wait the plugin to get them from you from internet) and then press CTRL+D, press Play in winamp, and when each line begin, simply click on it. A new feature for 1.1 is support for multiple tags on the same line. This is useful to tag the chorus of a song. Each time you click on the text of a line, a new timestamp will be inserted at the beginning of the line. If you click directly on a timestamp, it's value will be changed to current time.
- CTRL+A
- Add 250 milliseconda to the timestamp of the current line (the one with the keyboard cursor).
1 sec will be added instead of 250 msec if you're using short timestamp.
You can do the same with the mouse by pressing the left button, clicking with the right button and then releasing the left button. This must be done directly on the timestamp you want to adjust. Otherwise, the first one on the line will be adjusted.
- CTRL+B
- Substract 250 milliseconds to the timestamp of the current line (the one with the keyboard cursor).
1 sec will be substracted instead of 250 msec if you're using short timestamp.
You can do the same with the mouse by pressing the right button, clicking with the left button and then releasing the right button. This must be done directly on the timestamp you want to adjust. Otherwise, the first one on the line will be adjusted.
- Shift+CTRL+A
- Add 250 milliseconda to all timestamps. This is useful if the lyrics retrieved from lrcDB are offset for the whole song (Not exact same song version, different ripping settings). 1 sec will be added instead of 250 msec if you're using short timestamp.
- Shift+CTRL+B
- Substract 250 milliseconds to all timestamps. This is useful if the lyrics retrieved from lrcDB are offset for the whole song (Not exact same song version, different ripping settings). 1 sec will be substracted instead of 250 msec if you're using short timestamp.
- CTRL+R
- Remove the timestamp of the current line, if there is only one on the line. If there is more than one, you must first place the keyboard cursor one to erase it. You can do the same with a middle mouse button click on a timestamp
- CTRL+Shift-R
- Remove all timestamps from the current file
- CTRL+M
- Show/Hide Menu Bar
- CTRL+I
- Try/Retry to get lyrics from Internet (lrcDB and Sing365)
- CTRL+U
- Submit the lyrics to lrcDB
Here are a few random tips:
To seek in a song to a desired lyrics, press the right mouse button on it and then left-click. Winamp will seek (FF or RW) to that specific line.
Known Issues
- Multiple Tag per line
- Even if the plugin uses the same tags (in edit mode) that Lyrics3 standard, ie [00:00], it doesn't support multiple of these on the same line. If you do so, it will only use the last one. Also, lyrics3 format support unsorted tags in the edit mode. The plugin doesn't support it either. If it seems that the scrolling get stuck somewhere in the song, verify that all your tags are successive. To help, you can toggle "Show Incorrect TimeStamp Error Message". It will show a clear message on which lines the timestamps are "incorrect". I plan to release version 1.1 soon that will accept multiple timestamp per line and unsorted timestamps.
- VBR MP3
- VBR MP3 is a tricky format. This plugin handle it as well as winamp can handle it: it uses data from winamp and if winamp has trouble seeking in a VBR files, lyrics will be displayed (timestamped offset). To minimize (or prevent) imprecision, do not seek (fast-forward, rewind), or pause when timestamping a file. The same apply to listening: if you seek through the song, lyrics can become unsync. To reset this, simply stop and restart the song.
- Lyrics3
- Because it isn't recommended to use lyrics3 format to save lyrics to mp3, it is implemented in this lyrics as a Read-Only to help translate from that format. Maybe the write capability will come someday, but it isn't a priority for now.
- Windows NT4, 2000 and XP
- If you're not the administrator, it's possible that the auto-startup of the plugin won't work and you will get an error message saying that the DLL could not initialize. There's not fix for this, as this plugin rely on a wrapper to work. This wrapper need to write in the registry and cannot do so if you don't have the privileges. The lyrics_plugin.exe can still work, but you will have to start it manually after starting winamp. Simply create a shortcut to it on your desktop or in the start menu. Also, be sure to select "Show in taskbar", as there would be no way to call the plugin back. Version 2.0 should be written in C++ and will fix this problem.
- Winamp Info Editor
- Don't use winamp to update id3 tags in your mp3. I don't know why, but Winamp erases the SYLT tag in the id3v2 every time it updates the tags. Maybe it's the plugin's fault (maybe the tags created aren't following the exact id3v2 specs, though I believe they do), but every other tools I tried doesn't destroy the SYLT frame. There are a lot of great tools to edit the tags. Tag & Rename, Tag Studio are a few examples.
Files
The following files will be installed in winamp\plugins folder:
sylt_lyrics.dll - The plugin-caller, appearing in "General Plugins" in winamp
gen_sylt_lyrics.Plugin.dll - The wrapper used to interface VB plugins in winamp
\SYLT_Lyrics_Plugin\lyrics_plugin.exe - The plugin itself
\SYLT_Lyrics_Plugin\mp3tool.exe - Tool to fix VBR files (by Mark Lord)
\SYLT_Lyrics_Plugin\vbid3lib.dll - DLL used to read/write frames in mp3
\SYLT_Lyrics_Plugin\msflxgrd.ocx - VB control used to display scrolling lyrics
\SYLT_Lyrics_Plugin\mswinsock.ocx - VB control used to communicate over internet
\SYLT_Lyrics_Plugin\tabctl32.ocx - VB control used to display settings window
\SYLT_Lyrics_Plugin\readme.html - this file
Copying/Distributing
This program is a Freeware, feel free to use it as you want. You can share it with friends, but please, don't take credit of it. As you didn't pay for it, please don't complain: If you don't like it, don't use it. Constructive comments and suggestions are always welcome! Source code is available on request. I learnt a lot doing this project: winsock, winamp plugin/interface and I'm willing to give back.
Thanks
Thanks Tony Cebzanov for your help in this project. Without your code from lrctool, this couldn't have been possible.
Thanks Mark Lord for mp3tool. It saves me a lot of trouble!!
Thanks to "The Frog Prince" for the VB version of id3lib, vbid3lib.dll
Release Notes
Version 1.2 (Stable)
Date: 2004-08-03
- Implemented Album choice if song is in more than one album on lrcDB and none of these match the user's file album
- Fixed a problem with submissions to lrcDB when lyrics contained a &
- Improved compatibility with SYLT standard
- Added possibility to highlight more than one line at the time
- Improved first-line highlighting
- Added setting to Allow/Disallow selecting during Click-and-Sing
- Added Goggle button when "No lyrics are found"
- Added support for Leo's Lyrics website
- Fixed a bug that id3v1 were created in mp3 file with every save
- Added ability to submit corrections to lrcDB
- Added setting: Timestamp offset the compensate the reaction time in "Click-and-Sing" mode
Version 1.1.1 (Stable)
Date: 2004-07-28
- Added Proxy Support
- Improved "Snap to Winamp" latency
- Fixed bug with "Modern Skins" of winamp
- Added a scrolling "token" in edit mode to help adjust timestamps
Version 1.1 (Stable)
Date: 2004-07-21
- Retrieve timestamped lyrics from www.lrcDB.org
- Retrieve lyrics from www.sing365.com
- Retrieve lyrics from www.allthelyrics.com
- Submit timestamped lyrics to lrcDB
- Support for Multiple timestamps per lines
- Fix bug with Unicode SYLT frame (Created with Windows Media Player)
- Shift-CTRL+I Revert to default (safe) settings
- Redone UI (menu, help)
Version 1.0 (Stable)
Date: 2004-06-24
- Implemented Adjust timestamp with mouse: "Press Left Button, Click Right, Release Left" and opposite to respectivly add and substract time to existing timestamps.
- Fix bug when saving single line lyrics
- Fix problem when saving to a locked file
- Remove sound glitch when saving in play/pause
Enjoy!
Patrick Giasson