MusicReco

TODO using tickets for release 0.1

Here is the list of development tasks to be done before the next release. A development task (ticket) could be compared as a scheduled Unix process. It's composed of a state of execution (running, sleeping, stop/finished/interupted, waiting or dead), it's owned by a person (without permissions) and have a priority value (i.e. nice value). Moreover, tickets are classified depending on the requirements such as core development, GUI development, document creation, tests... Tickets dependences are handle as processes in a tree like structure with parent children relationship. To do that tickets have 2 ids that is parent id (pid) and ticker id (tid) on the form pid-tid. Thus the folowing simple rule is applied : A ticket could be stopped if and only if all its children are stopped. that is to finish the development of a ticket, first finish the development of its children.

1-1 Make the release 0.1

pid1
tid1
statewaiting
ownerfree

Should provides sources (tar/zip archives), binaries (tar/zip, rpm, exe) with version information, documentations and some partition example.

1-2 Getting a set of partition images

pid1
tid2
statewaiting
ownerfree

Should provides a set a partition images with different qualities (compression, noises from printing and scanning, handwritten...). The set a partition images will be transfered p2p and no version will be stored on the web site to avoid copyright problems. The set of partition will be contained into an archive (tar or zip) with an associated README file containing the version number, the date and the list of the partition files. New version of that archive could be posted into the news section of the website.

2-3 Develop a program for lines detector algorithms validation

pid2
tid3
statewaiting
ownerfree

This should be a command line argument programs (python interface could be used) where user can choose the lines detector algorithm, set the parameters (via configuration file), gives the partition image and the real partition lines position used to validate the algorithm.

7-4 Creates an unique preferences windows for all the parameters

pid1
tid4
statewaiting
ownerfree

1-5 Develop a partition grid structure based on lines spacing and blocks

pid1
tid5
statewaiting
ownerfree

5-6 Interfacing the partition grid with mouse movement

pid5
tid6
statewaiting
ownerfree

1-7 Creates a user configuration file for all the parameters

pid1
tid7
statewaiting
ownerfree

3-8 Document the results of lines detector algorithms on partition images set

pid3
tid8
statewaiting
ownerfree

7-9 Provides binarization parameters settings

pid7
tid9
statewaiting
ownerfree

On the GUI application, when the user load a partition image, a window appears to select appropriate parameters to make a good binarization (black and white image), a preview window must be provided.

Roadmap and future development

Here is the roadmap schedule.

release 0.1 (Lines and blocks)

Application (GUI and command line arguments) that detect lines and blocks of music elements and provides an output of statistical information about the partition such as number of staves and for each stave the line spacing and a grid image that represents the discrete version of the partition. Here is the list of software features that will be included (some are only provided by the GUI version) :

release 0.2 (Discrete access)

GUI application that provides access (mouse and keyboard) to partition grid and provides the user to put a musical symbol (from a limited set) on each position. Finally a Lilypond output could be generated from all the grid position information.

release 0.3 (Symbol detection)

Application (GUI and command line arguments) provides automatic musical symbol detection and identification. An intermediate format is created to store the partition grid state and the Lilypond parameters.

release 0.4 (The learning process)

Application (GUI and command line arguments) provides the user to define/edit musical symbol either by the way of an image of the symbol, by drawing the ROI on the partition image or by defining it into a specified language.

BUGS

Here is the list of known bugs.