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

Fixed: Expand duration group prose #127

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

Conversation

ahankinson
Copy link
Contributor

Expands the rules for repeated rhythmic sequences. Nothing has changed except a clarification on how they should be interpreted.

Figuring out where they could and couldn't be used took a bit of time; I think I got it, but may have missed something.

I renamed them "Duration Groups" because they are initiated by a grouping of duration values.

Expands the rules for repeated rhythmic sequences. Nothing has changed except a clarification on how they should be interpreted.

Figuring out where they could and couldn't be used took a bit of time; I think I got it, but may have missed something.

I renamed them "Duration Groups" because they are initiated by a grouping of duration values.
Copy link

github-actions bot commented Jun 3, 2024

PR Preview Action v1.4.7
🚀 Deployed preview to https://rism-digital.github.io/pae-code-spec/pr-preview/pr-127/
on branch gh-pages at 2024-06-03 11:40 UTC

@ahankinson ahankinson requested a review from lpugin June 3, 2024 10:09
@ahankinson ahankinson added the Type: Spec Clarification Clarifications to existing content in the spec label Jun 3, 2024
@ahankinson ahankinson self-assigned this Jun 3, 2024
v2/index.html Outdated
Comment on lines 2132 to 2133
If the number of notes that follow exceeds the number of duration values given in the Duration
Group, the duration values MUST repeat from the first.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand this sentence.

Copy link
Contributor Author

@ahankinson ahankinson Jun 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It just means that the durations cycle... 484ABCDEFGAB would result in the three repetitions of the 484 figure.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am confused with the use of MUST here. My understanding is that it is about how things must be coded, not how what is written must match the code, so the MUST is confusing in this paragraph.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is like if you say "a note following a 4 MUST be a quarter note"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It could a) stop (i.e., not repeat the durations) or b) go backwards (weird, I know, but it could) or c) be interruptible by adding a specific duration (which is why the requirement to cancel it is necessary) or d) apply to only otherwise grouped notes (e.g., only beams would take the duration group).

It's better to be pedantic than to be vague, IMO. There's no room for interpretation when is says it MUST repeat from the first.

BTW, we do say that a note following a 4 MUST be a quarter note... https://plaine-and-easie.info/v2/index.html#durations

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW, we do say that a note following a 4 MUST be a quarter note...

Can you point me to the line? Sorry, I cannot find it.

Group, the duration values MUST repeat from the first.
</p>
<p>
A duration group MUST remain in effect until another duration value is declared. A new duration value
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
A duration group MUST remain in effect until another duration value is declared. A new duration value
A duration group remains in effect until another duration value is declared. A new duration value

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why did you remove this requirement? Without it, there is no requirement that a duration value interrupts the repetition of the group.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above. I find this confusing.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you suggest some other wording that keeps the normative requirement that a duration group remains in effect until cancelled?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Something like `"A duration group indicates that the note names following it have a duration as given in the group and in that order. When the number of notes reaches the number of durations given in the group, the durations applies again from the beginning of the group. Any duration given in the notes following the duration group cancels it."

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we still need the MUST in there to indicate the requirement.

v2/index.html Outdated Show resolved Hide resolved
Comment on lines +2156 to +2157
A chord MAY be used within the notes that follow a Duration Group. All notes in the chord MUST have
a single value from the Duration Group.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The second sentence is not very clear. Chords have a single value anyway, haven't they?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's never explicitly stated.

Copy link
Contributor

@lpugin lpugin Jun 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was thinking about this

v2/index.html Outdated Show resolved Hide resolved
Also clarifies and adds consistent terminology for the "note sequence"
@BaMikusi
Copy link
Collaborator

BaMikusi commented Jun 3, 2024

This is just to express my full support for @lpugin's view that the MUST's are quite confusing.
But perhaps an alternative could be to say "will remain" and "will have"?

@ahankinson
Copy link
Contributor Author

ahankinson commented Jun 3, 2024

"will" is a statement of fact, not a statement of requirement. "I will go to the store to find milk" is different from "I must go to the store to find milk." It can be made a requirement with the imperative "shall" as in "you shall go to the store and find milk".

I've been using MUST because it imposes a very easy system of understanding what things are required (MUST / MUST NOT), recommendations (SHOULD / SHOULD NOT), and optional (MAY). Otherwise there is a danger that internally the requirements are not phrased in a consistent way and the actual requirements are lost in the "language."

The number of RFC keywords in use can be expanded if you think it would make for better prose, but (at least for me) the words are used to help me keep track of what the actual valid / invalid requirements are, and limiting them helps me to keep a consistent tense, tone, and terminology.

See RFC 2119 for a definition of what each of the terms mean: https://datatracker.ietf.org/doc/html/rfc2119

(Otherwise we end up with the current state of affairs where no one actually knows what "valid" PAE is other than "does it render OK, it must be fine.")

@lpugin
Copy link
Contributor

lpugin commented Jun 3, 2024

Sure, I get that, and I am perfectly fine where we have it. It is only that here you use it the other way around. Namely to say that the notes MUST be in accordance with the code.

You do not say that notes after a G-2 clef MUST be in G-2 clef until a clef change is given. Or we say "The clef code MUST be three characters long", but then "The character x indicates sharp keys and b flat keys.", and not "The note with a character x in front MUST be a sharped note".

@BaMikusi
Copy link
Collaborator

BaMikusi commented Jun 3, 2024

To approach the point from another angle, if human users will not understand your language (and if Laurent and I both stop short here, there would surely be others), it won't really matter how consistent your text appears to be from a structural point of view.

@ahankinson
Copy link
Contributor Author

OK; could you help me rewrite it in another way that makes it clear that there are actually some requirements for a duration group? I understand not liking the way it's phrased, but I also need a way of ensuring that someone coming to this that wants to implement support for PAE also knows what their tool MUST or MUST NOT do.

@lpugin
Copy link
Contributor

lpugin commented Jun 3, 2024

I'll use this as a model https://plaine-and-easie.info/v2/#repeat-group

@ahankinson
Copy link
Contributor Author

All users of this spec are human users. It's actually being written specifically FOR human users, who have an annoying tendency to get "creative" with their interpretations when no creativity is desired. If we don't want to end up "cleaning up" the incipits every decade or so because of creative interpretations of the rules, then this is the best chance we have to do so. And the best way I know how to do that is to create a very clear indication of, specifically, what IS and what IS NOT allowed. Not everyone needs to know this, but the people (us, and the "us" in the future) who create the tools that put the red squiggles under the things that are wrong do need to know, and they'll need this document to tell them what everyone else is supposed to be doing too.

If you mean the actual cataloguers looking for guidelines on how to apply these rules, then we have #50 "Create encoding guidelines" which we will write once we settle on the rules. However, #50 also needs to point to something as the authority for what is and isn't allowed.

@BaMikusi
Copy link
Collaborator

BaMikusi commented Jun 3, 2024

@ahankinson You seem to have taken my comment as a general criticism for the entire specifications text -- which it was not meant to be. I merely said as much that, if we leave these two passage like this, readers will be confused -- whereby either Laurent's "remain" or my "will remain" would deliver essentially the same message without confusion. I did not say (and did not want to imply) that you should start rewriting the text entirely without modal verbs.

@ahankinson
Copy link
Contributor Author

ahankinson commented Jun 3, 2024

Sorry -- it was simply the emphasized "for humans" that triggered me. I know it's not a particularly natural way of writing, and for those who don't deal with specifications it can even be a bit alien, but it's my core intention that it is clearly written for humans first and foremost. (The inverse implication being that I'm simply writing for a mechanical audience...)

@BaMikusi
Copy link
Collaborator

BaMikusi commented Jun 3, 2024

Alles klar -- and then apologies for that human from my side.
After all, we are all humans, and if a human writes 20+ emails a day, plus 30+ Slack messages, surely some points will not be made elaborately enough.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Spec Clarification Clarifications to existing content in the spec
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants