-
Notifications
You must be signed in to change notification settings - Fork 43
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
gabc header: handle transported modes #756
Comments
Currently the |
Good point, here it would appear in the annotation too, but not in the same style as the mode, it would be |
If we really want to be general about it, we could instead have an additional header, like |
That's a more generic solution indeed, ok |
Tests the fix for gregorio-project/gregorio#756.
Or should we add a And what about Tonus Peregrinus? And C,D,E modes? aren't they allowed anymore? |
The
|
If one didn't want the first line of the above pictured annotations, then one could use the
|
You can use the header capture feature to capture the headers and build the annotation in TeX in any way you like, or even push into Lua if it's really complex. |
What I'm trying to explain is: if I want to automate booklet creation, I need standard fields. Can I do that with gabc or does it have to be sticked to a database? If D mode or Tonus Peregrinus aren't valid anymore, I can't use a generic booklet creation script, for instance. And if termination and transposition sit in the same header, I can't choose if I want only one of them, or even have them both together... Needless to say that wasn't possible until now anyway... but if we try to improve it, why not try to have it a bit more complete ;-) |
You can create any number of extended headers, capture them in TeX in any combination with the "standard" headers, and then do whatever you want with them in TeX/Lua. |
So, are Solesmes Antiphonales so exotic they are not worth standard headers? ;-) And do you also confirm one shouldn't put anymore any other mode than the 8 more common ones in the |
I think I'm also a bit confused by the mix of metadata and "presentational" headers. Most headers are giving information about the score while annotations are purely for rendering intent. Not really sure they should be there at all... |
Should I modify gregorio to take any name as a custom header? For backward compatibility, we could reserve some names for existing system headers and promise all new system headers will start with The mode header accepts a number from 1-8. Anything else will produce undefined behavior. How it got this way predates me. I've always used |
It might be the way to go indeed... Out of the 23 documented headers, only 6 do influence the rendering... and some of these were added rather recently... That said, there are already GregorioTeX functions to achieve the same result. So we might as well come back to a situation where none of the headers get used. I don't know anybody using Gregorio who's not customizing the main tex file anyway... We might want to decide whether the intent of gabc format is first archival or rendering. |
Well, this discussion is quite interesting, here are some insights:
Personally, I think it's quite important to be able to differentiate the different modes in the gabc header, and if there was only one way to modify modes, a convention could be established in mode-modifier convention, but if there are several of them, it will just be confusing... The ideal solution for me would be:
I'm no hardcore gregorio user, so feel free to discard my opinion! What do you think? |
For me too, if the headers can be easily queried from TeX or lua. |
@jakubjelinek All the headers are now (in 4.1) passed from gabc to TeX. You can use the |
Personally I'm opposed to relying on people redefining commands to get something done. There's no way we can prevent people from doing it, but redefining commands requires some knowledge of the package's internals in order to avoid creating problems and thus should be reserved for advanced users. Common things which we expect novice users to want to customize should be provided with commands that allows them to that in a straight forward manner. That was the point of shifting to the style system. Now, to what extent this qualifies as something particular to an advanced user or something a relative novice might want to do, I leave to others. I just wanted to weigh in on this aspect since the style system was my initiative. |
@rpspringuel Given three inputs (this being the case here), I want to allow the user to order/omit them in any way they like. Do you have any suggestions for the best way to allow them to do this? |
There are just 6 ways to order 3 inputs when all are included. Adding the ability to omit some of them increases the number of possible cases a bit, but not beyond reason. A fairly generic internal using a
One would then need at least 1, possibly 4, However, I'm not sure that we need to be that generic here. It seems that there may be some reasonable rules which can be applied to these fields which reduces the number of cases. For instance, doesn't |
Oh, and it should be pointed out that if one wants the mode number to be in small caps, then the text representation should use lowercase roman numerals not uppercase (i.e. |
The "down-casing" of the Roman numerals brings up an interesting problem: what if the user changes the style of |
Well, if the user wants capitals but not small caps, they have a couple of options:
We decided before not to include the |
This comment is going to be a bit of a mess because I don't have it clear in my head, but here goes: I was actually considering something like The only "clean" answer I can come up with is to define Is that a bad idea? |
Hmm... I don't think that |
How about this, then: if the first character of |
I think that could work. It would require us to define one internal (a capitalizing equivalent to |
If I |
That's unexpected, but not a terribly big deal. Indeed, in some respects it makes things more consistent:
|
Well, besides the fact that |
I forgot that was a LaTeX specific command. In that case what you need is ✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝
|
As pointed out by @rpspringuel, we currently use bold and small caps (by default) for the mode number, but we are using upper case Roman numerals. What should I do about this? There are numerous options, but the two that seem most obvious (as also mentioned by @rpspringuel):
Finally, how should the |
I think option 2 is better, but I don't have a very strong opinion, and bold seems fine for |
N.B. I have changed my mind about implementing arbitrary ordering of the mode parts until someone actually asks for that feature. If implemented as specified by @rpspringuel, it seems a fairly compartmentalized change, but there's no need to implement stuff that no one will be using. |
If anyone has any further comments on #785, please let me know; otherwise I will merge the pull request and re-close this issue tonight. |
…commentary_box * commit '5e554e692ada1e20b2806a98cb8edbe64ecf12aa': Reworded the discussion of the mode header for better flow, per @rpspringuel. Added mode header examples. Corrected copy/paste mistake. Added mode-differentia header and improved Roman numeral mode handling. Fixes gregorio-project#756.
* develop: Updated tests and expectations for changes to mode handling. Tests gregorio-project/gregorio#756.
gabc header
mode
can now contain only one arabic number, but some pieces require to indicate that the mode is "transported". Quoting:So maybe the convention (and the code) for
mode
header should be one arabic number + an optionalt
(ie:6t
)?The text was updated successfully, but these errors were encountered: