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] Application Specific Headers #56

Open
codello opened this issue May 6, 2024 · 0 comments
Open

[Spec] Application Specific Headers #56

codello opened this issue May 6, 2024 · 0 comments
Assignees
Labels
in-discussion This suggestion is in discussion

Comments

@codello
Copy link
Contributor

codello commented May 6, 2024

Suggestion

I'd like to suggest the addition of Application specific headers to the spec. These are headers that are not part of the specification but may be used by implementations for various purposes. This suggestion is currently included in spec.md:

format/spec.md

Lines 164 to 168 in 23bf930

Implementations MAY define application-specific headers
but SHOULD prefix those headers with the application name to avoid conflicts with future standardized headers.
Implementations MUST ignore headers they do not recognize.
The order of headers is irrelevant (note the exception in section 3.1.)
although standardized headers should precede any application-specific headers.

Use case

We have seen the need for application-specific metadata in several places. Examples include #RESOLUTION, #NOTESGAP or the non-standard use of the #VIDEO header by usdb_syncer.
This proposal offers a standardized way for applications to add custom metadata that is unlikely to conflict with future standardized headers or custom headers used by other applications.

In practice USDX-specific headers like #RESOLUTION could continue to exist as, for example, #USDX-RESOLUTION.

Extra info/examples/attachments

This proposal also gives way to a possible standardization process for new headers: If a certain feature is used by an implementation (say via the header #USDX-FOO) and this feature is deemed useful by other applications, these other applications may begin to support their own variant (for example #VOCALUXE-FOO). If a feature becomes popular enough it can be standardized (for example as #FOO) with a clearly defined syntax and behavior. Migration of existing songs that use the prefixed-variants should be simple in most cases.

This kind of prefixing behavior bears some similarity to vendor prefixing in CSS.

The spec currently only says that application specific headers should be prefixed with the application name. A specific format is not suggested (I have been using - to separate the prefix in the examples above). This might be something that should be defined as well.

@codello codello changed the title [SPEC] Application Specific Headers [Spec] Application Specific Headers May 6, 2024
@marwin89 marwin89 moved this to In Discussion in UltraStar Song Format - Roadmap May 6, 2024
@marwin89 marwin89 added the in-discussion This suggestion is in discussion label May 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in-discussion This suggestion is in discussion
Projects
Status: In Discussion
Development

No branches or pull requests

2 participants