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

Improvement of flats line by line #157

Open
eroux opened this issue Mar 26, 2015 · 13 comments
Open

Improvement of flats line by line #157

eroux opened this issue Mar 26, 2015 · 13 comments

Comments

@eroux
Copy link
Contributor

eroux commented Mar 26, 2015

Flats can have convoluted meanings, and occur until the end of the line, so Gregorio should know be able to add flats or naturals at beginning of line.

More details explanation, from a mail on the mailing-list.

Currently this is the part of score production that is most laborious for me, because the flats and naturals have to be readjusted manually each time depending on the width and text/chant size of the score. If we were able to have a more absolute system of flats that could appear or not appear depending on the context, that would go a long way towards making an individual GABC file much more flexible.

As far as I know, there are two different systems in 19th/20th century chant books for notating flats and naturals.

  1. In the Vatican edition, a flat applies until a natural, or a division line, or a new word.

  2. In Dominican chant books, a flat applies until a natural or the end of a line.

I think that the best way to notate flats in GABC should be to put a flat indication on every note that ought to be flat, and then have Gregorio determine when to actually print the flats in relation to the rules of the flats. If this change was to be implemented, perhaps it could be done in a way that left that current system in place (and would thus be backwards compatible) but which added a flat or natural to a note in a way analogous to the notations that add a rhythmic mark to a note, i.e., by putting a letter after the pitch/height indication. As an offhand suggestion, you could use % for flat: [e.g.: A(i%)men.(j)]

A specific letter-notation for natural would not be necessary because a natural would be added automatically if the flat was not present in the notation.

@eroux
Copy link
Contributor Author

eroux commented Mar 26, 2015

This feature is currently just impossible to do. I'm lobbying for the LuaTeX team to release the code to build paragraphs in Lua, as it would make it possible (but not obvious at all!) to do this... Or maybe there would be tricks with discretionary... nothing obvious...

@henryso
Copy link
Contributor

henryso commented Mar 26, 2015

While it can still be handled by explicitly flatting all flats, it might be worth considering a natural if the clef includes a flat.

@henryso
Copy link
Contributor

henryso commented Mar 27, 2015

Also, I think the Vatican edition rules are doable with the gregorio executable. As for the Dominican rules, I'll take your word that it's impossible with the current LuaTeX.

@eroux
Copy link
Contributor Author

eroux commented Mar 27, 2015

Indeed, we could implement the vatican rules in a next release... what about a flat-system in gabc header, with none, Vatican and Dominican possibilities, defaulting to none (current behaviour)?

@henryso
Copy link
Contributor

henryso commented Mar 27, 2015

Sounds like a good way to do it to me.

@henryso
Copy link
Contributor

henryso commented Apr 12, 2015

Thinking about this, the Vatican edition rules actually does not change depending on how the score falls on the page, so it requires no tweaking at all when the lines break. The only reason to add this complexity for the Vatican edition rules is if you want to switch the rule sets by changing a single property. Therefore, I don't think it's necessary to implement this until we know what needs to be done in some future version of LuaTeX to support the Dominican rules.

@rpspringuel
Copy link
Contributor

I think that the Dominican rules could be supported. We can tell when a new line begins because GregorioTeX needs to print the staff lines at the beginning of each line (as well as the clef that goes at the beginning of the line). By piggy backing onto an event like this, we can reset a visibility tracker which determines whether or not an accidental needs to be shown.

@eroux
Copy link
Contributor Author

eroux commented May 12, 2015

It's not as simple as you might think... Again, can you show a minimal example writing something like printing clef for line 1, printing clef for line 2, etc.?

@henryso
Copy link
Contributor

henryso commented Jun 27, 2015

I think the line ending detection for variable line heights may be a useful start for the Dominican flatting rules.

@eroux
Copy link
Contributor Author

eroux commented Jun 27, 2015

Absolutely!

@henryso
Copy link
Contributor

henryso commented Jun 27, 2015

Thinking about this, if we use the current algorithm, which detects line endings at the end of the score, when the callback is called, it seems we would need as many passes as lines with flats on them. Each pass would get one line right which would displace the following lines, requiring another pass, unless we happen get lucky because of word spacing. Any thoughts on a better way with the current algorithm, or is it infeasible?

@eroux
Copy link
Contributor Author

eroux commented Jul 2, 2015

As this is not an emergency, maybe it's best to wait for Hans Hagen to release the lua paragaph builder from ConTeXt, this would make this feature feasible in a more deterministic and straightforward way. I don't know when that's going to happen though (I recall it to him from time to time).

@olivierberten
Copy link

It seems Solesmes Graduale considers the flat valid only until the end of the word (but still being canceled by a line break). See: http://gregobase.selapa.net/chant.php?id=713

Graduale Romanum, Solesmes, 1961, p. 401
Graduale Romanum, Solesmes, 1961, p. 402

That said, I wonder which rule is to be applied to the first line of page 402. Are the bs of populi and nostri supposed to be flattened?

The question of the automatic flattening comes on the 4th line of the GregoBase retranscription: depending on how the music falls relative to line breaks, a flat would be needed or not.

GregoBase chant 713

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

No branches or pull requests

4 participants