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
pid | 1 |
tid | 1 |
state | waiting |
owner | free |
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
pid | 1 |
tid | 2 |
state | waiting |
owner | free |
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
pid | 2 |
tid | 3 |
state | waiting |
owner | free |
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
pid | 1 |
tid | 4 |
state | waiting |
owner | free |
1-5 Develop a partition grid structure based on lines spacing and blocks
pid | 1 |
tid | 5 |
state | waiting |
owner | free |
5-6 Interfacing the partition grid with mouse movement
pid | 5 |
tid | 6 |
state | waiting |
owner | free |
1-7 Creates a user configuration file for all the parameters
pid | 1 |
tid | 7 |
state | waiting |
owner | free |
3-8 Document the results of lines detector algorithms on partition images set
pid | 3 |
tid | 8 |
state | waiting |
owner | free |
7-9 Provides binarization parameters settings
pid | 7 |
tid | 9 |
state | waiting |
owner | free |
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) :
- Read common bitmap and image format (PNM, JPEG, GIF, ...)
- Load and save personal parameters into some user defined configuration file (located into .musicreco directory)
- Graphical access to grid representation
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.
- Creates an intermediate structure to generate the Lilypond output
- User can put musical symbols on grid position
- Lilypond format output
- User can watch inline the Lilypond output (text version only)
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.
- User can interact and modify the symbols detected
- User can store the results into an intermediate format
- User can modify and store Lilypond parameters (page layout, instruments...)
- User can preview (PS/PDF or MIDI) output
- User can display/hide (with possible transparency value) some parts of the detection process by way of layers
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.
- Gives new musical symbol to learn or modify pre-existing ones
BUGS
Here is the list of known bugs.