Lyrics Jukebox

Playing music with synchronized lyrics display for Windows, Linux and Mac

Configuration

The configuration file Lyrics_Jukebox.config is expected in the program directory; alternatively, you can specify another file as a start argument (its name must also end with .config ).
Lyrics_Jukebox.config is a text file that you can edit with any editor. For Windows users, I recommend Notepad++ with the additionally installed UserDefinedLanguage Config (.cfg and .ini files), which you can find on GitHub.

The configuration file consists of entries with the following structure
keyword=value
The keyword is the parameter for Lyrics Jukebox, after the equal sign is the value.
If there are multiple keywords, the last (lowest) entry is used.
A comment is introduced with a semicolon.
Examples can be found in the supplied configuration file.

KeywordValueFunction
MusicDir Path The path to the music files (may also contain space characters, relative paths are possible)
Example: MusicDir=Music
MusicSpareDir Path The path to music files that are not played automatically but are available in the jukebox and the search feature
ReadSubDirs on or off With ReadSubDirs=on, the subdirectories of MusicDir and MusicSpareDir are read.
PlayList Path/filename Instead of the MusicDir, a playlist in m3u format can also be specified. The entry for MusicDir is ignored in this case.
OldPlayList Path/filename If required, a playlist with incorrect paths or without paths can be imported, but the tracks must be located somewhere in the specified MusicDir or MusicSpareDir.
This feature is also suitable for playing a playlist and continuing with the internal random list (the contents of "MusicDir") after the end of the playlist.
(This feature is only useful in conjunction with SmartShuffle or without Shuffle; it has no effect with simple Shuffle).
ExportPlayList Path/filename If a file name is specified here, the content of the internal playlist is exported to a file with this name in M3U format after it has been rebuilt. This list then contains the current random sequence including any imported "OldPlayList" at the beginning.
LyricDir Path The path to the lyrics files
PreferEmbeddedLyrics on or off With PreferEmbeddedLyrics=on, lyrics embedded in the music file (in the ID3 frames USLT or SYLT) are preferred.
By default, lyrics files from the directory in which the music file is located or from LyricDir are preferred.
SimplePlayer on or off Simple player without jukebox, without searching in tags, without SmartShuffle and without saving the volume and the last track played.
Shuffle on or off Simple Shuffle(Shuffle=on)
SmartShuffle on or off Predictive Shuffle(SmartShuffle=on). If switched on, an internal random play list is generated, which is saved in the file specified for "PlayListFile=" and is valid until either the content of the music directory changes or the end of the list is reached. The order is then redefined.
There are therefore no repetitions until all the tracks have been played (except for the tracks that you have played more often using the RatingList).
RatingList Path/filename If some tracks are to be played less frequently or more frequently when the SmartShuffle function is active, the desired frequency can be entered in the file specified here. If the pre-sign is positive, it is played more often, if negative, less often.
Structure of a line in the list:
File name of the track (with or without file extension), space, sign, number
(The file name is case sensitive.)
Examples:
Trallala.mp3 +3
The Yodeling Cowboy - Yodelayeeoo -9
ShowRating on or off Shows rating. ShowRating=on activates the display of the value from the RatingList shortly after the start of playback.
(Default: off)
JukeboxOnly on or off Jukebox mode only. JukeboxOnly=on has the effect that queue is always stopped at the end of the last selected track and the system switches to track strip selection in jukebox mode. The X symbol (which otherwise switches the jukebox mode off) is then only used to cancel a current playback.
For jukebox mode, all tags of the music tracks are read in, the title strips are only displayed once this has been completed.
JukeboxTemporary on or off JukeboxTemporary=on ensures that automatic playback always continues after the end of the last manually selected track. This means that playback is only interrupted when the pause button is used.
JukeboxTimeout Timeout in seconds After the time specified here in the jukebox display, the jukebox switches to automatic queue. This is similar to the JukeboxTemporary option, except that there is this additional waiting time. If JukeboxOnly is also activated, then only one track is played after the waiting time has elapsed.
The time is specified either in seconds or in the form minutes:seconds. Examples (with the same duration):
JukeboxTimeout=90
JukeboxTimeout=1:30
The value 0 means that JukeboxTimeout is inactive.
RememberJukeboxMode on or off With RememberJukeboxMode=on, the program starts in jukebox mode if it was active when it was closed. Otherwise, playback mode is started.
(Standard: off)
PlayOnStart on or off PlayOnStart=on: On startup, playback starts automatically, otherwise Lyrics Jukebox starts in pause mode.
PauseBeforeTrackon or off PauseBeforeTrack=on causes the pause mode to be activated before every new track.
Playback of the track is only started after the space bar or the virtual pause button is pressed, so that the program can be used "on stage" for playing background tracks during stage performances.
VolumeCountdownon or off Offers temporary volume changes(VolumeCountdown=on).
If VolumeCountdown=off, the symbol is not displayed.
LockVolume on or off With LockVolume=on, only temporary volume changes are permitted. The volume set before activating LockVolume is then the default; it can be changed in the file specified for StateFile in the "Volume=" entry.
The permitted values there are 0 to 64.
VolumeMax Number (from 1 to 64) Limitation of the maximum volume (default 64).
If the volume lines are displayed, the maximum value is represented by a black line.
RadioVolumeFactor Number (from 0.1 to 10.0) Volume adjustment between music playback and radio function, can be useful when using VolumeMax to achieve approximately the same maximum volume. The radio is quieter at lower values. The decimal separator should be a period, not a comma.
SeparateVolume on or off SeparateVolume=on means that the volume settings for music playback and radio are stored separately.
RadioStations Path/filename URL list for Internet radio
(VLC must be installed for Internet radio)
VLCshutdown on or off VLCshutdown=on: The VLC server is shut down when the Internet radio function is terminated.
VLCExecutable Path/filename Installation location of the VLC program. Is used for the radio function and must be specified here if VLC was not installed in the default path or if the operating system does not provide a default path for programs.
The default paths are
  • Windows: C:\Program Files\VideoLAN\VLC\vlc.exe
  • Mac: /Applications/VLC.app/Contents/MacOS/VLC
  • Linux: /usr/bin/vlc
VLCPassword Password The password used to start the VLC telnet server. This only needs to be declared if other software also uses VLC in Telnet mode. Normally Lyrics Jukebox uses the password secret.
Align Center or Left The alignment of the text lines (default: Align=Center)
MarginLeft Number For left-aligned text(Align=Left) the distance to the left margin in pixels
Frequency Number The frequency in Hz at which the image is refreshed when scrolling. Works from approx. 5 to 100 depending on the hardware.
If possible, select a value that does not interfere with the picture frequency, i.e. at 60 Hz neither 30, 45 or 60 Hz.
StateFile Path/filename Status file for volume and last played track
PlayListFile Path/filename Internal PlayList (for the SmartShuffle operating mode and the jukebox)
Is written after a new random sequence has been calculated.
CacheDir Path/filename Directory of the cache for cover images. If nothing is specified here, a subdirectory "LJ_Cache" is created in the directory in which StateFile is located.
LRCFont Name of the font The font for synchronized texts (LRC files)
LRCFontSize Number Font size
LRCFontColor1 Hexadecimal number six digits The color for new text lines (RGB hexadecimal)
LRCFontColor2 Hexadecimal number six digits The color for the active text line
LRCFontColor3 Hexadecimal number six digits The color for old text lines
LanguageFonts Path/filename List of language-specific fonts that are assigned to an abbreviation from the la: tag.
If the font selected for LRCFont does not contain characters of a specific language, you can use this to select a different font for an individual language that is entered in the la tag of the LRC files for this language. An entry in the list is structured as follows:
Language abbreviation (two characters according to ISO-639-1), colon, space, font name.
The font will then be used for all LRC texts that contain the corresponding la tag.
Example for Greek:
el: Segoe UI Black
TxtFont Name of the font The font for unsynchronized texts (TXT files)
TxtFontSize Number Font size
TxtFontColor Hexadecimal number six digits Color
FontBorderSizePlain Number Border size of the font for both LRC and TXT when no album cover is displayed
FontBorderColorPlain Hexadecimal number eight digits Transparency (one byte) and color (three bytes RGB)
FontBorderSizePic Number with album cover
FontBorderColorPic Hexadecimal number eight digits Color
TagFont Name of the font The font for the status displays (artist, title, year and playing time)
TagFontSize Number Font size
TagFontColor Hexadecimal number six digits Color (default: TagFontColor=$FFFFFF)
FontPath Path If (on Linux) a font does not work, it can help to enter the full path to the directory containing the font here. A path to additional fonts can also be useful for portable installations for other operating systems. Example:
FontPath=/usr/share/fonts/truetype/ubuntu
HideStatus on or off HideStatus=on hides the status display (only the brightening at the beginning of a song is still done if it is switched on)
LightenStatus on or off Brightening the status indicators at the beginning of a song
Fullscreen on or off Window or entire screen (Fullscreen=off or on).
If Fullscreen=on, the program can only be closed with Ctrl-C. It can be switched to windowed mode with the W key if this is not prevented with LockWindowMode. In windowed mode, the window can be scaled to full screen with Alt-Enter.
LockWindowMode on or off LockWindowMode=on prevents switching between windowed and full screen mode with the W key (the program then runs in the mode specified for Fullscreen)
DisplayBorderless on or off DisplayBorderless=on causes a borderless window to be created in window mode(Fullscreen=off).
DisplayWidth Number Window width
DisplayHeight Number Window height
HidePointer on or off HidePointer=on: Never show mouse cursor. This is useful if you only use the touchscreen in Fullscreen mode.
VolumeStretch Number (from -10 to 10) Asymmetrical spread of the volume control. 0 is linear, positive values stretch the quiet ranges and compress the loud ones. Permitted range -10 ... 10
VolumeLines on or off VolumeLines=on: Display auxiliary lines of the volume levels (so you can see the effect of VolumeStretch directly)
LargeIntro on or off LargeIntro=on: for use on small displays, shows year/artist/title at the beginning of each track as a very large scrolling text
IntroFont Name of the font The font for the scrolling text
IntroFontColor Hexadecimal number six digits Color for LargeIntro (default: IntroFontColor=0xFFFFFFFF)
EmptyLinesThresholdNumber (from 0.0 to 1.0)Threshold for the ratio of empty lines with a timestamp to text lines, above which these empty lines are considered to be end-of-line times. Default 0.31.
0.31 therefore means that all empty lines are not displayed if more than 31% of all lines with a timestamp contain no text.
EmptyLinesThresholdC Number (from 0.0 to 1.0) The same threshold for LRC files that contain a combined line with empty lines. Default 0.28.
HideSpaceLines on or off Hiding the lines that only contain the time stamp and one space
HTMLEntitiesTable Path/filename For texts with umlauts that originate from Asian sources and are coded as named HTML entities (e.g. ä as ä), a file with the list of encodings to be replaced can be specified here. In this file, each line contains an assignment in the form of the following example: auml=ä
PreLoadMusic on or off If the music files are read from very slow storage media, e.g. older USB flash drives, errors may occur during playback (individual frames of the music file are then repeated). PreLoadMusic=on causes the entire music track to be copied into the memory before the music begins. This operating mode also prevents the ID tag area at the beginning of the music file from being read during operation. This prevents otherwise possible brief interference noises when changing tracks due to incorrect synchronization with poorly coded ID3v2 tags.
PreLoadWhileScan on or off It is particularly time-critical for playback if the tags are re-read due to changes in the music directory and the cache of the cover images is rebuilt because data is written in the process. PreLoadWhileScan=on causes the PreLoad buffering to be carried out during tag reading, after which the setting selected by PreLoadMusic applies.
ShowMessages on or off Display diagnostic messages
(default: off)
MsgFont Name of the font The font for the diagnostic messages
MsgFontSize Number Font size
MsgFontColor Hexadecimal number six digits Color
LogFile Path/filename If a file name is specified here, all messages from the current program session are written to this log file, including those that are otherwise only displayed with ShowMessages=on.
CheckForUpdate on or off CheckForUpdate=on: When starting the program, check for an update here on the download page and display a message if one is available.
(Default: off)
ScanMode on or off Special function: only plays the track for a set period of time
(default: off)
ScanTime Number The response time in seconds for the ScanMode (default is 7)
ScanModeLines on or off Special function: Only play titles until a certain number of text lines have been displayed(ScanModeLines=on or off).
Only applies to LRC texts, for unsynchronized texts (TXT) the time from ScanTime is used.
ScanLinesToShow Number The number of lines (from a playing time of 2s) that are displayed for ScanModeLines
WriteMissing on or off Special function: WriteMissing=on causes a text file named MissingLyrics.txt to be written, listing all tracks for which no lyrics file is available. In addition, all music files are briefly tested and then closed. If there are any problems, the relevant file names are written to a text file called BrokenMusic.txt.