Latest WACUP public preview for x86 & x64 is build #21136 (March 9th 2025) (x86 & x64 changelogs)
Latest restricted WACUP beta release is build #21254 (March 29th 2025) (x86 & x64 changelogs)


NOTE: Beta testers are added in a limited & subjective manner as I can only support so many people as part of the beta test program to keep it useful for my needs.

Unless I think you're going to be helpful, not all requests will be accepted but might still be later on. Remember that beta testing is to help me & the limitations currently works for my needs for this project.

Author Topic: Options for the Lyrics Plug-in  (Read 647 times)

Aminifu

  • Beta Tester
  • Hero Member
  • *****
  • Posts: 1243
    • View Profile
Options for the Lyrics Plug-in
« on: March 25, 2025, 08:11:32 AM »
Hi dro,

As you know your lyrics plug-in (gen_lyrics.dll) creates text files for every song file that is played. These text files contain the song lyrics if lyrics are found online and are zero length files if no lyrics are found. Can you add to this plug-in's configuration options, an option to not create a text file if no lyrics are found? Can you also add an option to not create text files, even if lyrics are found?

Also, these files are given alpha-numeric names that have no clear relationship to the songs. Can you include the metadata %title% in the text file name or include the %title% on a separate line at the top of the included text when lyrics are found? If the song file doesn't contain the %title% metadata, then the file name could be used.
WACUP beta build v1.99.28.21254 (x86)
modified JVC Tape v1.2a modern skin
Windows 11 Home 64-bit v24H2
Logitech Z906 5.1 speaker system

dro

  • Admin / WACUP Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 4939
    • View Profile
    • WACUP (Winamp Community Update Project)
Re: Options for the Lyrics Plug-in
« Reply #1 on: March 26, 2025, 10:06:21 AM »
The way the cache works is all implementation details & it's already changed since it was first introduced so making it human readable isn't something I'm going to do for it as that's not the point of it. That's where a mode to try to store the lyrics into the file is still on the todo list. It's also why I'm using a hash based on a few factors instead of metadata for the filename as that makes things simpler for what I need to do whilst also avoiding creating potentially long filenames that cause other issues.

The point of the cache file is to avoid re-querying for the lyrics whether it was able to be found or not (hence the empty file) otherwise it can be triggering multiple online look-ups when that's just not a good use of resources especially if there's no results. The one thing I have forgotten to do is have the cache get pruned to prevent it growing too large (like is done for the artwork) so I'll need to add that & I'll also consider adding options like with the waveform seeker plug-in where it has a clear cache & clear cache on exit options which doesn't do what you're wanting but balances things out a bit between the request & what I'm wanting the cache to do.

Aminifu

  • Beta Tester
  • Hero Member
  • *****
  • Posts: 1243
    • View Profile
Re: Options for the Lyrics Plug-in
« Reply #2 on: March 27, 2025, 04:37:56 AM »
Ok, I better understand why you have things implemented the way you have. If you decide to add the options mentioned, they could be a useful addition instead of what I asked for. After I add or correct the metadata in my files, I make them read-only to prevent inadvertent changes. So, a mode to store lyrics in the files themselves would not be useful for me.  I don't need to prune the entire cache, I just wanted to prevent the empty files. What would be considered too large a cache?

Sometime I use playlists that only contain instrumental songs. It would be just as fast to disable the lyrics plug-in in this case, than enabling an option to not create text files. Those that mix file files with and without lyrics in the same playlist will have to find their own solutions for not wasting directory name space on intentional empty files. :)

I have been deleting the empty files to force re-querying for lyrics in case they may be found later, when the same files are played again. I understand why you don't want to trigger multiple online look-ups. I think it would be worth the resources used if lyrics are found later. I will stop deleting the empty files, if you think the re-querying will lead to crashes or other processing errors in WACUP. Wasting directory name space is worth it if it prevents WACUP processing errors, imo.

During a session, I have been adding the song titles above the start of the lyrics in the text files, after they finish playing. From time to time, there are errors in the lyrics found online that I have been correcting manually. During a session, I make notes of which files need corrections and these titles help me find these files faster in between sessions, when I make the corrections.

Reasonable people can always disagree on the best way to handle things. Whether I agree with your design decisions or not, I want you to know that I appreciate all you have done and continue to do that makes WACUP better than Winamp was, imo. I don't expect WACUP to do everything the way I would like things done. Expect for real bugs, I learn to work with the ways things are done in WACUP and the skins. In case of skins, I sometimes make small changes in some of their image and script files, when possible, to have them look and work more to my liking, for my personal use.
« Last Edit: March 27, 2025, 05:39:21 AM by Aminifu »
WACUP beta build v1.99.28.21254 (x86)
modified JVC Tape v1.2a modern skin
Windows 11 Home 64-bit v24H2
Logitech Z906 5.1 speaker system

dro

  • Admin / WACUP Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 4939
    • View Profile
    • WACUP (Winamp Community Update Project)
Re: Options for the Lyrics Plug-in
« Reply #3 on: April 09, 2025, 05:22:11 PM »
I don't need to prune the entire cache, I just wanted to prevent the empty files. What would be considered too large a cache?
I don't focus much on the size of the cache folder though the changes made are based on the lifetime of the files instead of basing it on the size which should under normal playback not cause things to grow too large whilst avoiding re-querying things too often if there's been no changes.

I have been deleting the empty files to force re-querying for lyrics in case they may be found later, when the same files are played again. I understand why you don't want to trigger multiple online look-ups. I think it would be worth the resources used if lyrics are found later. I will stop deleting the empty files, if you think the re-querying will lead to crashes or other processing errors in WACUP. Wasting directory name space is worth it if it prevents WACUP processing errors, imo.
You can remove the files as you need to & my code shouldn't be crashing. I was just trying to explain why it does things like it does for the moment especially since it's also quicker to check vs storing things in db files (which have their whole set of downsides which is why I also use a folder cache instead of db for artwork as ml_local did).