UltraStar-Deluxe / Play

Free and open source singing game with song editor for desktop, mobile, and smart TV
https://ultrastar-play.com
MIT License
389 stars 72 forks source link

START tag is not being considered #320

Closed rubinhos closed 1 year ago

rubinhos commented 2 years ago

Issue type: Bug report

Actual behaviour

The #START tag are being ignored and the song is not jumping from the defined start timeline.

Expected behaviour

The should start at the defined timeline on the #START tag

Steps to reproduce

  1. Open the ultrastarplay.exe
  2. Select a song with a #START tag defined
achimmihca commented 2 years ago

I never heard about #START.

If there is #START, should there also be #END?

There is a workaround: Edit the audio file to start at the correct position. Thus, I would like to avoid this new tag. Is #START supported by UltraStar Deluxe?

rubinhos commented 2 years ago

I never heard about #START.

  • You have an example txt file?
  • Which Unit (ms, second, beats)?
  • What exactly does this do?

    • Does it jump to this position in the song when starting the singing scene?
    • Any interaction with #GAP, #VIDEOGAP or other tags?

If there is #START, should there also be #END?

There is a workaround: Edit the audio file to start at the correct position. Thus, I would like to avoid this new tag. Is #START supported by UltraStar Deluxe?

Hey there,

Here's an example of the START tag (I thought it was a very common tag):

MP3:Adele - Easy on me.mp4

COVER:Adele - Easy on me.jpg

VIDEO:Adele - Easy on me.mp4

START:91

MEDLEYSTARTBEAT:640

MEDLEYENDBEAT:1230

BPM:284.53

GAP:112677

The #START tag is in seconds, and I use a lot with UltraStar Deluxe. When a TXT has it, it flat jumps to the defined position - it does not affect #GAP or #VIDEOGAP. And yes, there is an #END tag too, but - I don't know why - it's in ms: #END:280000.

bohning commented 2 years ago

Yes, #START (in seconds, decimal point or decimal comma, both are used, as with the #BPM) defines how much of the beginning of the song is skipped. It can cause artefacts with the display of the video since it (presumably) jumps to the closest frame in the video which is most likely not an I frame. It is used to skip long intros (or even advertising) at the beginning of a song.

The #END tag is used for the same reason, to stop the song and cut off long outros (or advertisements) at the end of the song. Unfortunately, this value is in milliseconds (thus, not symmetric) and goes back to the very first implementation of UltraStar by Polish programmer named Corvus and presumably is just a mistake rather than by design. I can provide a song file with both #START and #END if you like.

achimmihca commented 2 years ago

decimal point or decimal comma, both are used

I am not sure that the current implementation considers this. Will check it.

it does not affect #GAP or #VIDEOGAP

Ok.

I can provide a song file with both #START and #END if you like.

Thanks. I already have enough info to implement this.

END tag too, but - I don't know why - it's in ms

Yeah, the units in UltraStar txt files are bonkers 🤣