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

Change slurs to be liaison content #167

Closed
adrianholovaty opened this issue Oct 28, 2019 · 6 comments
Closed

Change slurs to be liaison content #167

adrianholovaty opened this issue Oct 28, 2019 · 6 comments
Milestone

Comments

@adrianholovaty
Copy link
Contributor

At the moment, the MNX-Common spec treats slurs as spanning directions, which led to the pull request #159 implementation. But we've come to realize slurs would be treated better as liaison content.

See this comment from @mdgood for more context.

The difference is:

  • Spanning directions are defined from one metrical position to another. For example: "This slur spans from a quarter note into bar 2 until three quarter notes into bar 2."
  • Liaison content is defined from one specific note/event to another.

Any objections or further thoughts regarding making slurs be liaison content?

@clnoel
Copy link

clnoel commented Nov 4, 2019

The thing about slurs is they are not only on specified start and end notes, they also affect only particular notes in between. For example if you have the slur on a set of down-stem notes, the up stem notes (or notes in the other staff) are not necessarily affected. Does liaison content cover that?

@adrianholovaty
Copy link
Contributor Author

@clnoel I believe that wouldn't be a problem. In your example, the up-stem notes would live in a different voice (a different <sequence> in MNX-Common terminology). Liaison content goes from one specific note (which lives in a specific <sequence>) to another specific note (which lives in a specific <sequence>). Same goes for notes in the other staff. Counter-examples are welcome, of course!

@clnoel
Copy link

clnoel commented Nov 4, 2019

The only counter I can come up with is a slur that spans several measures. The notes in the first and last measures that belong in the slur would be well defined by sequence and liaison specification, but not the notes in the middle measures. If we do this, we need to make a way to optionally specify one or more "midpoints" not just an end point.

That might be a general requirement for liaison content. Arpeggios could be very well defined this way, and so could slides and bends. Multi-note ties could also benefit from this, so that it is considered a single element instead of a tie that ends on one of the middle notes and then restarts to go on to the next one. (That reflects how its played, and is good for figuring actual note duration for playback, and display can still stop at each midpoint note.)

If this concept has already been considered and rejected, my apologies. I'm gearing my brain back into this and can't remember all the details.

@adrianholovaty
Copy link
Contributor Author

Pull request #169 addresses this issue.

@clnoel
Copy link

clnoel commented Nov 13, 2019

While I have no objection to improving the slur specification as written here, I would like to call out that my issue is not addressed by this. I've pulled the following example from the dorico website http://www.rpmseattle.com/of_note/how-to-work-with-slurs-in-dorico-write-mode/

dorico-cross-staff-slurs

In this picture, One side of the slur is in the lower staff, the middle of the slur is in the upper staff on downstem notes (and there are upstem notes that are a separate sequence), and the end of the slur is an upper staff chord that has no opposing sequence. It would be extremely hard for a program to figure out that the middle system's sequence is part of this slur, given the current liaison structure that allows just a start and end point. Both audio generation and the graphical generation of creating a nicely shaped curve would be complicated. And would be even more complicated if there were more notes in the lower staff here.

@adrianholovaty
Copy link
Contributor Author

This is now done, as of commit e273246.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants