f2e-spec icon indicating copy to clipboard operation
f2e-spec copied to clipboard

Added support for Comment and ProvidedBy tags so we can distinguish m…

Open Baklap4 opened this issue 1 year ago • 5 comments

What does this PR do?

Introduces a new field PROVIDEDBY This helps in distinguishing where the mapped file came from and which program made it at which version. Aside from this #COMMENT is sometimes used which is now also supported

Closes Issue(s)

closes #961

Motivation

I'm trying to get a couple new standardized fields into the ultrastar format. This allows hosting websites to add their name to song files whilst creator tools like composer add their specific version and appname.

This way everyone knows where the txt came from and which program is used to create it.

Since the varying sources of which you can download songs from differ in quality this is a nicely added bonus to see where it came from.

Might be a niche for just me, but if everyone opts in it'd make for a way better system and maybe even a newly introduced system which combines all the sources out there.... (that's my endgoal)

Testing

You can test this by adding the following tags:

#PROVIDEDBY:https://usdb.animux.de
#COMMENT:Some comment

All tags are opt in. But if everyone plays by the rules every txt will have these fields eventually

The tags are shown within the webserver-ui: Playlist and search screen. All extra tags are seperated by the | symbol. And the popup if you click a song also mentions the tags + content if they're there.

Update

I've recently added a couple of new fields and fallback keys these are #VERSION -> Defines the version of the mapped song. This version applies to the Format project https://github.com/UltraStar-Deluxe/format logic which changes through versions has not been added yet as everything is at this moment backwards compatible. Starting with version 2.0.0 we need to add specific handlers for the different versions. #YEAR -> Defines the year of when the song came out #AUDIO -> Is going to replace the #MP3 header #INSTRUMENTAL -> Aside from Audio we can now specify the instrumental track within the same file. This allows us to mix them in software for several usecases #END -> Specifies the time in milliseconds from the beginning of the audio file at which the song ends. This value can be used to stop playback before any silence or outro at the end of the audio file #TAGS -> A list of arbitrary tags we can help searching for songs

Replaced GOLDEN2 enum value to GOLDENRAP as this is what the G stands for

Baklap4 avatar Mar 01 '24 15:03 Baklap4

Updated the PR to fix conflicts and add some more tags (listed in ###UPDATE)

Baklap4 avatar Aug 20 '24 17:08 Baklap4

I tested this and didn't notice any difference in gameplay, for the files I have at least. Most of what I have is in FoFix format, so I couldn't verify everything. Muting the vocals with crtl + v definitely works. :+1: from my side, but would be good if someone with different formats could give it a run-through.

ooshlablu avatar Aug 25 '24 19:08 ooshlablu

@Lord-Kamina @twollgam if either one of you can review this i can update the format guys to tell we support the latest, we're currently not doing much with it. But i have some pr's planned using them in the near future

Baklap4 avatar Sep 17 '24 06:09 Baklap4