At 07:34 AM 5/5/04 +0100, Neil Jennings wrote:
Output format:
My program HARMONY has a set of classes which I would be prepared to offer
as a starting point for discussion (but they are in VB at present).
It has a TUNE class, VOICE class and NOTE class
A TUNE can hold a number of VOICES
A Voice can hold a number of NOTEs, which are structured as a
bidirectional linked list
(Notes include all musical items, including bars, time and key signatures,
tempo, instrumentation etc)
NOTE methods include one to return the actual pitch of a note, as modified
by the current key definition and any preceding accidentals in a bar.
The main restriction at present is that it cannot hold polyphonic voices,
but this could be overcome by providing multiple threads within a voice.
Or, perhaps, by having a note object contain a list of (zero or more) pitch
objects rather than just one pitch value. A note object with a duration and
no pitch objects would, of course, be a rest.
I'd like to reiterate what I'd suggested earlier, that an application
processing a tune, whether converting it into sound or into sheet music,
will want to obtain successive lists of the note objects that occur
simultaneously across the voices.
Such lists would, I suggest, be returned by a NoteIterator object that is
constructed with a Tune object as parameter.
*
* Jerome Colburn (;-{=''',,,=*
* [EMAIL PROTECTED] *
*
To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html