Thank you Carl, that is a perfect example. For me, the gap on the right hand side because of the forced break breaks the flow. Also takes up more space. If I force breaks it is ok, but I prefer compact music.
Sounds like we are working on something similar, Carl. I'm porting the Reactor Core Hymn repository
http://hymns.reactor-core.org/ over to
http://beautifulhymns.org/ Right now I'm doing what you're doing, but I'm switching over to using a LISP framework with Django templates. The LISP framework lets me print out the 4 parts separately, and generate music separately, etc. One thing I'm tackling is this: for MIDI output, on some verses you want two notes, because the word has two phrases, but in other verses you want to respect the tie between two notes because there is just one phrase. So in the music, I insert some of my own codes that are interpreted by the LISP framework: (tie print 1 3) Would insert the "~" tie into the notes at that point, but only in the PDF output, and stanzas 1 and 3 of the MIDI output. (tie) by itself just inserts "~" tie in all stanzas and the print output. I also added syntactic sugar for "slur" and "triplet" (slur a b c) (triplet a b c) generate the correct output.
I realized the need for this LISP framework when I got to some of the 5 part hymns in the Cantus Christi hymnal. By 5 part, I mean they would have 4 verses with refrain.... then another four verses with a different refrain... and another two verses to finish off! And different melodies in each part. And I wanted to automate the Sacred Harp hymns as well. And stuff as simple as intros and outros.
Why go to all this trouble? So that a change to the source will show up in all generated outputs, the PDF file, the full MIDI file, the MIDI file for each individual part, etc. As someone who doesn't play a musical instrument, I found it very hard to follow along when virtuosic performers didn't follow the notes too closely. Having the printed music and the audible music matching perfectly really helps me with singing.
Ted