karaoke-dev/karaoke

Create `PreviewStageInfo`.

Closed this issue · 9 comments

image

https://www.cnet.com/tech/services-and-software/apple-music-sing-karaoke-mode-lets-you-unleash-your-inner-rock-star/
Guess should be possible to did the style like this.

No customized text, style or anything.
Just showing the cover and the lyric text at the right side.

Note about this stage mode:

  • Auto-change line is not supported because here's no method for calculating the line height and number.
  • Show/Hide the ruby/romaji/translation will not affect the calculation result.

Another benefit to do this stage first:

  • Can provide the example how to generate the drawable lyric/note applier.
  • Can remove the old layout logic in the skin.
  • Make the game more playable(Or can say that being the game to the less feature but playable state).
  • Can delay the class sage development schedule if needed(because gameplay already in the playable stage).

The config for this stage:

  • lines of lyrics
  • Focus mode(will blur the lyric if not singing)

Also should think about:

  • Need to think about the layout with note visualization.
  • Think about where to show the translation? At the button of the screen or At the button of each lyric?

[Optional] Also, should be better if click the lyric to navigate if not scorable.

Also, should have the countdown lcon if have the break time.

Should think about a way to invalids the working property if using the target stage

E.g: applier or start time will be affected by add/remove lyric if using the default stage, but might not affected if using the classic stage

Need to think about how to get the previous/next lyric's time because default stage info cannot access the whole beatmap.
There are two solution:

  1. should always use the default stage info auto-generator to create the preview stage info with timing info.
  2. let the stage info able to access the beatmap.

image

Also, should think about need to let user able to scroll to view the whole lyrics?
Or even able to click to navigate the time?
Because it will need to make complete different design patten(or flow).

Can close this PR because most of the features done.