UltraStar-Deluxe / USDX

The free and open source karaoke singing game UltraStar Deluxe, inspired by Sony SingStarâ„¢
https://usdx.eu
GNU General Public License v2.0
832 stars 160 forks source link

Possibility of positioning lyrics on top of the screen #514

Open ulmng opened 4 years ago

ulmng commented 4 years ago

I have a suggestion to add to Ultrastar such option like in Voceluxe where there is option "Lyrics position" with values: "bottom" and "top". Now in single mode lyrics are at the bottom of the screen and we can't change this. This "top" value would be very useful for example when someone has a screen not so high hanged / standing and then the lyrics are very low on screen. Thanks to the "top" option it would be easier to read lyrics because they would be higher.

speich commented 4 years ago

With two players it would also be very nice if you could have the lyrics copied, so each singer has the lyrics right below their notes instead at the bottom. Reason: The player closer to the lyrics has an advantage, which would go away this way.

speich commented 4 years ago

or "between" would also be helpful

s09bQ5 commented 1 year ago

The position of the lyrics lines are defined by the theme. The current lyrics line in single player mode is SingLyricsUpperBar. The following line is SingLyricsLowerBar. Duets have dedicated settings (SingLyricsP*Bar).

The code that decides which of these settings to use is here.

The most difficult part with adding an option is that you have to modify the themes to fit the new option on one of the option screens. It will also break all themes existing outside of the USDX repository. The alternative is to make it a config.ini-only option.

Do you really want to go down that rabbit hole? Making a custom theme that uses a different position sounds easier to me.

barbeque-squared commented 1 year ago

For the time being, moving the lyrics to the top should be doable by creating a custom theme. All the other suggestions (lyrics in-between, lyrics at both the top and the bottom) are currently not doable because the positioning of where the player notes go is hardcoded, and worse: it's not just hardcoded in a single place, it's hardcoded in like half a dozen places. I'm working towards not having that half a dozen times, but it's slow going. The naming conventions for 1, 2 and 3 player theming is also... different than the 4 and 6-player ones.

I'm not dismissing this problem (I agree that something should eventually be done about it) and I agree with the reasons people give for wanting a solution. Right now there's just no point in even thinking about a long-term solution, because it would be a nightmare to implement regardless.

The short-term solution would be to add an extra theme, but the one thing I do know is that long-term that's not the way to go, hence I'd rather not have it as part of USDX at any point in time.

And at some point someone will want to create a 6-player layout but they're running an ultrawide in portrait and they will probably want to have the lyrics displayed at least three times or something. The long-term solution would have to support (custom) themes that want to do stuff like that.

speich commented 1 year ago

Thanks for taking the time to clarify.

bohning commented 1 year ago

I played around with the Modern Theme and shifted to the lyrics (and time bar) to the top.

image

However, this needs more adjusting, everything else in the SingScreen needs to be shifted down then to make more room at the top plus additional fixes for duets...