Phase 1 of the project is relatively straight forward, though that is not to say that it won't be a fair amount of work. Your task is to become familiar with the code base and make two changes which will not only force you to understand the code base but also make progress towards a better final product.
First, read and study the specifications for the original project:
As you read this, you will start to fill in the gaps of your domain knowledge---understand how four-part chorales work, how their meters work, and how this allows the mixing and matching of texts and tunes.
Then turn your attention to the code base.
Play around with the application
(run it using ./compileAndRun
)
to see how it works, and compare how this is implemented
in the code.
Some parts of the code will be beyond material you have encountered in class so far---for example, the interaction with the database. Those parts you can leave untouched for now.
Once you know your way around the code a little, you will be ready to tinker with it. Figure out how spacing of the words and the music is computed and determine why we get poor spacing as is seen here:
We will cover XML in class on Feb 3.
During the last week of this phase (up to Feb 10),
made one other change.
Redo input.TuneParser
and
any dependent classes so that in addition to using
the input files format currently being used it can parse
files formatted using XML.
Likewise there should be a module that can output
XML representing tune information so that the data already
available can be converted to the new format.
DUE: Monday, Feb 13, at 5:00. (This is one week later than is indicated in the syllabus.)