Open ZYinMD opened 9 months ago
Custom components should remain in place if you installed them correctly.
https://wiki.hydrogenaud.io/index.php?title=Foobar2000:How_to_install_a_component
If yours got removed, I suspect you might have installed them manually in the main fb2k folder\components. If that's incorrect and you think you've done nothing wrong, report it to the fb2k dev on hydrogenaud.io
As for this metadata issue, not sure what's going on there. People can try force reloading all tags by using the properties dialog>Tools button>Reload info.
I'm pretty sure with the 64 bit version of foobar2000, custom components are deleted when upgrading from version 1.x to 2.x. In my test, a clean new portable 1.6.17 → install OpenLyrics → upgrade to 2.1.2 → OpenLyrics are gone.
32bit may be different, but I've always been on 64bit The reason seems to be upgrading from 32 to 64 bit, and I don't know how to test otherwise, because https://www.foobar2000.org/old only has x86 for v1.x, and x64 for v2.x.
Probably not deleted but ignored. 32bit uses a folder named user-components
inside the profile
folder of a portable install. 64bit fb2k uses user-components-x64
.
And you obviously can't move the components. They are completely incompatible You need to grab all the updated 64bit versions -if they even exist - yourself.
@marc2k3 thanks for the info, yes you're right, they're ignored. I was mistaken in my in my previous comment, now fixed.
But issue in OP stays the same, with clear steps to reproduce. I also tested what would happen if I stay 32bit, result is the same.
Updated OP to make it more explicit.
Did you try my suggestion from my original post?
People can try force reloading all tags by using the properties dialog>Tools button>Reload info.
It's not clear that this is actually an openlyrics issue and not a fb2k issue. Openlyrics just reads the tags as reported by fb2k. If fb2k is reporting no lyrics (or just '.') in its own UI, then that's what openlyrics is going to display.
If you can confirm that fb2k shows the correct lyrics in the tag between steps 3 & 4, but shows '.' at step 10 (as you did in your original screenshot) then the problem is with fb2k and you should ask on the hydrogenaudio forums as @marc2k3 suggested (thanks for the help btw!). You can/should actually test this without getting openlyrics involved at all: You can just edit the tags directly in the Properties window shown in your screenshot.
Since this is about saving and loading tag values, component installation shouldn't make any difference. You should be able to verify the existence of lyrics (or the lack thereof) using just fb2k and/or some 3rd party program like kid3 or VLC or whatever.
On the other hand if fb2k shows the correct tag value in the Properties, but openlyrics isn't loading them correctly, then that would probably be an openlyrics issue.
@marc2k3 Yes "Reload info" does work. I added it as the first item in the "what fixes the issue" in OP, but didn't notify you. Thanks
@jacquesh thanks for the super insightful comment. I tested manually created tags, without involving OpenLyrics, and had very interesting findings.
I first created these random tags:
Then did the upgrade. Here's what happened after the upgrade:
So the 2 tags LYRICS
and UNSYNED LYRICS
got special treatments! Mind blowing...
I will file report on hydrogenaud.io, but first I want to see if you have more comments about my findings.
I also want to ask you about this:
Here, you mentioned that UNSYNED LYRICS
are strongly recommended as the tag to store lyrics, even for synced ones. Did you say that because UNSYNED LYRICS
is the only one in this table? Do you think this table is still up-to-date?
There is some history about period characters being used for lyrics in foobar2000 1.x. Before 1.3.0, fb2k would load all metadata from files and these would be cached in the library/playlist files for faster performance. But with larger collections and what are consider to be oversized tags, this would lead to increased memory usage and would become unusable for some.
So 1.3.0 introduced a large change and would not not cache them and they would be unavailable via standard title formatting functions. The period was used to represent that the tag existed but more work had to be done to actually display it in full.
The 1.3 SDK contained new methods which component devlopers were encouraged to implement where oversized tags would be displayed in full. I'm not searching but this component must implement these.
If people relied on old components that were never going to updated with newer APIs in the 1.3 SDK, they could edit the content of a file named LargeFieldsConfig.txt
inside their profile folder. This would revert to old behaviour. If you check the contents of that file on a 1.6.x install, it will show the tag/size limits.
foobar2000 v2 uses a complete new sqlite backend for caching and oversized tags are once again displayed in full and those APIs for 1.3.x and later are no longer necessary. But obviously they continue to work and are necessary if you're supporting 1.6.x and 2.0+ at the same time.
@marc2k3 oh that's interesting, I didn't know about LargeFieldsConfig.txt
. Awesome, thanks! In general openlyrics tries to use the new API and falls back to the older API that loads all fields for exactly this reason.
@ZYinMD Correct, UNSYNCED LYRICS
is strongly recommended because in mp3 files its the only one that gets stored in a dedicated frame. Some other media players will only look for that USLT frame, meaning that if you stored your lyrics elsewhere they would not be detected. I assume that table is indeed up-to-date.
@jacquesh thanks, so, the 2 things below are both true, but they're apples and oranges, unrelated to each other, right?
UNSYNCED LYRICS
is stored in a dedicated frame, while LYRICS
is notUNSYNCED LYRICS
and LYRICS
are somehow turned into .
, but the other tags are not (for instance SYNCED LYRICS
)I'm much less sure about the 2nd point, but yes it would seem so.
but the other tags are not (for instance SYNCED LYRICS)
Well that's no mystery. I did say to check the contents of LargeFieldsConfig.txt
.
# Any changes in this file will take effect on next foobar2000 startup.
# Note, size limit values are in UTF-8 bytes, not characters!
# Note, field names can be enclosed in quotation marks to include trailing spaces etc.
# Size limit for meta fields that appear in the basic fields list
basicMetaMax=2000
# Size limit for meta fields that do not appear in either list
defaultMetaMax=1000
# Size limit for tech info fields
infoMax=200
# List of basic meta fields - essential info such as artist & title
fieldBasic=album
fieldBasic=album artist
fieldBasic=artist
fieldBasic=composer
fieldBasic=conductor
fieldBasic=date
fieldBasic=discnumber
fieldBasic=genre
fieldBasic=keywords
fieldBasic=performer
fieldBasic=producer
fieldBasic=style
fieldBasic=title
fieldBasic=totaldiscs
fieldBasic=totaltracks
fieldBasic=tracknumber
# List of spam meta fields - rarely useful stuff that *never* gets cached
fieldSpam=accurate rip
fieldSpam=aucdtect
fieldSpam=biography
fieldSpam=cuesheet
fieldSpam=eac logfile
fieldSpam=itunes_cddb_1
fieldSpam=itunmovi
fieldSpam=log
fieldSpam=logfile
fieldSpam=lyrics
fieldSpam=unsynced lyrics
The last 2 are lyrics related. Any other variant gets a free pass.
When upgrading from foobar2000 v1.x to v2.x, lyrics stored in tags of all songs in all playlists are turned into
.
(see screenshot) even though the files on disk aren't actually modified and the data in tag is unchanged.Steps to reproduce
UNSYNCED LYRICS
tag is used, can also customize the tag name).
.
and the lyric panel also shows.
as lyric content.What can fix the tags in the 2.1.2 instance:
What doesn't fix the tags in the 2.1.2 instance:
If you remove a problematic song from the playlist, then add it back, the tag won't be fixed.
Expected behavior
.
.
, OpenLyrics should still be able to parse itVersions
foobar2000 version: 1.6.17 (can only find x86) upgrading into 2.1.2 (either x86 or x64 will reproduce) OpenLyrics version: 1.8
Debug logs
First launch after upgrade (without OpenLyrics installed): nothing notable in log
Relaunch after installing OpenLyrics: nothing notable in log
When playing a song with
.
as lyric:Things seem normal, but Lyric panel just shows
.