Instant chant engraving with Gregorio
  • chonakchonak
    Posts: 9,157
    Hi, folks--

    Occasionally on the forum I mention the chant engraving software Gregorio. It makes cool-looking output like this:
    image

    But setting the software up is a big technical job. (I'll skip the details: you don't wanna know!)

    So, to simplify things, I've made a way to let you run Gregorio on my system.

    I've set up a web interface at http://run.gregoriochant.org/.

    To use it, you can type up your chant in "gabc" notation, and then paste it into the web form:

    image

    And after you submit the form, you get PDF output in a pop-up window:
    image

    So if you already know how to use Gregorio, or if you'd like to learn, check out the tutorial I wrote, and see the reference pages created by the software's inventors.

    This is all new and tentative, but I hope it will be useful to some of you!

    Link:
    http://run.gregoriochant.org/

    PS: If you want to try a sample, copy and paste this:

    name:Kyrie XVII;
    %%
    (c4)KY(f)ri(gfg)e(h.) *() e(ixjvIH'GhvF'E)lé(ghg')i(g)son.(f.) <i>bis</i>(::)
    Chri(ixj)ste(jv.hijv.) e(ixjvIH'GhvF'E)lé(ghg')i(g)son.(f.) <i>bis</i>(::)
    Ký(f)ri(hj)e(ixjjkij.) e(ixjvIH'GhvF'E)lé(ghg')i(g)son.(f.) (::)
    Ký(f)ri(hj)e(ixjjkij.) *(,) (ixf//hjjkij.) **(,) e(ixjvIH'GhvF'E)lé(ghg')i(g)son.(f.) (::)
  • smvanroodesmvanroode
    Posts: 966
    Richard, this is really great. I have Gregorio running on my iMac, but I tried your web interface yesterday and it works much faster. This is a wonderful way to save people the trouble of getting Gregorio to work, while they still can benefit from its perfect output.

    One question: is it possible to add the following options: to add text above the initial and enter other numbers than the ones listed in the popup menus?

    Steven
  • chonakchonak
    Posts: 9,157
    The software uses the header lines "name", "annotation", and "commentary" to mark up the output. For text above the initial, use "annotation".

    I may change the popup menus to another form to give users more freedom with the numeric values.
  • Richard MixRichard Mix
    Posts: 2,767
    What fun! I had a devil of a time trying to instal Gregorio on an imac before giving up. 'l' being reserved, is there another trick to get liquescents?
  • Fantastic work, Richard! I've also been running Gregorio via command line and man can it be a pain. This interface is wonderful and very helpful; a great start!
  • MarkThompson
    Posts: 768
    This is highly awesome. I've never even bothered trying to install Gregorio because it seemed like such a huge hassle.

    Ten points to you.
  • This is very cool. I really liked Festa Dies, but this seems faster for sure.
  • chonakchonak
    Posts: 9,157
    @Richard Mix: '~' (tilde) after a note is the modifier for liquescents.

    There's a one-page cheat-sheet you can print out at
    http://gregorio-project.github.io/gabc/summary-gabc.pdf.
  • Mark M.Mark M.
    Posts: 632
    I played around with this for a couple of hours last night, Richard, experimenting with the various fonts and settings. This is wonderful… thank you! I've already used it to notate a brief "Alleluia" which I'll sing at Mass tonight.
  • Dan F.Dan F.
    Posts: 205
    Yay, chonak! Much thanks!
  • chonakchonak
    Posts: 9,157
    I've updated the tutorial pages, so that the examples (originally made in 2008) correspond better to the current behavior of the software.

    Links:
    Tutorial
    On-line gregorio interface
  • Richard MixRichard Mix
    Posts: 2,767
    I dont quite get how to force custodii: I'm writing out a verse for a cantor, and would like to give the beginning pitch of the antiphon at the very end.

    A detail that is not obvious from the summary sheet is that the letter-notes are actually spaces and lines, unaffected by clef. You could show this by including the clefs in the first system... I've just discovered that horn in G (c2) is an under-exercised muscle of mine.
  • chonakchonak
    Posts: 9,157
    Interesting question! There is an e-mail list for Gregorio users, and that is probably the best place for tips and Q&A about using the software. You can see info at http://gregorio-project.github.io/contact.html, or just go there to look through the archives.
  • If I download the app and the supporting app (large or small version - what do you suggest?) what are the benefits to me instead of using your online resource (which is cool)?

    Does downloading permit an immediate WYSIWYG view, or does that come...which I think it does...only after it is compiled?

    Very interesting program, since it deals with text & notes.
  • chonakchonak
    Posts: 9,157
    Installing LaTeX and Gregorio locally allows you to create book-length documents that combine text, scores, and other graphics freely. For example, I created a 16-page booklet at home using LaTeX and Gregorio.

    The on-line interface allows for a score only, with minimal text markup (a title and two headers).

    Either way, a WYSIWYG interface is not included. There are WYSIWYG programs for creating LaTeX documents (such as "LyX"), but I don't think anyone has integrated Gregorio use into such a system yet.

    Also, the open-source desktop publishing program Scribus has an experimental interface to Gregorio and LaTeX.
  • Adam WoodAdam Wood
    Posts: 6,451
    Dude-
    This makes me feel like it's 1987.

    There needs to be ancient notation support built into Finale and Sibelius.
    Or someone needs to build a decent drag-and-drop notation program for chant.


    Anyone have experience with the Medieval plugin for Finale? Worth the money?
  • IanWIanW
    Posts: 756
    It's the big problem with Sibelius: Ben & Jerry just aren't into neumes. I went for job with them once. If they''d let me have it maybe I'd have changed their minds!
  • The Medieval font for Finale is rather quirky to understand the use of, sort of like the sentence.

    It has tremendous potential, but seems not to be a product that the creator is very interested in making work. The customer support has been good, but there are so many questions....

    My main interest there is that it, like Gregorio, handles text and neumes.
  • francis
    Posts: 10,668
    Adam:

    I have a drag and drop program in Indesign. You are welcome to have it. Email me.
  • francis
    Posts: 10,668
    Noel:

    Especially YOU should have it! I am at home but will post a new thread tomorrow with the link.

    You literally drag glyphs around on a neumes layer. I use three layers. The staff layer is at the bottom (locked so it doesnt move). Layer two is the text layer. You put the text in first, and then you lock that layer. Then the final layer is the chant font, and you just drag stuff in from a pallet. It is VERY FAST (and totally artistic... no forced spacing from application in your music).. it is totally fluid dude!
  • There needs to be ancient notation support built into Finale and Sibelius.
    Or someone needs to build a decent drag-and-drop notation program for chant.


    I think finale and sibelius should first worry about getting conventional notation "right" before switching to a new paradigm of music. A particular concern for me would be with lyrics. Barring highly melismatic chant, the syllables are generally not separated. When doing chant in InDesign, I type the text first, and neumes second--which is appropriate since the music in chant is subservient to the text. In finale or sibelius, you would have to enter pitches first, and especially in finale, the syllables would be separated, which to unexperienced chanters would lead to poor performance.
    Thanked by 1eft94530
  • Jeffrey TuckerJeffrey Tucker
    Posts: 3,624
    I finally had some time this morning to play with all of this. I live completely outside the Tex world, so this was a serious challenge to install Texworks, configure all the files, get to know the logic and workings of the program itself, marched through the steps, and this is all long before I had really figured out the Gregorio code itself. After 90 minutes, I was still struggling, so I bailed out and went straight to Chonak's page linked above. Now this is easy!!

    All you need here is some knowledge of Gregorio code and you are done!

    So now I have a question. As I understand it, the advantage of this approach is cross-platform stability, flexibility, rock-solid output that is also very beautiful, and none of the endless and eternal problems that come with graphical interface programs like Word using Meinrad. I'm hip to this. And I can see now that it would be possible to create a global repository of gabc files that everyone can use.

    My question is: is this being done? If so, where is it being stored?

    IS there a way that MusicaSacra.com can be of service here?
    Thanked by 1eft94530
  • newmanbenewmanbe
    Posts: 76
    There is no central repository. The entire 1962 Graduale Romanum is on-line somewhere, which I would say is probably the largest collection of gabc files. There is a message from Chonak which mentions http://www.caecilia-project.org/, which might have been what I was thinking of, but it seems to have lost its content.

    Do you think something like a wiki like the CPDL would be the best/easiest/most maintainable? I have experience in web programming, as does Chonak (it would seem!) but a wiki might be easiest. (Thinking out-loud, mostly:) Gabc’s format, though, especially because of its annotations, might be better suited to a custom-solution, which would make, for example, more precise searching easier.
  • FWIW, I have put the Introit*, Offertory, and Communion antiphons from the Graduale Simplex into GABC format. View here.

    I should note that while Gregorio has extremely serviceable out-of-the-box results, fine-tuning its output via tweaking the base GABC markup gives positively stellar-looking notation.

    *Except for Easter Sunday, whose Introit is an adaptation of Alleluia, lapis revolutus est.
    Thanked by 1eft94530
  • Jeffrey TuckerJeffrey Tucker
    Posts: 3,624
    we do have http://wiki.musicasacra.com and it is completely unused. So this might work.

    I'm still having some trouble. Here is a Psalm from AVOZ I was experimenting with. There is a problem with the punctum cavum on watercourses; the line doesn't break. Here is my complete gabc file. Please critique this code so that I can learn.

    name: Psalm 65;
    commentary: Arlene Oost-Zinner;
    initial-style: 1;
    annotation: VI;
    %%
    (c4)The(f) seed(h) that(j) falls(ih) on(g) good(fg) ground(g.) (,)will(f) yield(gh) a(h) fruit-(fe)ful(d) har-(f)vest.(f.) (::ZZ)

    You(f) have(gh) visited the land and wa-(hr)tered(gr) it;(g.) (,) greatly have you(hr) en-(g)riched(h) it.(f.) (:) God's watercourses are filled;(hr) (,) you have(hr) pre-(f)pared(gh) the(g) grain.(f.) (::Z)

    Thus(f) have(gh) you prepared(hr) the(gr) land;(g.) (,) drenching(hr) its(g) fur-(h)rows;(f.) (:) breaking up its clods,(hr) (,) softening it with show-(hr)ers, bless(gh)ing(g) its(fr) yield.(f.) (::Z)

    You(f)have(gh) crowned the year with your(hi) boun-(gr)ty,(g.) (,) and your paths overflow with a(hr) rich(g) harv-(h)vest;(f.) (:) untilled meadows overflow with it,(hr) (,) and rejoic-(hr)ing(f) cloth-(gh)es(g) the(fr) hills.(f.) (::Z)

    The(f) fields(gh) are garmented with flocks and the valleys blanket-(hr)ed(g) with(h) grain.(f.) (:) They shout(hr) and(f) sing(gh) for(g) joy.(f.) (::)
    Thanked by 1eft94530
  • Mark M.Mark M.
    Posts: 632
    I was just looking at the Gregorio tutorial (this page, specifically).

    Maybe try this code where you need the line break:

    (z)
  • Jeffrey TuckerJeffrey Tucker
    Posts: 3,624
    That worked!
  • chonakchonak
    Posts: 9,157
    If you explicitly control the line break with the (z) character, and then change the page width or font size, you can end up with irregular results.

    Another approach is to put the punctum cavum explicitly on the first word in the series, and then put empty () pairs afterward like this:

    God's(hr) watercourses() are() filled;() (,)

    That leaves more flexibility for Gregorio to decide where to break the line.

    ---

    About caecilia-project.org, Andrew Hinkley created that and presumably still has his collection of GABC files.

    ---
    As for host names, there's no reason why you couldn't define a host name such as chantfiles.musicasacra.com . (wiki.musicasacra.com might be worth saving for a text-based wiki project.)
    Thanked by 1eft94530
  • Jeffrey TuckerJeffrey Tucker
    Posts: 3,624
    Ok, continuing the tutorial, what about adding space between verses to visually separate them? And what about that fancy R thing that indicates where to return to the Antiphon?
  • newmanbenewmanbe
    Posts: 76
    Jeffrey:

    An upper-case Z will end the line without justifying the line (which I do not think is exactly what you were asking [Update: now that I actually looked at the example, I know it is not what you are looking for; to add white space between the lines, you would either have to edit the TeX output or have multiple gabc files]).

    ℟ (the crossed R) can be entered as follows: <sp>R/</sp>
  • Jeffrey TuckerJeffrey Tucker
    Posts: 3,624
    You know what I find to be the biggest problem with Gregorio? Typos are really really hard to spot. This is because everything looks so beautiful in the output. It seems like it just has to be right 100%. You find yourself having to sing very critically in order to spot problems.
  • Jeffrey TuckerJeffrey Tucker
    Posts: 3,624
    By the way, this was my final output file

    name: Psalm 65;
    commentary: Arlene Oost-Zinner;
    initial-style: 1;
    annotation: VI;
    %%

    (c4)The(f) seed(h) that(j) falls(ih) on(g) good(fg) ground(g.) (,)
    will(f) yield(gh) a(h) fruit-(fe)ful(d) har-(f)vest.(f.) (::Z)

    You(f) have(gh) visited the land and wa-(hr)tered(gr) it;(g.) (,)
    greatly have you(hr) en-(g)riched(h) it.(f.) (:)
    God's(hr) watercourses() are() filled;() (,)
    you(hr) have() pre-(f)pared(gh) the(g) grain.(f.)R/ (::Z)

    Thus(f) have(gh) you prepared(hr) the(gr) land;(g.) (,)
    drenching(hr) its(g) fur-(h)rows;(f.) (:)
    breaking up its clods,(hr) (,)
    softening(hr) it() with() show-()ers,(f) bless-(gh)ing(g) its(fr) yield.(f.)R/ (::Z)

    You(f)have(gh) crowned the year with your(hr) boun-(gr)ty,(g.) (,)
    and(hr) your() paths() overflow() with() a() rich(g) harv-(h)vest;(f.) (:)
    untilled(hr) meadows() overflow() with() it,() (,)
    and(hr) rejoic-()ing(f) cloth-(gh)es(g) the(fr) hills.(f.)R/ (::Z)

    The(f) fields(gh) are(hr) garmented() with() flocks() and() the() valleys() blanket-()ed(g) with(h) grain.(f.) (:)
    They shout(hr) and(f) sing(gh) for(g) joy.(f.)R/ (::)
  • newmanbenewmanbe
    Posts: 76
    .
  • Jeffrey TuckerJeffrey Tucker
    Posts: 3,624
    I'm also told that you can use

    centering-scheme: english;
  • I've just started using this, too, and it's fantastic! My favorite feature is the margin cropping, as I am not familiar enough with Tex to be able to format a book with it, and thus restricted to inserting the chants as graphics into another word processing program.
  • Mark M.Mark M.
    Posts: 632
    Still thoroughly enjoying Chonak's Gregorio interface!

    I sort of wish that there was some sort of warning that would pop up when you try to close or quit out of the Gregorio window. I know it would probably be annoying to some extent, but it was really frustrating when I had just about perfected some Gregorio code and then had inadvertently closed the window… poof!

    And I'm curious if there really is enough of a threat to warrant that captcha ("please complete this sum") box.

    Gotta get back to some code here!
  • chonakchonak
    Posts: 9,157
    Sorry for the inconvenience of the arithmetic test, but I've seen my blog server (running on the same machine) occasionally come under automated overload attacks, so I put this test in as a precaution.
  • BenBen
    Posts: 3,114
    Mark M,

    One trick I often use for situations like that is to compose the code in notepad, and then copy/paste it into the browser. It works well in other situations too.
    Thanked by 1eft94530
  • Mark M.Mark M.
    Posts: 632
    Yeah, I've sorta been doing that. I find myself, though, staying within the interface window… tweaking the code and seeing what changes result. Then, I try to remember to save the "final" code in a TextEdit document. (I'm on a Mac.)
  • BenBen
    Posts: 3,114
    I couldn't find it anywhere in the gabc or gregorio documentation, so I'll ask veterans here:

    How do you make a dashed bar line with gabc?
  • There is no option for a dashed bar line in gabc (but someone please correct me if I'm wrong), and I think it is because Gregorian chant doesn't know dashed bar lines. At least, I have never seen them before.
  • BenBen
    Posts: 3,114
    Hmmm... I was talking to Aristotle Esguerra today, and he said you'd use them in a situation like this psalm that I'm singing next Friday (attached. The alleged dotted bar goes where the half bar currently is). The idea is that you only sing what's before the dashed bar on the first line of each verse (in my case on "I will", "you have", and "but the"). On the other times, you start at the bar ("I will", "the nations", "he will") and skip the "incipit".

    Idk... I guess I'll talk to Aristotle about it next time I see him.
  • Actually, there would be no dashed bar at all to indicate this — in my experience, the practice of singing the incipit (or not) would be an understood custom.

    In the singing of the Divine Office in Latin, the chanting of psalmody employs the incipit for the first line of the first verse after the antiphon. For the Benedictus, Magnificat, and Nunc Dimittis (when able), the incipit is chanted at every verse. The responsorial psalm that Ben posted employs the pattern used in the former.
  • BenBen
    Posts: 3,114
    Whoops... I guess I misunderstood you yesterday. My mistake :)
  • Here is a short, easy-to-follow Video Tutorial on "How do I use Gregorio?"

    Veronica Brandt is also posting several more on the CCW Blog -- some she's posted already, and I understand more are coming.
  • chonakchonak
    Posts: 9,157
    By the way, finally I took out the arithmetic test.
  • chonakchonak
    Posts: 9,157
    The Gregorio server at http://run.gregoriochant.org/ is now running version 5.0.1.
  • Thank you, Richard! Are there any changes or new features that we might expect to see with this new version?
  • chonakchonak
    Posts: 9,157
    There are various bug fixes; some changes involve features that aren't used in the web site implementation. Here are excerpts from the change log for version 5.

    1. The header line "initial-style" is no longer available. This functionality is now performed by the \gresetinitiallines TeX command. (not implemented in the web site).

    2. As of version 5.0, ledger lines are extended through notes on either side of a ledger line that crosses a stem, as long as the notes are within the same element.

    It may not produce the exactly desired results. In order to get the results you want, you can override the automatic behavior in gabc:

    [oll:1] will force an over-the-staff ledger line on a note.
    [oll:0] will suppress an over-the-staff ledger line on a note.
    [ull:1] will force an under-the-staff ledger line on a note.
    [ull:0] will suppress an under-the-staff ledger line on a note.
    The other oll and ull forms take precendence over and will interfere with the above settings, so if you are using them, you may need to adjust them to get the output you want.

    Note: You may need to use a construct such as /! to keep notes that are separated in the same element. For example, abcV is two elements (ab and cV), so the ledger line on b is not extended to cV. In contrast, ab/!cV is one element, so the ledger line on b is extended to cV.

    3. As of version 5.0, when the note after the oriscus is at the same pitch as the oriscus, the oriscus will point towards the first non-unison note after the oriscus or downwards if at the end of the score. Use the 0 (for downwards) 1 (for upwards) modifiers to force a different orientation.

    4. As of version 5.0, elisions after a vowel centering prefix will not cause the center to be placed on the vowel at the end of the prefix. Since elisions are unvoiced vowels, this makes more sense than the previous behavior. However, if this change does not produce your desired output, you may surround the center manually with { and } in gabc.

    5. The printing of the commentary box is no longer tied to the printing of the inital. As a result it is now possible to have a score which has a commentary but not an initial.

    6. Dynamic line spacing when a clef change occurs at the end of a line is fixed so that the line after the clef change is spaced appropriately.

    7. Glyphs for pes quadratum shapes with initio debilis are no longer missing. Use -fqg to engrave them.

    8. Horizontal episemata bridge spaces more correctly. As mentioned earlier, you can prevent this by appending 2 to the _ on the note before the space you do not want bridged.

    9. A rising note after an oriscus flexus will no longer generate a porrectus.

    10. Translation text in a syllable with a trailing (forced) hyphen is no longer truncated to its first character.

    11. A trailing (forced) hyphen in a syllable no longer generates a forced hyphen in the previous syllable.

    12. A trailing space on a header line is now ignored (see #1269).

    13. A pes whose second note is an oriscus now obeys the oriscus orientation rules.

    14. Default spaces have been adjusted.

    15. Notes are now left-aligned as if all clefs had the same width as the largest clef in the score. You can get previous behavior back with \grebolshiftcleftype{current}, or temporary force alignment until the end of a score with \grelocalbolshiftcleftype. See Documentation of these functions.

    16. A clef change immediately before a line break (z) will now typeset the new clef at the beginning of the next line. An explicit custos (z0) immediately before such a clef change (or separated by only a bar) will be suppressed.

    17. 9 new St. Gall neume glyphs have been added to the gregall font. 5 new St. Gall neume glyphs have been added to the gresgmodern font.

    18. The left stem of Dominican plicae on lines has been shortened.

    19. Clefs on the top or bottom line adjust the spacing as if there were a note above the top line or below the bottom line, respectively.

    20. More cavum shapes are now available. To use them, simply add r in gabc to any note in a glyph.

    21. Square brackets can be placed around notes by using [[ and ]] to surround said notes in gabc.

    23. a font grelaon for Laon style adiastematic notation has been added (see GregorioNabcRef.pdf for details). This is a preview, backward incompatible change are possible in future releases.

    24. Musica ficta signs: Add r6, r7, and r8 to a note for a flat, natural, or sharp (respectively) above the note.

    25. A tag may be added to a syllable to indicate that its text should not overlap any previous syllable.

    26. More general support for protrusions. The tag in gabc indicates where a protrusion should begin. There is an optional argument that allows the protrusion factor to be specified (in this example, .5). Additionally, the comma, semicolon, colon, and period are automatically protruded, with configurable protrusion factors. See GregorioRef for more information.

    27. [nocustos] may be used in gabc to prevent a custos should the line end at that point.

  • Josh
    Posts: 103
    Many, many thanks for this wonderful Gregorio interface, which is of the greatest benefit to me and the small schola I look after!

    One question - until a year or so ago, I could insert a translation underneath the text, with the translation appearing in italics; but when I now try to do so, all the text and all the translation appears in italics. Is this a bug of some sort?

    I am not very computer literate so I haven't been able to work out how to download Gregorio, so your online interface is a lifeline!
    Thanked by 1Ralph Bednarz
  • chonakchonak
    Posts: 9,157
    If you post a short example pf gabc code to illustrate the problem, I can confirm it. If there is a malfunction we can ask the developers about it.