UltraStar-Deluxe / format

UltraStar Format Specification
https://usdx.eu/format
MIT License
9 stars 2 forks source link

[Spec] Tags for Creator and Hosting software #35

Closed Baklap4 closed 7 months ago

Baklap4 commented 9 months ago

Suggestion

Introduction of 3 tags so we can find where a txt came from and which software created it.

#SOURCE might conflict with the #WEBSITE discussion found here: #22

Use case

  1. For people with huge libraries like myself it's nice to know where a certain txt file came from: USDB, Ultrastar-es, somewhere else. Personally i think songs from ultrastar-es are of high quality since it comes as a complete package and just works. Whereas USDB it might work. USDB-Syncer is a great tool but not perfect yet, sometimes audio is missing, or mismatched.
  2. This info can be shown in game so people get familiar with the toolset around ultrastar. This broadens the community and might encourage someone to contribute to one of these projects

How to implement

Hosting sites

Hosting sites can append #SOURCE to the end of the metadata list to include their website. This can be done automaticly.

Creator software

Creator software can append #APP and #APPVERSION to the end of the metadata list to include their software and versionnumber. This can also be done automaticly after saving / exporting the txt file.

Extra info/examples/attachments

Within performous we have an open PR-883 to support these tags including the #COMMENT tag already out there. I hope this can get a place in here for 1.1.0 or later. I'm more curious what you guys think of this idea

marwin89 commented 9 months ago

How about this?

#SOURCE: editor=Karedi, editorversion=1.3, hosting=https://usdb.animux.de/

Would be similiar to #ONLINE in #22

Baklap4 commented 9 months ago

I guess this could work, but makes it harder to parse again in the actual games (same can be said about #ONLINE) personally i'd love to keep text file purely key-value in terms of metadata since that's the easiest and fastest way to read it within the games improving performance instead of checking all sorts of things during load time.

Aside from performance every karaoke game out there currently reads it in key-value. If we add 'complexity' to the value in terms of parsing this is an extra step to overcome to implement a simple new tag

The difference with #22 is that this is all local static data, whilst the #ONLINE tag is used to grab things from the web. These online resources can change without the user knowing

Nianna commented 9 months ago

I agree with @Baklap4 about flat key-value tags. Simple and stupid format is the best format.

In software like Karedi I would have to display such combined tags as several flat tags anyway - otherwise the creators will have a very difficult time editing them without making mistakes in the syntax.

It only adds complexity to parsing, saving and makes the whole system more error-prone. I see 0 gain from using such approach.

marwin89 commented 9 months ago

I agree. So what about this?

#EDITOR:Karedi
#EDITORVERSION:1.3
#HOSTING:https://usdb.animux.de/

This feature seem like low effort to me to implement. Something for 1.1.0.

bohning commented 9 months ago

I have a feeling we’re overengineering here a little bit. What if someone uses UltraStar Creator to tap the file, YASS to finetune and then when testing the song in USDX, decides to make the final edits in USDX editor?

Baklap4 commented 9 months ago

Heheh creative way to get a file working ;)

The editor part might be a bit too verbose. But i do think they're under-mentioned in all the songs created. The hosting part (at least for me) has a big upside in differentiating where the txt file came from. Sure this can be done manually but from hosting site perspective it's not a lot of effort to add this for every txt file hosted there

bohning commented 9 months ago

But ultimately, you’re using that information to infer some (presumed) file quality, right? Or what do you do with the information where the file came from?

Baklap4 commented 9 months ago

Yeah as stated in the opening of the thread it's mostly quality control

Songs from ultrastar-es i know are working Songs from usdb might not work. A fix is upstream for skipping songs with only txt files and no audio files, but it still cannot guarantee that the gap matches the audio/video. Or that the audio/video is available (something to do with availability of youtube links)

I do have to say a lot has been improved over the last versions, but i do see some issues sometimes when running an event. I note these songs and try to get them fixed at a later time by editing it within usdb so it can be redownloaded and updated.

Another usecase is that there are other sites out there which host txt files, which might benefit from this exposure aswell as the source can be seen from within the game: "Provided by " or something alike

marwin89 commented 9 months ago

SUMMARY / VOTE NOW πŸ“ˆ βœ‹

This was a good discussion. Here is a summary for this issue. We are close to a final result.

Please vote for this issue till 31th oct 2023 with emoticon πŸŽ‰ / πŸš€ / ❀️ .

πŸš€ A: Introduce #MADEWITH #PROVIDEDBY πŸŽ‰ B: Introduce #PROVIDEDBY ❀️ C: Don't introduce any tags for editors and hostings

What?

Why?

πŸš€ A

#MADEWITH:UltraSinger@0.0.1dev, Karedi@1.3
#PROVIDEDBY:https://usdb.animux.de/

πŸŽ‰ B

#PROVIDEDBY: https://usdb.animux.de
rakuri255 commented 9 months ago

How do you solve something like this: Auto created with UltraSinger and then edited with Karedi and Yass and some spice from other App? Even if we make it comma separated, how do we get the version? Maybe #EDITOR:Karedi@1.3, UltraSinger@0.0.1dev

Baklap4 commented 8 months ago

My problem is mostly solved by adding a #SOURCE or #PROVIDEDBY tag for hosting site recognition.

As for Editor software... Not sure when multiple apps are involved. I guess a solution could be what you proposed @rakuri255 Every app checks the string for their app if it doesn't exist append to the list?

DoubleDee73 commented 8 months ago

I can understand that the source may be of interest, but who gives a f* with what it was created?

Baklap4 commented 8 months ago

@DoubleDee73 some creator software supports some features whilst others don't. This way the origin can be tracked down and show the path of how the txt file itself evolved

DoubleDee73 commented 8 months ago

but it isn't it the whole point of our efforts to standardize and versionize Ultrastar-txts? Plus, e. g. when I'm creating songs, I use the Ultrastar-Creator to tap the song, Yass to set pitches and fine-tune and the USDX editor to set medley and intro point. In any case, I voted for B, if the majority decides to go for option A, of course, I will implement it for Yass...

marwin89 commented 7 months ago

SUMMARY / RESULT 🚩

Thanks for voting. Here is the final result for this issue.

We introduce #PROVIDEDBY (option B). 3 πŸŽ‰ / 2 πŸš€ / πŸ‘Ž 1

#PROVIDEDBY: https://usdb.animux.de

What?

Why?


Text on Website:

PROVIDEDBY helps to understand where a txt-file cames from. This is important cause there are many third-parties that host txt-files with different quality standards. This information should be normally set automatically from the provider. But you can set it as well manually with a song editor if you know where you got it from. Value should be a URL.

#PROVIDEDBY: https://usdb.animux.de