jacquesh / foo_openlyrics

An open-source lyric display panel for foobar2000
MIT License
407 stars 24 forks source link

[feature request] scrolling lyrics and left align #192

Closed SUCM closed 1 year ago

SUCM commented 1 year ago

Hi, thanks for working on a new lyrics component. right about time when fb2k 2.0 is coming out!

is it possible to allow lyrics to be left aligned? would also like to know how to make lyrics scroll smoothly (constantly) rather than only when changed line?

jacquesh commented 1 year ago

Left-align is part of #109

As for smooth scrolling, is that not exactly the behaviour of unsynced lyrics?

SUCM commented 1 year ago

the smooth scroll I'm envisioning is the scrolling from current line to the next line. this means there is a steady speed of scrolling from current line to the next line constantly (update display every 10ms, 50ms or 100ms...etc), so scrolling speed for lines with different length are going to be different

not sure if unsynced lyrics would be able to do accurate timed scrolling

jacquesh commented 1 year ago

I could allow you to extend the scroll time to more than the current limit of 2 seconds, and then make it clamp the scroll time so that it doesn't jump around when the scroll time is longer than the time between lines. That way you could have it always scroll and just move at different speeds depending on the time between lines.

Note though, that this might not do exactly what you're expecting in terms of colouration. The highlighted line blends from the default colour to the highlight colour as it scrolls towards it and then blends back as it scrolls away. If the text is always scrolling then the highlighted line will never stay "fully highlighted" for any significant amount of time, it'll always either be blending towards or away from the highlight colour.

SUCM commented 1 year ago

both lyric3 and Lyric Show Modoki allowing scroll the viewing area without impacting the playback or highlighting, hence the request. this is like user viewing area and the actual text auto-scroll/highlighting each has its own independent working area of the lyrics panel.

reset the scroll (or user viewing area) to put highlighted line back at the center would be done by manually asking extension to reload the lyrics (ex. if I modified the lyrics file or enabled another lyrics source) or some other reset scrolling position command in something like right click menu

jacquesh commented 1 year ago

both lyric3 and Lyric Show Modoki allowing scroll the viewing area without impacting the playback or highlighting, hence the request. this is like user viewing area and the actual text auto-scroll/highlighting each has its own independent working area of the lyrics panel.

reset the scroll (or user viewing area) to put highlighted line back at the center would be done by manually asking extension to reload the lyrics (ex. if I modified the lyrics file or enabled another lyrics source) or some other reset scrolling position command in something like right click menu

Was this meant as a reply for #194? Seems more relevant there? The scrolling I'm referring to above is the automated scroll for synced lyrics.

SUCM commented 1 year ago

both lyric3 and Lyric Show Modoki allowing scroll the viewing area without impacting the playback or highlighting, hence the request. this is like user viewing area and the actual text auto-scroll/highlighting each has its own independent working area of the lyrics panel. reset the scroll (or user viewing area) to put highlighted line back at the center would be done by manually asking extension to reload the lyrics (ex. if I modified the lyrics file or enabled another lyrics source) or some other reset scrolling position command in something like right click menu

Was this meant as a reply for #194? Seems more relevant there? The scrolling I'm referring to above is the automated scroll for synced lyrics.

I probably misunderstood your description. if I understand you correctly now, your thought is to allow user set a synced scroll time beyond the current 2000ms with the actual time limited by the lyrics line's duration like min(user_scroll_time, actual_lyric_time). for this, what would happen if a line's time duration is longer than the configured scroll time?

for highlight, I think you meant the fade in/out effect? I think fade in/out effect should stick to the beginning and end of each line's time. the current scroll time setting should really be called fade in/out time. in lyrics3, this is similar to the fade height setting

I think your current code only scrolls at the end of a line (or the beginning of next line) subtracting the user configured scroll time. my feature request is to scroll for the whole duration of each line, so scroll is continuous but speed varies based on each line's duration

jacquesh commented 1 year ago

I think your current code only scrolls at the end of a line (or the beginning of next line) subtracting the user configured scroll time. my feature request is to scroll for the whole duration of each line, so scroll is continuous but speed varies based on each line's duration

Yes, we understand each other, this is what I was thinking.

I think fade in/out effect should stick to the beginning and end of each line's time. the current scroll time setting should really be called fade in/out time.

Fair enough