UltraStar-Deluxe / Play

Free and open source singing game with song editor for desktop, mobile, and smart TV

Home Page:https://ultrastar-play.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Setting for the range of Note Display Mode

Revanee opened this issue · comments

Issue type: Feature request

Actual behavior

Currently, when using any Note Display Mode, the notes have a limited range of pitch.
This causes notes outside of that range to wrap around, making it confusing to understand if
the next note is higher or lower.

For example:

This is what it looks like:       This it what is actually happening:
                                  ----0-
-0----                            -0----
------                            ------
----0-                            ------

Expected behaviour

It would be nice to be able to see the full range of notes in a song so that higher notes are always
higher visually. Mabe with a setting that makes the Note Display take up the whole vertical space of the
screen with the range being determined by the range of the song. Alternatively, color coding the notes
by octave could also work as a visual indicator of the actual pitch of the notes.

The presentation of the note pitch is something that bothers me as well.
But I am unsure how to improve this.

Currently, notes are wrapped because the singing pitch is wrapped for scoring.
However, presentation could still use some rules to be similar to the target note pitch.

There have also been some ideas to connect notes with a slide, but these have been dropped due to wrapping of notes: #253

I experimented a bit and came up with this patch.

It recalculates the line count based on the range of a song. This way higher notes are always higher up. It wouldn't look great in a song with a range of something like 3+ octaves, but I think it's much better than not seeing if a note should be higher or lower.
The patch itself would probably mess with other stuff, but I think this approach could work.

Regarding scoring, maybe something like showing the player's pitch on every octave could be an idea? It would look something like this with the true pitch highlighted:

----------------------------------------
----ooooooooooooooooooo--oooooo---------
-ooo-----------------------------ooo----
----------------------------------------
----------------------------------------
----0000000000000000000--000000---------
-000-----------------------------000----
----------------------------------------
----------------------------------------
----ooooooooooooooooooo--oooooo---------
-ooo-----------------------------ooo----
----------------------------------------

Let me know what you think!