You can get the blank repository with
hg clone ssh://hg@cshg/335-12/g6
All of you are officially "group 6". Please clone the repository right away so I'll know right away if I did something wrong (which, from my track record, is not completely unrealistic).
Remember that all repository commit comments should include a mention of all students who contributed to the work.
Please plan to have the entire project completed by Monday, April 16.
The final version should retain the functionality of the previous versions with the formatting problems fixed. The user interface should also be revisited. To this end, find some sample users to test out the product. See if they can accomplish simple tasks, get their feed back on the usability, and get their feedback on the general appearance. The suggestions found in Joel Spolsky, User Interface Design for Programmers, are a good place to start for conducting usability tests.
Based on this information, make some changes in the cosmetics and, possible, presentation of functionality to the users. Include in the repository a brief report on what you found and what changes in the UI of the basic tool you did as a result.
This is one of the major parts to this phase. Provide a tool by which users can enter the information for a next text or a new tune (this could be viewed as separate tools). These will require some planning, some usability testing, and some revising. Make sure work on this aspect is carried out throughout the time you have to work on this phase.
For the text editor, the use should be able to specify the meter and then simply to type in the text of the hymn, without indicating syllables. Then your tool should process the text and suggest a syllabification--an off-the-shelf dictionary tool should make this feasible. The user should be flagged for potential problems (words not found in the dictionary, lines that don't have the right number of syllables, or more severe problem).
Then the user should be allowed to edit the syllabified version---this is not only to fix the problem but also to correct the suggested syllabification, since some words can be syllabified in slightly different ways based on the demands of the meter. For example, power is sometimes scrunched into a single syllable (pronounced more like par), and Israel can be sung as either two syllables (iz - reel) or three syllables (iz - rye - ell).
The text editor should also allow the user to indicate if something should be considered a refrain, held syllables (or several syllables in text for a single syllable in the tune), and the like.
The tune editor will take some creativity. The user should indicate the meter, and then given a screen where one can indicate the note or notes for each syllable in each voice. There should also be a way to view the tune while the input is unfinished. I'm thinking it won't be feasible to have the music appear dynamically as the user enters it, but the user should be able to initiate a rendering of the tune as entered-so-far.
Include a report of the results of usability testing and how it shaped the result.
Here are some case studies of difficult cases that need to be handled somehow. This may require some refining of the model. The examples below are from The Book of Psalms for Singing and Hymns for the Living Church.
Psalm 107 is versified in this example using common meter (CM), but but because of its length it is split up into five different selections, each with its own tune. Some tunes are plain CM and others are CMD (common meter double).
Make it so that any portion of a text like this can be sung to any CM or CMD tune. (What if a text with an odd number of stanzas is paired with a double-meter tune? There are several ways to handle (or prevent) this. Let's discuss that in person when you get there.)
I do not know the proper term for this---whether it's "syncopation" or just "lack of rhythmic unison", but here is what needs to be handled. In the examples below, there are a few cases where one or more voices has a syllable with a longer note that the other voices, followed by a shorter (in terms of note duration) syllable.
This needs to be handled without a problem. You may define a reasonable constraint on how far out of sync voices may get.
Many tunes have a feature at the end of a stanza that a line from the current stanza is predictably repeated. One such tune in Hendon, shown below with a versification of Psalm 113 and the hymn "Take my Life and Let it be":
Note that on the left the tune is considered to be 7.7.7.7 meter, though on the right it is considered 7.7.7.7.7. I have also seen it referred to as "7.7.7.7 with repeat." The point is that that the tune can be used with any 7.7.7.7 text, and it will always grab the last line of each stanza of that text and repeat it. In the next example, we see the two halves of a versification of Psalm 48 paired with two CM tunes, one normal (Tallis Ordinal) and one with a repeat (Zerah). Any portion of a text like this should be able to be used with either tune seamlessly.
Sometimes the repeat is not at the end of the stanza and not in whole-line portions, such as in the tune St Catherines, below. This text could also be used with the tune Darwall (often used with the hymn, "Rejoice, the Lord is King").
(You do not need to handle things like the funny business with the tenor at the beginning of this tune.)
Your program should handle tunes like this--there should be a way to specify that a part of a tune does not consume new syllables but repeats the n syllables that preceded. (The repeats in the tune Antioch, used with the hymn "Joy to the World", is more complicated because the repeat itself contains a repeat. Get other things working before you tackle that.)
Be able to specify that a portion of a tune should match up with a portion of a text marked as a refrain.
Some tunes have the feature that they add alleluia at the end of certain lines.
Notice that the tune meter is "7.7.7.7 Alleluias". This text comes from Psalm 148, which does happen to have many occurrences of the equivalent to "Alleluia", but not that many and not with that sort of regularity. Do not consider this part of the text. The tune would the alleluias to any text of the appropriate meter.
Some texts simply fudge the meter. Your program needs to have a certain degree of tolerance for this sort of thing and allow a text to indicate when this happens.
On the left, the tune is marked as 11.12.12.10, meaning the first line of each stanza should have 11 syllables. The first and fourth stanza, then, are "right" (count the syllables), whereas "all the" and "though the" force the note to double.
On the right, "O Come, All Ye Faithful" is so messed up that the editors of that hymnal mark its meter as "Irreg Ref", ie, "Irregular with refrain." Actually, the tune Adeste Fideles can be considered 11.11.11.11 (for example, it is sometimes used as an alternative tune for "How Firm a Foundation"). The text, however, is "deficient" in the places circled and a few other places in that there aren't enough syllables. They need to be held for two syllables of the tune. There should be a way to indicate these fudges, and they should be considered fudges in the text, not the tune.
(The use of Adeste Fideles for "How Firm a Foundation" raises another interesting point: There should be a way for a refrain not to be considered a refrain at all but a means to accommodate a slightly longer text meter.)