f2e-spec
f2e-spec copied to clipboard
Added support for Comment and ProvidedBy tags so we can distinguish m…
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
Download the artifacts for this pull request:
- Performous-1.3.1-975-e4f3d10-alpha-ubuntu_22.04.deb.zip
- Performous-1.3.1-975-e4f3d10-alpha-debian_11.deb.zip
- Performous-1.3.1-975-e4f3d10-alpha-fedora_35.rpm.zip
- Performous-1.3.1-975-e4f3d10-alpha-fedora_39.rpm.zip
- Performous-1.3.1-975-e4f3d10-alpha-fedora_36.rpm.zip
- Performous-1.3.1-975-e4f3d10-alpha-fedora_40.rpm.zip
- Performous-1.3.1-975-e4f3d10-alpha-debian_12.deb.zip
- Performous-1.3.1-975-e4f3d10-alpha-ubuntu_24.04.deb.zip
- Performous-1.3.1-975-e4f3d10-alpha-fedora_37.rpm.zip
- Performous-1.3.1-975-e4f3d10-alpha.AppImage.zip
- Performous-1.3.1-975-e4f3d10-alpha-fedora_38.rpm.zip
- Performous-1.3.1-975-e4f3d10-alpha-ubuntu_20.04.deb.zip
- Performous-1.3.1-975-e4f3d10-alpha-msvc.exe.zip
- Performous-1.3.1-975-e4f3d10-alpha-mingw-w64.exe.zip
- Performous-1.3.1-975-e4f3d10-alpha.dmg.zip
This service is provided by nightly.link. These artifacts will expire in 90 days and will not be available for download after that time.
Updated the PR to fix conflicts and add some more tags (listed in ###UPDATE)
Quality Gate passed
Issues
1 New issue
0 Accepted issues
Measures
0 Security Hotspots
0.0% Coverage on New Code
1.3% Duplication on New Code
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.
@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