Assistant Composer for "prepared piano" begins.

Scores will contain both input and output staves.
The input staves tell the performer which keys to
press. Output staves contain midi information
which will be sent to the output device under
control of the info provided by the performer.
Initial development is by realising a new score:
Study 3 sketch 2, which adds a new input staff
to Study 3 sketch 1. The input staff will have a
1-note chord for each sequence to be triggered
in the output staves.
*************************************************
This commit compiles, and all scores prior to
Study 3 sketch 2 have been re-compiled.
The AssistantComposerMainForm has been
reprogrammed, and loads the Study 3 sketch 2
setttings correctly, but the score will not yet
compile because the voice.UniqueMidiDurationDefs
list needs to be changed to a voice.NoteObjectDefs
list which will accept InputChordDef and
InputRestDef objects (or something to that effect).
See Notator.cs.AddSymbolsToSystems(...).
***************************************************
Corrected the BeamBlock stroke width.

Strangely, the BeamBlock stroke width was being set
to pageFormat.BarlineStrokeWidth. Correct is,
of course, pageFormat.StafflineStemStrokewidth.
BeamBlocks now look much better.
Beams in BeamBlocks are now slightly thicker.

Scores recompiled and uploaded to the web.
Intermediate commit

This commit contains bugs, but there are a lot of
changes I dont want to lose...
Intermediate commit

About to remove MidiChordDef!
This means moving all the necessary fields into
UniqueMidiChordDef. I think all the other classes
derived from MidiChordDef should be removed!
This commit contains bugs.
Intermediate commit

The following classes have been renamed in their
definition files, but not elsewhere:
RestDef --> RestDef_old
MidiChordDef --> MidiChordDef_old
InputChordDef --> InputChordDef_old

About to rename classes:
UniqueRestDef --> RestDef
UniqueMidiChordDef --> MidiChordDef
UniqueInputChordDef --> InputChordDef

do some testing, and then delete the _old files.
Intermediate commit

This version compiles (!), but needs debugging
and cleaning up.
The creation of unique, composable objects has
been cosiderably simplified, and there probably
a few redundant classes that can be deleted...
Also, there are probably many unique... names
that can be simplified.
Intermediate commit

About to try removing the PaletteDef class.
Intermediate commit

Study 3 sketch 1 now compiles.
Song Six and Study 2 both throw exceptions.
Palettes now only have public DurationDefs

All other palette properties are now private.
Encapsulating the other properties leads to much
more comprehensible code.
This commit compiles, but there are bugs.
There are probably some classes that can be
deleted, both included in the solution and in
the solutions directories. These need cleaning up.
Palette durationDefs are now read only.

The DurationDefs list is now private (_durationDefs),
but public property Count (_durationDefs.Count)
and public function UniqueDurationDef(index)
have been added.
This commit compiles, but needs testing and
debugging on all scores and in the palettes form.
About to merge IUniqueDef and IUniqueCloneDef

Study 2 and Study 3 sketch 1 currently compile.
IUniqueCloneDef deleted.

All IUniqueDef objects are now cloneable, so that
VoiceDefs can be cloned.
All three scores now compile (with pitch errors)

Song Six, Study 2 and Study 3 sketch 1 compile.
They are rhythmically correct, but the pitches
are not as they should be.
Chord pitch densities seem correct, but the
inversions seem to be wrong. Study 2 is closest,
so debug that first.
MidiChordDef inversions corrected in Palette.cs

Study 3 sketch 1 and Study 2 now compile with
the correct pitches.
Song Six compiles, but the pitches are still not
correct.
All scores (except Study 3 sketch 2) compile.

The graphics now show the correct pitches in
Song Six, Study 2 and Study 3 sketch 1.
The midi info in these scores should be correct,
but still has to be tested in the assistant performer.
Study 3 sketch 2 does not yet compile, because
the InputStaff still has to be written.
Files cleaned up

Deleted unused usings in AssistantComposer
namespace.
Song Six files are now in their own namespace.
Deleted unused files.
More cleaning.

Deleted unused usings in whole solution.
Deleted unused IUniqueMidiDuration interface.
Refactoring and comments

Renamed UniqueCautionaryChordDef to
CautionaryChordDef.
Renamed UniqueClefChangeDef to
ClefChangeDef.
Added comments to the IUniqueDef interfaces.
SVG now uses "class" instead of "id" attributes.

Currently finalizing the new version of the
SVGExtensions file format.
The Assistant Performer has also been updated
for this version of the file format (though input
staves have not been created or tested anywhere),
and the current scores all play back correctly.
(Known bug in the AP: performances that start
after the beginning are not working correctly.)
The change to using "class" instead of "id" seems
logical. The "id" attribute is now only written to
"SvgSystem" and "Staff" objects (as a
convenience when debugging SVG files).
Also fixed some bugs.