Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Spec] Multiple entries in #GENRE / #LANGUAGE / #CREATOR #30

Closed
marwin89 opened this issue Sep 25, 2023 · 10 comments
Closed

[Spec] Multiple entries in #GENRE / #LANGUAGE / #CREATOR #30

marwin89 opened this issue Sep 25, 2023 · 10 comments
Labels
Approved approved by majority Specification affects specification (spec.md) v1.1.0 (2023) implement in v1.1.0 (2023)

Comments

@marwin89
Copy link
Collaborator

marwin89 commented Sep 25, 2023

Suggestion

It would be good to have multiple entries in #GENRE, #LANGUAGE, #EDITION and #CREATOR.

Example:

#GENRE: Rock | Grunge | Alternative
#LANGUAGE: English | French
#CREATOR: DoubleDee | Bohning | retrogirl
#EDITION: Eurovision | SingStar | SongChecked | Duets

Use case

There are a lot of songs that

  1. are mixture of different genres and music styles
  2. have two languages in the lyrics
  3. are made, fixed or updated by more than one person
  4. fit to different collections or compilations

Extra info/examples/attachments

Which separator would be the best?

  1. |
  2. ,
  3. /

In #19 for music database #MUSICDB we are going to have a consens to use |

@marwin89 marwin89 added new feature v1.1.0 (2023) implement in v1.1.0 (2023) labels Sep 25, 2023
@marwin89 marwin89 assigned marwin89 and bohning and unassigned marwin89 Sep 26, 2023
@rakuri255
Copy link
Collaborator

I also seen ;

@Baklap4
Copy link
Collaborator

Baklap4 commented Sep 27, 2023

How about instead of seperating on character to introduce multiple TAGS if you'd want multiple values? And read all lines starting with a certain tag.

#GENRE: Rock
#GENRE: Grune

this would prevent possible clashes with seperation characters vs the actual value. An issue like this was recently found by myself for usdb-syncer bohning/usdb_syncer#169
In short: Video tag contained title which contained an = character which resulted in that it failed parsing

Don't get me wrong i like to have a feature where multiple values can be used for a certain tag but not sure how to make a good architecture for it

@rakuri255
Copy link
Collaborator

How about instead of seperating on character to introduce multiple TAGS if you'd want multiple values? And read all lines starting with a certain tag.

#GENRE: Rock
#GENRE: Grune

this would prevent possible clashes with seperation characters vs the actual value. An issue like this was recently found by myself for usdb-syncer bohning/usdb_syncer#169 In short: Video tag contained title which contained an = character which resulted in that it failed parsing

Don't get me wrong i like to have a feature where multiple values can be used for a certain tag but not sure how to make a good architecture for it

I think most other programs use a separator by default rather than using the tag multiple times. I am thinking of csv files as an example.

@rakuri255
Copy link
Collaborator

rakuri255 commented Oct 3, 2023

UltraSinger currently uses , and in #Comments it uses | and , for readability when there are 2 separated things..

#GENRE:Metal,Rock
#COMMENT:UltraSinger [GitHub] | Score: total: 6825, notes: 6161 line: 664, golden: 0

@marwin89
Copy link
Collaborator Author

marwin89 commented Oct 5, 2023

Which separator would you like the most?
Please vote by using emoticon-reactions:

Vote separator result
😄 = pipe
❤️ = comma ,
🚀 = semicolon ;
🎉 = combination of pipe an comma

@bohning
Copy link
Collaborator

bohning commented Oct 5, 2023

Most natural and easy to type is a comma-separated list

@Baklap4
Copy link
Collaborator

Baklap4 commented Oct 5, 2023

To ellaborate on the | vote. This is barely used in any normal written stuff, whereas comma and semicolons are far more likely to be used.

If the element can only contain one word then i'd go for comma or semicolon. z
If the element can have more than one word i'd use a pipe

If you just want one delimeter, a pipe or symbol which isn't used in natural language is a good choice :)

Most natural and easy to type is a comma-separated list

No one should edit txt files themselves by hand. And creator software can just give the user multiple inputs (checkboxes) for genres or something :)

@marwin89
Copy link
Collaborator Author

marwin89 commented Oct 5, 2023

Let's use comma and end this discussion here 👍 This should be fine.

SUMMARY / FINAL RESULTS 🏁

So here are the final results for this issue.

We enable multiple entries in #GENRE, #LANGUAGE, #CREATOR and #EDITION in version 1.1.0 via separator. Separator is comma ","

#GENRE: Indie-Rock, Grunge, Alternative
#LANGUAGE: English, French
#CREATOR: DoubleDee, Bohning, retrogirl 
#EDITION: Eurovision, Checked, Duets, Christmas, Halloween, SingStar, RockBand

The description in the spec (website) will be complemented with these infos:

#GENRE
...
This tag allows multiple entries, you separate them with comma. Right now there is a limit up to 255 Characters. So can add a lot of information.
#LANGUAGE
...
This tag allows multiple entries, you separate them with comma. Right now there is a limit up to 255 Characters. So can add a lot of information.
#CREATOR
...
This tag allows multiple entries, you separate them with comma. Right now there is a limit up to 255 Characters. So can add a lot of information.
#EDITION
...
This tag allows multiple entries, you separate them with comma. Right now there is a limit up to 255 Characters. So can add a lot of information.

@Baklap4
Copy link
Collaborator

Baklap4 commented Oct 5, 2023

Not quite sure if all these fields are only containing one thing per instance..

GENRE => Alternative Rock, Heavy Metal, New Wave
Creator => Names can have spaces in them
EDITION => Singstar Rocks, SingStar 90"s, Disney Sing Along

Language is probably the only one with only one word :o

@bohning
Copy link
Collaborator

bohning commented Oct 5, 2023

I agree with @Baklap4, they can be multiple words, but I don’t see a problem with that, as long as there are no commas in the entries (most likely not the case for any of the three).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Approved approved by majority Specification affects specification (spec.md) v1.1.0 (2023) implement in v1.1.0 (2023)
Projects
Status: Implemented in spec.md
Development

No branches or pull requests

4 participants