Project: Phase 1

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.

1. Getting up to speed on the project

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.

2. Fixing the spacing

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:



3. Using XML

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.)


Thomas VanDrunen
Last modified: Fri Jan 20 15:44:33 CST 2012