Foo_openlyrics - An open-source lyric display panel for foobar2000

Overview

foo_openlyrics

An open-source lyrics plugin for foobar2000 that includes its own UI panel for displaying and sources for downloading lyrics that are not available locally. It is intended to be a replacement for LyricShowPanel3 so it is fully-featured and supports lyric searching, saving and editing directly from within foobar2000.

Features

  • Buttery-smooth lyric scrolling (either horizontally or vertically)
  • Supports retrieving lyrics from local files, ID3 tags or the internet
  • Customise the font & colours to perfectly suite your layout & theme
  • Easily edit lyrics directly inside foobar2000 with built-in support for timestamps
  • Check the saved lyrics of any track in your library (whether it is currently playing or not)
  • Apply common edits (such as removing blank lines) in just 2 clicks
  • ...and more!

Screenshots

Fonts & colours are fully configurable

Horizontal scrolling is also supported

The editor window

How to install foo_openlyrics

  1. Find the latest release on Github.
  2. Download the fb2k-component file attached to the release (don't worry about the debug_symbols zip file).
  3. Double-click on the file you just downloaded. Assuming foobar2000 is installed, it should open up with the installation dialog. Restart foobar2000 when asked.
  4. Add the "OpenLyrics Panel" to your layout.

Why another lyrics plugin?

At the time that I started this, the most widely-used lyrics plugin was foo_uie_lyrics3 which had several built-in sources but those had largely stopped working due to the relevant websites doing down or otherwise becoming generally unavailable. The original developer seemed to be nowhere in sight though and the source for the plugin did not appear to be available anywhere online. There is an SDK for building one's own sources for foo_uie_lyrics3 but building plugins for plugins didn't really take my fancy. Other (more up-to-date) plugins did exist but were mostly distributed by people posting binaries for you to download from their Dropbox on Reddit. Running binaries published via Dropbox by random people on Reddit did not seem like the most amazing idea.

Contributing

Please do log an issue or send a pull request if you have found a bug, would like a feature added. If you'd like to support the project you can also make a small donation.

Issues
  • [Help]show the current in different color

    [Help]show the current in different color

    portable version of foobar2000.

    both in metadata and .lrc file the other plugin works so that is not the problem it something with my config and foo_openlyrics needs to change its defaults

    Tested Results. When Testing only one of these were applied as metadata as you said.

    1. Metadata field SYNCEDLYRICS with timed Lyrics WORKS

    2. LYRICS with timed Lyrics WORKS

    3. even in UNSYBCEDLYRICS metadata field with timed lyrics synced lyrics WORKS

    4. But when using Just .lrc not even unsynced lyrics show

    5. I have .lrc in the same directory with the song both with the same name.

    I wonder, if you edit lyrics (without the tags available, so it doesn't find anything), save them, and then restart foobar or play another track and come back (just so it reloads from fresh), does it find the lyrics you just saved? Does that save to the configuration directory to the expected file?

    No lyrics shows when I deleted the metadata field and played it with foobar2000 but the lyricspanel was showing synced lyrics

    foo_openlyrics can read it if it is in same directory?

    It is a common practice to have .lrc and some in same folder.

    LyricsPanel caches it in the foobar2000 folder iirc

    Now I use [%fillename%] I have "Save to the same directory as the track"

    INFO-OpenLyrics: Failed to read search-avoidance info: Unsupported format or corrupted file
    INFO-OpenLyrics: Searching for lyrics for artist='Taylor Swift', album='Taylor Swift', title='Picture To Burn'...
    INFO-OpenLyrics: Save file name format '[%filename% ]' with directory class 'TrackFileDirectory' evaluated to 'file://X:\xx\#1 Taylor Swift (2006)\Picture To Burn '
    INFO-OpenLyrics: Querying for lyrics in file://X:\xx\#1 Taylor Swift (2006)\Picture To Burn .lrc...
    INFO-OpenLyrics: Querying for lyrics in file://X:\xx\#1 Taylor Swift (2006)\Picture To Burn .txt...
    INFO-OpenLyrics: Found 0 lyrics in local files: file://X:\xx\#1 Taylor Swift (2006)\Picture To Burn 
    INFO-OpenLyrics: Failed to retrieve lyrics from source: Local files
    INFO-OpenLyrics: Searching for lyrics in tag: LYRICS
    INFO-OpenLyrics: Searching for lyrics in tag: SYNCEDLYRICS
    INFO-OpenLyrics: Searching for lyrics in tag: UNSYNCEDLYRICS
    INFO-OpenLyrics: Searching for lyrics in tag: UNSYNCED LYRICS
    INFO-OpenLyrics: Found lyrics in tag: UNSYNCED LYRICS
    INFO-OpenLyrics: Successfully retrieved lyrics from source: Metadata tags
    INFO-OpenLyrics: Parsing lyrics text...
    INFO-OpenLyrics: Loaded lyrics already form a valid UTF-8 sequence
    INFO-OpenLyrics: Parsing LRC lyric text...
    INFO-OpenLyrics: Lyric loading complete
    
    opened by Rexadev 12
  • [FR] Use USLT/SYLT tag instead of the generic TXXX for better compatibility

    [FR] Use USLT/SYLT tag instead of the generic TXXX for better compatibility

    Basically what the title says. I found out that outside fb2k, other music players and even my synced iPod just don't read the generic TXXX tag as a lyrics tag. This can be improved using dedicated tags like USLT for unsynchronized lyrics and SYLT for synchronized lyrics. Songs with these tags have no problems displaying lyrics everywhere you can read it.

    I don't know if this feature is viable, but it will be a great step forward for a better standardized music library.

    More info about the usage of the two tags here: ID3v2.3.0 Informal standard

    feature 
    opened by hondrus31 11
  • Feature request: Ability to search for lyrics from track context menu

    Feature request: Ability to search for lyrics from track context menu

    Hi Jacques,

    I just found your foobar component openlyrics and must say: I am very impressed. Keep up the excellent work, plz!!

    The plugin seems very comprehensible, there is just one thing I miss: there is no way to add a shortcut enabling users to start a search. This would be especially useful for batch processing a big numer of files unattendedly. Is there a chance to implement this?

    For what its worth: I just donated two books on your buymeacoffee site. :)

    Best to you and this great project!!!

    feature 
    opened by rk-kontur 11
  • When lyrics are saved, track number is set to 0

    When lyrics are saved, track number is set to 0

    Strange observation: When a track is played without a track number (%track% doesn't exist), and lyrics a re searched and found, the track number will be set to 0 in the moment the lyrics are saved.

    Steps to reproduce:

    1. Configure OpenLyrics for auto-save to tag
    2. Play a track where
      • %track% (track number) doesn't exist
      • but lyrics exist on one of the sources

    Expected: 3. OpenLyrics searches for lyrics and finds some 4. OpenLyrics saves lyrics to tag 5. No other tags are touched

    Observed: 3. OpenLyrics searches for lyrics and finds some 4. OpenLyrics saves lyrics to tag 5. %track% (track number) is updated and set to 0 (zero)

    bug 
    opened by SpamReceiver 10
  • Feature request: Remove asian text in brackets

    Feature request: Remove asian text in brackets

    Some sources add information in asian text like this [00:00.00]I Will - Alison Krauss (艾莉森·克劳丝)/Tony Furtado which in this case I suppose is the artist's name in Chinese.

    In any case, those look like double byte characters so they should't be too hard to filter out (space bracket text bracket)

    opened by HeresJonny 6
  • Unable to fetch lyrics from Musixmatch

    Unable to fetch lyrics from Musixmatch

    I can't retrieve lyrics from Musixmatch - I tried retrieving token both automatically and manualy - neither work. As far as I can tell, the token's okay because it works in lyrics-plus. For referrence, using the same token:

    In OpenLyrics: image

    In Spotify: image

    The token's 54 characters long if that helps

    opened by TheMayhem6328 6
  • Saved file is not loaded

    Saved file is not loaded

    I have a file for a specific song save in the same folder and does not load. I rescanned manually as the error suggested and saved the file again but it always come up with the same error. Clipboard01

    enhancement 
    opened by gabriels1963 5
  • When bulk search for lyrics the saved lyric for a song have wrong timestamp

    When bulk search for lyrics the saved lyric for a song have wrong timestamp

    Hi,

    I encountered a problem of bulk search for lyrics for a song.

    When selecting all the tracks in the Taylor Swift - Fearless (Taylor's Version) album, right click to search for lyrics, the lyric for Forever & Always (Piano Version) (Taylor’s Version) get incorrect timestamp in it(It's from QQ Music, because I remove the other sources from the search order). But when I right click to search for lyrics(manually) in the OpenLyrics UI, the lyric from QQ Music has the right timestamp.

    Playlist right click bulk search(or OpenLyrics UI right click Search for lyrics) result lyric file(incorrect timestamp)

    [ti:Forever & Always]
    [ar:Taylor Swift]
    [al:Fearless (Platinum Edition)]
    [by:]
    [offset:0]
    
    [00:00.00]Forever & Always - Taylor Swift (泰勒·斯威夫特)
    [00:00.33]Lyrics by:Taylor Swift
    [00:00.67]Composed by:Taylor Swif
    [00:01.01]Once upon a time
    [00:02.75]I believe it was a Tuesday when I caught your eye
    [00:06.25]And we caught onto something
    [00:07.99]I hold onto the night
    [00:10.41]You looked me in the eye and told me you loved me
    [00:14.51]Were you just kidding
    [00:15.71]'Cause it seems to me
    [00:17.80]This thing is breaking down we almost never speak
    [00:21.14]I don't feel welcome anymore
    [00:23.08]Baby what happened
    [00:24.10]Please tell me
    [00:25.07]'Cause one second it was perfect
    [00:26.98]Now you're halfway out the door
    [00:29.80][01:29.76]And I stare at the phone he still hasn't called
    [00:34.20][01:34.26][03:02.40]And then you feel so low you can't feel nothing at all
    [00:38.39][01:38.21]And you flashback to when he said forever and always
    [00:44.09][01:44.14]Oh and it rains in your bedroom
    [00:47.88][01:47.82][02:46.03][03:16.00]Everything is wrong
    [00:49.75][01:49.73][02:47.87][03:17.90]It rains when you're here and it rains when you're gone
    [00:53.47][01:53.45][02:51.50][03:21.58]'Cause I was there when you said forever and always
    [01:00.75]Was I out of line
    [01:02.38]Did I say something way too honest made you run and hide
    [01:06.25]Like a scared little boy
    [01:08.01]I looked into your eyes
    [01:10.28]Thought I knew you for a minute now I'm not so sure
    [01:15.59]So here's to everything coming down to nothing
    [01:19.46]Here's to silence that cuts me to the core
    [01:23.01]Where is this going
    [01:25.26]Thought I knew for a minute but I don't anymore
    [01:59.54]You didn't mean it baby I don't think so
    [02:25.37]Oh back up baby back up
    [02:28.66][02:36.12]Did you forget everything
    [02:33.12]Back up baby back up
    [02:43.80]'Cause it rains in your bedroom
    [02:57.69]Oh I stare at the phone he still hasn't called
    [03:06.31]And you flashback to when we said forever and always
    [03:13.58]And it rains in your bedroom
    [03:27.53]You didn't mean it baby
    [03:31.43]You said forever and always yeah
    

    OpenLyrics UI right click search for lyrics(manually) (correct timestamp)

    [ti:Forever & Always (Piano Version)]
    [ar:Taylor Swift]
    [al:Fearless (Platinum Edition)]
    [by:]
    [offset:0]
    
    [00:00.00]Forever & Always (Piano Version|Taylor's Version) - Taylor Swift (泰勒·斯威夫特)
    [00:05.11]Lyrics by:Taylor Swift
    [00:10.23]Composed by:Taylor Swift
    [00:15.34]Once upon a time
    [00:17.37]I believe it was a Tuesday when I caught your eye
    [00:21.37]We caught onto something
    [00:23.12]I hold onto the night
    [00:25.64]You looked me in the eye and told me you loved me
    [00:30.32]Were you just kidding
    [00:31.41]'Cause it seems to me
    [00:33.78]This thing is breaking down we almost never speak
    [00:37.32]I don't feel welcome anymore
    [00:39.39]Baby what happened
    [00:40.64]Please tell me
    [00:41.64]'Cause one second it was perfect
    [00:43.67]Now you're halfway out the door
    [00:46.77][01:51.68][03:37.24]And I stare at the phone he still hasn't called
    [00:51.77][01:56.10][03:41.81]And then you feel so low you can't feel nothing at all
    [00:55.86][02:00.51]And you flashback to when he said "forever and always"
    [01:03.14]Oh and it rains in your bedroom everything is wrong
    [01:08.20][02:12.93][03:26.55][03:58.59]It rains when you're here and it rains when you're gone
    [01:12.48][02:17.11][03:30.74][04:03.03]I was there when you said "forever and always"
    [01:20.04]Was I out of line
    [01:21.84]Did I say something way too honest made you run and hide
    [01:26.09]Like a scared little boy
    [01:28.03]I looked into your eyes
    [01:30.43]Thought I knew you for a minute now I'm not so sure
    [01:35.95]So here's to everything coming down to nothing
    [01:40.20]Here's to silence that cuts me to the core
    [01:44.01]Where is this going
    [01:46.53]Thought I knew for a minute but I don't anymore
    [02:08.25]And it rains in your bedroom everything is wrong
    [02:23.47][04:09.36]You didn't mean it baby
    [02:27.55]I don't think so
    [02:33.03]Oh oh-oh oh-oh-oh
    [02:42.78]Oh-oh oh-oh-oh oh
    [02:50.96][02:58.96][03:06.91][03:14.90]Back up baby back up
    [02:54.21][03:02.21]Did you forget everything
    [03:10.53]Please back up oh back up
    [03:22.12][03:54.03]'Cause it rains in your bedroom everything is wrong
    [03:46.11]And you flashback to when we said "forever and always"
    [04:13.34]You said "forever and always" yeah
    

    This happens on foobar2000 v1.6.7 with OpenLyrics 0.10.

    Thanks.

    awaiting confirmation 
    opened by awghdbs 5
  • Prevent unnecessary searches.

    Prevent unnecessary searches.

    I personally use the tag %type% to tag tracks in my library as either vocal, instrumental, etc. and I think it'd be convenient if the component could evaluate each track using title formatting before performing the search so it doesn't bother to try searching for lyrics for instrumentals and end up mistagging them.

    So in my case it'd be: "Do not search if「$strcmp(%type%,'Instrumental')」"

    I'm just checking out this component and I love it! It feels slick and works very smoothly, thanks for making it! :)

    enhancement 
    opened by dreampillet 5
  • Regarding Problems with Editing and Syncing Lyrics in the Lyric Editor

    Regarding Problems with Editing and Syncing Lyrics in the Lyric Editor

    In Lyric Editor, when I click on "Sync line using 'offset' tag" button (which is supposed to "add an 'offset' tag that synchronizes all lines" according to the hover-on description), I get an error message saying "The currently-selected line does not have a timestamp", I feel like this is probably not intended? (because the offset tag does not depend on the user to select a line, it's global for all lines)

    Also, when editing LRC lyrics, I found that for lines with only a timestamp and empty lyrics, for example (2nd line):

    [00:12.00]Line 1 lyrics
    [00:17.20]
    [00:21.10]Line 3 lyrics
    

    There is somehow an extra space after the timestamp when that space doesn't exist in the original lyrics (for example: "[00:17.20]" becomes "[00:17.20] ")

    opened by daoxi 4
  • Remove Chinese characters

    Remove Chinese characters

    A lot of the lyrics contain Chinese characters especially for the song title or band name. Is there a simple way to auto-remove those characters with a right-click?

    feature 
    opened by onanboy 4
  • Feature suggestion: Exclude tracks by genre

    Feature suggestion: Exclude tracks by genre

    Some type of music will always be instrumental, like most Jazz and classical music. It would be great to exclude tracks by genre (user definable) from automated and batch searches.

    feature 
    opened by HeresJonny 2
  • Don't insert unnecessary & unwanted newlines in lyrics returned from genius.com

    Don't insert unnecessary & unwanted newlines in lyrics returned from genius.com

    From AndrejD on reddit: https://www.reddit.com/r/foobar2000/comments/mm70rb/i_made_an_opensource_alternative_to/ib0rkpd/

    Thanks for sharing. I have two problems: When it automatically pulls lyrics from genius.com, it auto-deletes the blank lines between verses, worsening readability. It also adds a line-break before and after italicized and boldened parts of the lyrics. Is there a way to disable this?

    As an example: https://genius.com/Bad-bunny-and-chencho-corleone-me-porto-bonito-lyrics

    bug 
    opened by jacquesh 0
  • Add some automated testing

    Add some automated testing

    Recent releases have introduced bugs. Its probably time for us to introduce some automated tests to at least reduce the chance of this happening in future.

    feature 
    opened by jacquesh 0
  • Update the wording on the

    Update the wording on the "Save Directory" setting

    It applies both to saving and loading so it should probably either mention that explicitly or at least not say that it is specifically for saving.

    Originally posted by @Rexadev in https://github.com/jacquesh/foo_openlyrics/issues/115#issuecomment-1146615502

    opened by jacquesh 0
  • Consider not searching if fb2k is minimised

    Consider not searching if fb2k is minimised

    Suggested in #129, this would would searching if you just leave fb2k running in the background. It would only skip searching if fb2k is actually minimised though, not if its maximised and simply behind other windows.

    This has the downside that if you have fb2k minimised, a track starts that you don't have lyrics for, and you maximise it to see the lyrics, you'd have to first wait for the search (rather than probably having lyrics available already by the time you maximised the window).

    It'd be a fairly minor improvement I expect, but it should be very simple to do. Just set a flag and initiate lyric search on draw rather than immediately when a track starts.

    enhancement 
    opened by jacquesh 0
Releases(v1.2)
Owner
Jacques Heunis
Jacques Heunis
A push-button control panel for Zoom

Zoom Control Panel A push-button control panel for Zoom This repo contains files for building a push-button control panel for Zoom.

Elena Long 49 May 7, 2022
Yet another alarm (control) panel for Home Assistant.

HASS-YAAP Yet another alarm (control) panel for Home Assistant. Change alarm system mode (away, home, night, disarmed) Welcome people arriving by thei

Paul-Vincent Roll 48 Dec 4, 2021
Display array is a board that sets 6 ST7735 display with a resolution of 80x160px in a linear array sharing the clock, data, rs, backlight pins together

The display array is a board that sets 6 ST7735 display with a resolution of 80x160px in a linear array sharing the clock, data, rs, backlight pins together, and leaving individual access to the cs lines of each display, This board allows you to display images with a resolution of 480x160px.

Josue Alejandro Gutierrez 61 Jun 20, 2022
Next gen. of NekoCal: An open-source hackable and programmable e-paper display

NekoInk NekoInk is an open-source, programmable, and versatile E-paper display platform. It offers connectivity options to various type of E-paper scr

Wenting Zhang 39 Jun 25, 2022
This project seeks to develop a low-cost, open-source braille display

This project seeks to develop a low-cost, open-source braille display. It is estimated that its cost is reduced to more than 90% compared to the cost of the cheapest screens that exist in the market today. // Este proyecto busca desarrollar una pantalla braille de código abierto y de bajo costo. Se estima que su coste se reduce a más de un 90%.

brailletouch 7 Feb 3, 2022
An open collection of tools and experiments for rendering wide-gamut scene-linear data into an image for an SDR or HDR display device.

Open Display Transform An open collection of tools and experiments for rendering wide-gamut scene-linear data into an image for an SDR or HDR display

Jed Smith 111 Jun 27, 2022
Open-source and open-hardware scientific RPN calculator

OpenRPNCalc Open-source and open-hardware scientific RPN calculator Introduction OpenRPNCalc is a scientific calculator based on STM32 microcontroller

Anton Poluektov 135 Jun 21, 2022
A fully-functional open source and open hardware mechanical USB computer keyboard with only three keys!

threeboard threeboard is a fully-functional open source and open hardware mechanical USB computer keyboard with only three keys. It supports multiple

Conor Taylor 97 May 23, 2022
Send messages to a LED Matrix display through Telegram. Inspired by a tweet from Smarter Every Day

Send messages to a LED Matrix display through Telegram. Inspired by a tweet from Smarter Every Day

Brian Lough 22 Jun 13, 2022
Split flap display Arduino library

SplitFlapDisplay Split flap display Arduino library Introduction This is a simple high level library to drive split flap display letters with Arduino.

Stefano Guglielmetti 19 May 31, 2022
Lotus 1-2-3 R4D Display Driver for DOSEMU

Lotus 1-2-3 R4D Display Driver for DOSEMU2 This is a WIP display driver for Lotus 1-2-3 R4D to enable support for arbitrary text resolutions in DOSEMU

Tavis Ormandy 106 Jun 13, 2022
Breakout game for Raspberry Pi Pico with Pimoroni Pico Display pack

breakout_rpi_pico Breakout game for Raspberry Pi Pico with Pimoroni Pico Display pack Prebuilt binary (breakout.uf2) is here. To build your own binary

null 18 Jan 17, 2022
Using the LilyGo EPD 4.7" display to show OWM Weather Data

LilyGo-EPD-4-7-OWM-Weather-Display Using the LilyGo EPD 4.7" display to show OWM Weather Data Version 2.72 Improved Icon shapes and positioning Adjust

G6EJD 13 Apr 2, 2021
VGA/TV display on Raspberry Pico

PicoVGA - VGA/TV display on Raspberry Pico

Miroslav Nemecek 80 Jun 23, 2022
A tiny external monitor for PC using STM32 and ST7789. Connects to PC over USB and displays the captured screen on ST7789 (240x240) display.

STM32 Tiny Monitor A super tiny monitor for your PC, suitable for your pet ant. A python script sends the captured screen over USB to the STM32 microc

Avra Mitra 61 Jul 2, 2022
A Flutter Web Plugin to display Text Widget as Html for SEO purpose

SEO Renderer A flutter plugin (under development) to render text widgets as html elements for SEO purpose. Created specifically for issue https://gith

Sahdeep Singh 88 Jun 17, 2022
code for split-flap display

split-flap 3D-files here: https://www.prusaprinters.org/prints/69464-split-flap-display General The display's electronics use one esp01 as the master

David Königsmann 146 Jun 23, 2022
Fully Featured Time Circuits Display from Back to the Future

Time Circuits Display This Time Circuits Display has been meticulously reproduced to be as accurate as possible to the one seen in the Delorean Time M

John 51 Jun 24, 2022
A hacky e-ink display for Home Assistant sensors

This is a hacky PlatformIO project in which Home Assistant data is displayed in an e-ink display. Useful Links Display Hardware on Tindie Official Git

null 53 May 29, 2022