TT-ReBORN / Georgia-ReBORN

A Clean · Full Dynamic Color Reborn · Foobar2000 player
MIT License
614 stars 30 forks source link

Replacing LSP3 by Eslyric #75

Closed BEST8OY closed 2 years ago

BEST8OY commented 2 years ago

https://github.com/ESLyric/release It is much better than LSP3.

TT-ReBORN commented 2 years ago

I probably won't be replacing LSP3 and implementing ESLyric. Still waiting for foo_openlyrics ( which is kinda the best atm? ) to have radio support and 64 bit.

-TT

BEST8OY commented 2 years ago

I probably won't be replacing LSP3 and implementing ESLyric. Still waiting for foo_openlyrics ( which is kinda the best atm? ) to have radio support and 64 bit.

-TT

Yeah OpenLyric is pretty good. Just FYI if you didn't check ESLyric Git page ESLyric is being maintained and currently it does support x64. And its advantage over OpenLyric is being modular so you can add your own sources if you know JS.

TT-ReBORN commented 2 years ago

Ok, I took a look and it's really simple if you want to do it yourself. First install the ESLyric component and remove the Lyric Show 3 component.

Open gr-lyrics.js and replace variable: const lyricShow3Loaded = utils.CheckComponent('foo_uie_lyrics3'); with: const esLyricLoaded = utils.CheckComponent('foo_uie_eslyric');

Now replace the variable in function loadLyrics() { and function lyricShow3Save(metadb) { lyricShow3Loaded to esLyricLoaded .

and in function lyricShow3Save(metadb) { fb.RunMainMenuCommand('View/Lyrics Show 3/Save'); to fb.RunMainMenuCommand('View/ESLyric/Panels/Save Lyric');

Now go to foobar preferences top menu File > Preferences or Ctrl + P. Display > Columns UI > Layout. Remove ( right click > remove ) the old LSP3 Panel in the second Vertical splitter and add right click on the second Vertical splitter > Insert panel > Panels > ESLyric Click on ESLyric and deactivate the Show Caption setting. Still in foobar's preferences, go to Tools > ESLyric > Lyric Option and click on Scheme: Autosave after loading.

Restart the theme and now Georgia-ReBORN will use ESLyric.

Well most sources are Chinese but it has Genius, AZLyrics and MiniLyrics... Would be cool to have more like the foo_multisource component.

-TT

BEST8OY commented 2 years ago

Well, all sources are Chinese, so it's not good for most people :(

-TT

Thanks for your thorough help. About sources ESLyric has the same sources as OpenLyric and even more You can compare them. https://github.com/ESLyric/scripts/tree/main/searcher https://github.com/jacquesh/foo_openlyrics/tree/184ba88c1915b3f85dcf521be448d41af12cc534/src/sources Since now I can implement ESLyrics, I close the topic.

TT-ReBORN commented 2 years ago

Btw, you need to use the version from the Beta testing thread and not the one from the main Github page.

And tomorrow I will release a new version ( Beta 9 ) which will be really good! So wait until tomorrow when you want to use ESLyrics with my theme!

-TT

TT-ReBORN commented 2 years ago

I have just checked and it also has radio streaming capability which OpenLyrics is missing, this is a good thing. Maybe I will replace it, but it needs a little bit more sources, so it's promising!

-TT

a1waysbeta commented 2 years ago

Would be cool to have more like the foo_multisource component.

You can try changing the value of experimental.prel.source.lyrics3 to 1 inside ESLyric's advanced settings, and also copy foo_lyricsource (or foo_multisource) to the same directory as ESLyrics.dll.

However, the first recommendation is still to find the interface to the lyrics website, write new lyrics source using js language, Git repository PR. Three of the Chinese lyrics sources are equally searchable for a large number of English song lyrics.

Some of the lyrics sites are not accessible worldwide, perhaps limited to the country where the site is located, so this whole lyrics source thing will have to be a joint effort.

BEST8OY commented 2 years ago

@TT-ReBORN I just reoppend the issue because if you are considering implementing ESLyric, this is something worth mentioning. If I want ESLyric to work, In "Lyric option", "Scheme" must be on "Autosave after loading" and it doesn't work on "Manual" mode which means the temporarly loaded lyric in ESLyric doesn't load in theme. So as expected it need some extra work for fully implementing it and i'm not an expert.😅

a1waysbeta commented 2 years ago

You can ask by posting in the ESLyric repository. ESLyric can provide lyrics without inserting them into the interface layout, and I can't remember the built-in js interface.

Directly using ESLyric, it is also perfect. Supports lyric playback line font increase, left alignment, with wilb's bio to provide artist images, background interval playback

TT-ReBORN commented 2 years ago

If you use Manual save in Scheme, you need to change in gr-lyrics.js in func lyricShow3Save(metadb) { fb.RunMainMenuCommand('View/Lyrics Show 3/Save'); to fb.RunMainMenuCommand('View/ESLyric/Panels/Save Lyric');

Thanks for the info @a1waysbeta, I'll try with the foo_multisource.dll later out.

-TT

BEST8OY commented 2 years ago

If you use Manual save in Scheme, you need to change in gr-lyrics.js in func lyricShow3Save(metadb) { fb.RunMainMenuCommand('View/Lyrics Show 3/Save'); to fb.RunMainMenuCommand('View/ESLyric/Panels/Save Lyric'); -TT

Okay now manual mode works but it isn't actually manual. Its function is like autosave. I don't know if it's possible to have a manual save lyric option in lyric page of theme, but if it's not that hard to implement it's nice to have it.

TT-ReBORN commented 2 years ago

That's actually not possible because I don't think I can communicate with the component internals and how the lyric code works... Btw, new update available, check the Beta thread!

-TT

a1waysbeta commented 2 years ago

RunContextMenu(string cmd);

https://github.com/ESLyric/release/wiki/%E5%A4%96%E9%83%A8JS%E9%9D%A2%E6%9D%BF%E6%8E%A7%E5%88%B6%E6%8E%A5%E5%8F%A3

TT-ReBORN commented 2 years ago

Thanks for the info,

I've took a closer look at the lyric code and at the moment it's not possible to use the Scheme: Manual save in ESLyric.

The lyrics in the theme will ONLY be displayed IF the lyrics are available ( saved ) on the hard disk drive or embedded in the music file itself. Because I use the Lyric Show Panel 3 component ( it's the same for ESLyric ) only to fetch the lyrics files from the sites. The theme itself is processing and displaying the lyric files, that's why the actual Lyric Show Panel 3 or ESLyric panel are hidden in the layout.

The only way to make this work, would be to have an option in ESLyric to delete the current lyric. For example, ESLyric has a context menu where there is the option "Save lyric". The developer of ESLyric need to make a new option "Delete lyric". Then we can make a hack by first saving the lyric via fb.RunMainMenuCommand('View/ESLyric/Panels/Save lyric'); this will automatically display the lyrics in the theme and is loaded in memory and after that auto-delete with fb.RunMainMenuCommand('View/ESLyric/Panels/Delete lyric');

You can make a request to the dev of ESLyric to implement the "Delete lyric" option then it will work.

Otherwise the Georgia-ReBORN theme has the option to auto-delete lyrics in the lyrics folder in top menu Options > Settings > Theme cache > Lyrics > Auto-delete lyrics on startup

-TT

TT-ReBORN commented 2 years ago

@BEST8OY, Now available since Beta 10c: https://github.com/TT-ReBORN/Georgia-ReBORN/discussions/74#discussioncomment-4140202 Just download and everything is ready to go.