next up previous contents
Next: Screenshots Up: Suivi de partitions musicales Previous: Résumé :   Contents

Historique du travail réalisé

-----------

07-05

Meeting with Serge Lemouton and Philippe Manoury about the score following (see report for this meeting)

-----------

14-05

First documentation written

-----------

15-05

Encounter with Andrew Gerzso about the midi Score Following (suivimidi) (see report for this meeting)

-----------

22-05

New version of suivimidi.c, written by Nicola Orio Changes :

- Const INT_TICK is set to 5ms (instead of 10ms in previous version)

- the probability of the attack of a note is directly modeled

-----------

27-05

Changes in suivimidi.c :

In function "obscalc", ev->osbli[2] = prob_s; becomes : ev->obsli[2] = prob_r;

(this wasn't a good idea, I changed it back after a few tests)

-----------

29-05

Changes in suivimidi.c :

- Enter Parameter for jMaxObject "suivimidi" is a list of 2 elements pitch, velocity instead of only the pitch as a single Integer, as previously

- Changes in functions "suivimidi_newnote" and "suivimidi_update" linked to the changes on parameter type.

-----------

30-05

Changes in suivimidi.c :

- A variable "newnote_occured" is added. It is set to 1 if a noteon as occured, and to 0 if this note has been handled

- Function suivimidi_update only makes update if newnote_occured==1

-----------

03-06

var newnote_occured is no more global, but member of struct suivimidi_t. This var has no more only binary value. It is incremented when a new note has occured and decremented when a note has been handled.

a mode "nozigzag" has been written by Diemo Schwarz to prevent the follower from backward steps in the score.

-----------

05-06

Test in suivimidi_refill to prevent Segmentation faults by acceeding an array with negative index (case of states REST, on which poly=0 and poly-1 is negative)

loop in suivimidi_update to highlight all notes in chords in the score instead of only one.

variables added in debug mode for statistic purpose (counters and quality indicators)

-----------

06-06

CVS commit for actual revision of suivimidi.c

-----------

07-06

CVS commit for all the tests-files used for suivimidi.

-----------

10-06

Flag for debug verbose added. Level of verbose can be set in the patch, by sending messages to suivimidi object.

-----------

11-06

Changes in suivimidi

- suivimidi_newnote : flag "isnew" is set to 1 only when new event is a noteon

- suivimidi_update : when the follower is in a g-state, object suivimidi outputs now the pitch of the related note, and outputs it only one time

- suivimidi_obscalc : "prob_r" is set to "rest_ok" when note velocity is 0 (noteoff) (in previous versions, was : when note pitch is 0)

-----------

12-06

Meeting with Serge Lemouton and Philippe Manoury about the score following (see report for this meeting)

Function suivimidi_update rewritten :

- better structure

- algorithm optimized

- comments cleaned

-----------

13-06

Creation of object suivieval, to make statistic on score following results

-----------

17-06

CVS commit suivieval.c

first version that compiles...

-----------

21-06

in suivieval.c :

setfilename bug fixed

output log files more pretty and "readable"

error-threshold settable in patch

-----------

24-06

in suivieval.c :

- realloc bug fixed : number of events to be recorded is now fixed from the beginning, and settable by user. If there are more events than space allowed, events are not recorded but there is no bug

- a 4th file is written, with informations of the match.log file, statistical datas (mean delta, std delta, number of errors, % recognotion...) and informations on test conditions (modes, error-threshold)

-----------

24-06

in suivimidi.c :

- trills are modeled by a chord in a different midi channel

-----------

27-06

new jMax object created : suivimakecue

used to add cues to a reference note track

-----------

01-07

object suivieval outputs a list of statistic variables at 1st outlet

-----------

03-07

Object suivimakecue finished. This object record the label track for a given note track

-----------

04-07

files suivimakenet.c and suivimakenet.h created.

Modeling Function for score parsing are now in those files instead of suivimidi.

-----------

05-07

Help files for score following classes written and added to package

-----------

08-07

in suivimakenet.c :

- functions added to factorize calculations

- a gstate (type g_rest) is added after each rest-state

- max_diff is a parameter settable by user in suivimidi.

-----------

09-07

in suivimakenet.c :

G-rests are modeled before corresponding rests

-----------

10-07

in suivimakenet.c :

Model changed : ghost-states (g-states and g-rests) are now modeled before their corresponding n-state or rest Map of alllowed transitions changed.

-----------

11-07 -> 17-07

in suivimakenet.c :

Model structure changed :

- A state is made at each change in the score (very useful in case of polyphonic events with overlaps)

- There are 6 types of changes :

. "One_attack" : the only one event within max_diff is a note begin;

. "One_release" : the only one event within max_diff is a note end;

. "Poly_attack" : 2 or more notes begin within max_diff;

. "Poly_release" : 2 or more notes end within max_diff;

. "Legato" : 1 note ends and another begin within max_diff;

. "Poly_legato" : 2 or more notes end and 1 or more begin within max_diff;

- In each state which is not a rest, we have the current note and all alive notes

-----------

23-07 -> 30-07

midi perf entry matching adapted to new model :

- in suivimakenet.c :

. Changes in refill

. Alive notes handling when we make a refill

- in suivimidi.c :

. changes in suivimidi_obscalc

-----------

31-07 -> 01-08

New object suivimapper : gets labels from suiviaudio or suivimidi and outputs labels when needed

-----------

02-08 -> 06-08

Alive-notes handling debugged in suivimakenet.c

In suivimidi.c :

Attacked notes are considered more important than alive notes in matching.

-----------

07-08

In suivimidi : Added functions to force the follower to go forward or backward while following.

-----------

08-08

midi_demo.jmax and suivimidi.help.jmax updated

-----------

09-08 -> 12-08

In suivimakenet.c and .h :

New way to cut the sequence of events into a sequence of realevents :

the whole sequence is cut when we do the first makenet. This avoids a lot of problems :

- size problems (we are sure to have enough realevents to model our states)

- oldrests and old_alivenotes problems (we don't care anymore)

-----------

13-08

- Functions for forward and backward forcing added to suivaudio

- In suivimidi : a label can now be associated to a rest

-----------

14-08

In suivimakenet.c :

Factorised state creation in function "suivimakenet_addstate", that sets state values (time, duration...) and calls suivimakenet_dostate.

In suivimidi.c :

Attack_weight is now a parameter (default : ATTACK_WEIGHT = 0)

-----------

19-08 -> 23-08

Little changes and debug works.

Documentation update, cleaned directories


next up previous contents
Next: Screenshots Up: Suivi de partitions musicales Previous: Résumé :   Contents
Gilles Mathieu 2002-08-22