On Displaying Musical Scores » History » Version 7

Chris Cannam, 2016-01-07 04:30 PM

1 1 Chris Cannam
h1. On Displaying Musical Scores
2 1 Chris Cannam
3 3 Chris Cannam
h3. Use cases
4 1 Chris Cannam
5 3 Chris Cannam
 # Illustrating recordings by attaching a full publication-style score
6 4 Chris Cannam
 ** ...where the score is not intended to be read closely, but rather used as a sort of key-frame reference for navigating the audio
7 4 Chris Cannam
 ** ...or where user expects to be able to zoom the score far enough to actually read it properly
8 3 Chris Cannam
 # Linear rather than page-based score that a user is expected to read, e.g. to play along with, or to check specific notes in a transcription or spectrogram
9 3 Chris Cannam
 # On-the-fly score display of transcriptions and related annotation layers (score from MIDI)
10 3 Chris Cannam
 # Score editing for correction (making usually small edits to substantial scores)
11 3 Chris Cannam
 # Score editing for annotation (generating small scores from scratch)
12 1 Chris Cannam
13 3 Chris Cannam
h3. Sources of score data
14 1 Chris Cannam
15 3 Chris Cannam
 * Score-encoding formats, e.g. MusicXML, MEI
16 3 Chris Cannam
 * PDFs of published scores
17 3 Chris Cannam
 * "Tidy" MIDI files and other cleaned-up annotation data (e.g. chord charts)
18 3 Chris Cannam
 * Untidy output from transcription methods and the like, in MIDI or MIDI-like formats
19 1 Chris Cannam
20 3 Chris Cannam
h3. Possible implementations
21 3 Chris Cannam
22 7 Chris Cannam
 # Integrate code from an existing application (most likely one that is also in C++ using Qt)
23 1 Chris Cannam
 ** Suitable for all use cases, with limitation of requiring score to be available in a digital format
24 7 Chris Cannam
 ** Only possibility if editing is required (but note that adding editing is likely to be very involved even with this approach, maybe prohibitively so)
25 3 Chris Cannam
 ** MuseScore -- most obvious option
26 1 Chris Cannam
 ** Rosegarden -- has a notation editor component but is primarily a sequencer (but does have the advantage that I wrote much of it and so know a lot of the code!)
27 3 Chris Cannam
28 7 Chris Cannam
 # Invoke external application to render to PDF or sequence of images, then display PDF/image pages
29 5 Chris Cannam
 ** Suitable for use case 1; unsuitable for use cases 2, 4, 5; uncertain for use case 3
30 3 Chris Cannam
 ** Replaces problem of "integrating score display" with problem of "integrating PDF/image page display"
31 6 Chris Cannam
 ** Could use MuseScore as the external application (it has a batch mode) or Lilypond, or something else like VexFlow, or more than one option depending on platform & input format
32 6 Chris Cannam
 ** Has advantage of also introducing ability to display other PDF material than scores
33 5 Chris Cannam
 ** Adds access to non-digital (scanned) score content
34 3 Chris Cannam
35 3 Chris Cannam
h3. Examples
36 2 Chris Cannam
37 2 Chris Cannam
*Linear*
38 2 Chris Cannam
39 2 Chris Cannam
MuseScore
40 2 Chris Cannam
41 2 Chris Cannam
!/attachments/download/1776/musescore-tidy-linear.png!
42 2 Chris Cannam
43 2 Chris Cannam
Rosegarden
44 2 Chris Cannam
45 2 Chris Cannam
!/attachments/download/1779/rosegarden-tidy-linear.png!
46 2 Chris Cannam
47 2 Chris Cannam
*Paginated*
48 2 Chris Cannam
49 2 Chris Cannam
MuseScore
50 2 Chris Cannam
51 2 Chris Cannam
!/attachments/download/1778/musescore-tidy-paginated.png!
52 2 Chris Cannam
53 2 Chris Cannam
Rosegarden
54 2 Chris Cannam
55 2 Chris Cannam
!/attachments/download/1780/rosegarden-tidy-paginated.png!
56 2 Chris Cannam
57 2 Chris Cannam
*Imported from an approximate transcription*
58 2 Chris Cannam
59 2 Chris Cannam
MuseScore
60 2 Chris Cannam
61 2 Chris Cannam
!/attachments/download/1775/musescore-messy.png!
62 2 Chris Cannam
63 2 Chris Cannam
Rosegarden
64 1 Chris Cannam
65 1 Chris Cannam
!/attachments/download/1777/rosegarden-messy.png!