The Midi follower object suivimidi accepted monophonic scores and
performances only (actually, only note-on events were considered), with some
remaining bugs in the note input and the score parsing (described in
section 3.1).
6.2 What has been done
Score parsing moved to a separate source module (which is used bysuiviaudio also).
Made the chord fusion window a parameter. (Allows completely monophonic
scores.)
The recognition of pauses has been added, and consequently ghost states
for rests also (type g-rest).
Extended the performance input to be fully polyphonic, keeping track of
alived notes and note attacks, to match the polyphonic score model.
Output rests also. Still to define: score representation for important
rest (one that should have a cue), e.g. note 127 on special channel (trill
channel). Same for audio.
A new trill coding has been introduced using a special Midi channel, and
no more the ad-hoc velocity-is-note-offset coding.
A true polyphonic note matching scheme has been developed, for note and
ghost-states, and rests and ghost-rests, which determines probabilities for
observation likelihoods according to the number of matching notes.
6.3 What is to be done
Maybe determine note match differently for trills, like
match = t1 XOR t2 AND n1 AND n2 AND ...
(3)
for trill notes t and normal notes n.
More tests for note match.
Test usability and behaviour while composing: A composer wants to make
pauses while playing, to adjust parameters. Does suivimidi re-follow or do we
need an explicit pause mode, to be activated by a foot switch, for example.