UltraStar-Deluxe / USDX

The free and open source karaoke singing game UltraStar Deluxe, inspired by Sony SingStar™
https://usdx.eu
GNU General Public License v2.0
812 stars 160 forks source link

Metadata format - new (hopefully standardized) fields #714

Open Baklap4 opened 1 year ago

Baklap4 commented 1 year ago

Current metadata

Current metadata tags support common stuff like ARTIST, TITLE, etc I'd love to see a couple of new fields added to identify the source of the respective song you're playing.

I have a couple of databases loaded: USDB, ultrastar-es, and some personal songs

and what i'd like to achieve is see where the song came from or which program did create the song. As Ultrastar specifies the format and other programs like vocaluxe and performous follow i'd like to see a / or a couple standardized fields for this in the format.

Personally i'd say:

#SOURCE:USDB-Syncer
#SOURCE_VERSION:0.1.0

SOURCE can be either a name of a website like ultrastar-es or an application like YASS song creator or a conversion program: usdb-syncer For song-creator-applications we might also wanna add a 3rd field... so Creators can opt in aswell

s09bQ5 commented 1 year ago

What should UltraStar Deluxe do with these new fields?

Baklap4 commented 1 year ago

For starters just discuss the format with the Ultrastar team and see if it'd be possible. If we then can agree on the different fields (naming etc) other programs like: UltraStar Deluxe Ultrastar Play Vocaluxe Performous And other karaoke programs can use these fields to show where the txt file originated from.

My usecase in this would be to determine if a song came from usdb through the tool usdb-syncer. I recently imported their whole library but some songs were not timed correctly as it tries to guess which audio file needs to be retrieved from youtube This can cause missmatches and then i can say to the people singing that this song might not work because it was an imported one and not manually checked.

barbeque-squared commented 1 year ago

Yeah, I use non-standard tags all the time for my own purposes. USDX will save any extra tags (that it doesn't know what to do with) back into the txt if you edit it through USDX, but I really don't see why adding or doing anything with them is something USDX should care about?

(but, if people are going to add a field like this, I'd rather they list like the webpage where it came from in there? not "USDB" but the actual specific webpage where that txt came from) (personally I just use different folders for different sources, and whatever I use to generate my website knows that certain folders are not quality-checked and marks the songs in there as such)

bottom line: if USDB starts consistently adding a custom field, USDX is totally fine with that. Maybe it will eventually spread to other websites too, maybe it won't. a standardized field only becomes relevant if it needs to be shown anywhere in the UI -- but I don't see why this needs to be in the UI

Baklap4 commented 1 year ago

Sorry for not responding sooner. Some personal issues popped up and i couldn't get to this sooner.

Hmm i see i might have brought in some confusion. What i'd like to achieve is that Ultrastar (originators of the song text format) is considering new fields to be added. This ticket is not persé in the right place, but i didn't know where to post this elsewhere. If there's a specific repository containing rules/definitions about the songformat which everyone derives from please redirect me there.

What i'd like to achieve is to have a couple more standardized fields besides the already existing ones. Other programs, like usdx, vocaluxe, performous, and creator tools like composer, karedi, yass, etc can then opt in to auto fill-in these fields. Creator tools would use the #APP and #APP_VERSION to add their name + version whilst websites likes usdb, ultrastar-es and other sources can use the #SOURCE field to define where the txt came from as a source of downloadable content.

Defining these fields would make for better automation and maintainability of large libraries where one is constantly updating to the latest version instead of manually adding these things every time an update of the specific txt file is pushed.

The actual karaoke programs can then use this info to present them to the end-user. In my specific case i'd show it where i can add songs to a playlist. So if i have multiple versions i know in which favor to add them, as quality from the different sites differ a lot...

It's very true that i can add these tags myself to existing txt files. Just sed away and it's done. But i can imagine more people are running into this 'problem' and a standardized way is an easy solution for it.