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

Reply via email to