=Paper= {{Paper |id=Vol-1263/paper48 |storemode=property |title=OMDN at the MediaEval 2014 C@merata Task |pdfUrl=https://ceur-ws.org/Vol-1263/mediaeval2014_submission_48.pdf |volume=Vol-1263 |dblpUrl=https://dblp.org/rec/conf/mediaeval/Maidin14 }} ==OMDN at the MediaEval 2014 C@merata Task== https://ceur-ws.org/Vol-1263/mediaeval2014_submission_48.pdf
                OMDN at the MediaEval 2014 C@merata Task
                                                        Donncha S. Ó Maidín
                                                           University of Limerick
                                                           Department of CSIS
                                                             Limerick, Ireland
                                                     Donncha.OMaidin@ul.ie

ABSTRACT                                                                involved distinguishing between monophony, homophony and
This paper outlines the participation of OMDN at the C@merata           polyphony. Monophony can have implied harmonies or
task. It is based on CPNView, a container-iterator encapsulation        counterpoint. Distinguishing homophony from first species
of a score data structure along with associated tools.                  counterpoint should prove a very interesting challenge of some
                                                                        complexity. Solutions to such tasks are likely to be greatly
                                                                        facilitated by tools that successfully address score representational
1. INTRODUCTION                                                         issues.
      Unlike a natural language document, a music score cannot be
represented conveniently as a string of around seventy characters.      2. APPROACH
While natural language may be represented effectively using a                 Common Practice Notation View, or CPNView was used to
linear array, a data structure that captures the relationships          answer a subset of the questions in the C@merata challenge[1].
between entities in a music score does not readily fit into such, or    CPNView formed the main topic of a PhD dissertation[2]. The
into any of the simpler computing data structures, such as arrays,      name CPNView was not used in the dissertation, but appeared in
lists or trees. While all of the relationships between score entities   in later publications [3][4][5].
might be successfully captured within a graph structure, the                  The meaning of symbols in a score depends on their
resulting data structure is likely to prove too unwieldy to be of       preceding context. Examples are note stress and pitch. The
direct use for music information retrieval and analysis. The            emphasis a performer places on a note is influenced by its position
solution employed here is one of encapsulating this complexity          in the bar and by the time signature but such contexts may be
using the familiar container-iterator approach. This enables the        modified by an attached symbol such as marcato. Another
underlying complexity to be hidden. The aim is to provide an            contextual mechanism is employed in pitch representation in
abstract view of the score through a convenient set of member           which key signature, clef and accidental alterations play a part. In
functions. These member functions are designed to facilitate            CPNView, the user is freed from the need to keep track of such
access to score data in ways that parallel how we might interact        scoping concerns, as contexts are made available automatically.
with the score document, while keeping the underlying                         CPNView models a score as an objected-oriented container
representational complexity secret.                                     in a manner similar to that used for other data structures found in
      A human reader may wish to access elements in a                   computer science textbooks. The CPNView model is designed to
monophonic score from some starting point, such as from the             provide a value-neutral and objective representation of a score
score beginning or from the start of a section. Adjoining elements      from common-practice notation. The score's internal content is
might then be visited in time sequence. Traversing polyphonic or        available using iterators. The iterator object keeps track of the
homphonic textures gives rise to more diverse approaches to             context in which an object resides in addition to providing access
traversing the score. Any information for a score element is            to the score object itself through its member functions. The
available when the element is visited. In the case of a note, this      iterators and their member functions can be viewed as paralleling
includes pitch and duration information in various formats as well      the actions of a human reader. Typically, a human might access a
as articulation values. In addition, contextual information such as     score from the start an read through it serially. For some purposes
key signature, time signature, clef and position within the bar is      the reading may traverse the score along one of the staffs. Where a
available.                                                              harmonic or polyphonic texture is of interest it will be desirable to
      Some queries posed in C@merata are of a very simple nature        access it as a sequence of vertical slices in time order.
and could be readily answered without recourse to a good score                In CPNView the score object may be created by specifying:
model. Indeed some of these are answerable by searching through               Score score(path);
the MusicXML representation. Locating pitches and durations                   This model requires no user knowledge of how the score is
alone or in sequence are examples of such. More advanced                represented in a file. CPNView representation is built from a
queries involve harmonic and key recognition. These occur in            software component that imports from files in a number of
questions that require the identification of perfect cadences.          different standard encodings.
Unfortunately all of the five questions for identifying perfect               Access to the internals of the score is facilitated by an
cadences had additional 'mode' tags present. Such information is        iterator object thus:
foreign to a value-neutral score encoding. If such information is             ScoreIterator cursor(score);
used in answering, the solutions will not work on other valid                 or ScoreIterator cursor(score, 1);
score representations where such additional information is absent             The first instance creates an iterator that initially points to the
or in error. One such instance occurred in the training sample          start and can be used to visit all of the objects in a score in time
involving a misleading 'mode' entry. Really complex tasks               order. Where the score contains multiple staffs, this is an
                                                                        appropriate iterator for harmonic analysis. The second form has an
Copyright is held by the author/owner(s).                               additional parameter and is used to iterate a single staff that has
MediaEval 2014 Workshop, October 16-17, 2014, Barcelona, Spain.         no polyphony, staff number 1 in this case.
      In either case the iterator can be made to step through all of    Much of the time during the three day limit for completing the
the objects in the score using the step member function. The step       assignment was taken up with getting a very basic subset of
function returns a value true as long as a succeeding object exists.    MusicXML correctly imported into CPNView. As a result only a
The following code skeleton makes all objects available, in             tiny subset of the task could be completed. The main lacunae
sequence to any code that replaces the ellipsis.                        arose from (1) no files that had multiple simultaneous notes on the
      while ( cursor.step()) {...}                                      same staff could be processed, (2) queries were limited to
      If it is required to visit only the notes in the score, a         identification of notes or rests, (3) time was not available to check
parameter may be given to the step function as in the following         the accuracy of the output resulting in some errors and mis-
code to count the notes in a score.                                     interpretations in the submitted answers. However work is
      long count = 0;                                                   continuing on a re-write of the component for importing
      while ( cursor.step(NOTE)) {count++;.}                            MusicXML files into CPNView.
      A locate member may be used to place the score iterator in
an arbitrary position. For example the iterator may be positioned       4. CONCLUSION
at the start of bar 20 by means of                                           Firstly, solving the more complex challenges in this exercise,
      cursor.locate(BAR, 200);                                          such as were raised in connection with distinguishing between
      The ScoreIterator object has a comprehensive range of             homophony, monophony and polyphony, will provide us with a
member functions to retrieve all of the information that is             new approach that refines our understanding of the issues
contained within the score.                                             involved. Fruitful discoveries may be made when comparing
      A natural language query that searches for all of the D notes     algorithmic with manual approaches to such problem solving.
and prints details of each note arrived at is achieved by               This will help us to reveal the tacit assumptions and intuitions
      while ( cursor.step(NOTE))                                        involved in solving such problems manually.
           if ( cursor.getAlpha() == 'D' )                                   Secondly, we suggest the following for any future runs:
                      cout << cursor << “\n”;                 (1)       •    The practice of placing additional contextual pitch
      In addition to modelling a score, CPNView has a set of                 information on each note should be abandoned.
components that facilitate processing musical information. They         •    Information of an interpretative nature should not be
include List, Set objects and an object class for calculating pitch          included in sources.
class sets. The pitch class object is based on a modified version of    •    All queries should be based on value-neutral representation
the classification system of Alan Forte[6]. It has been modified             of music scores. Any additional music information would
for the classifying tonal, rather than atonal combinations of                best be removed, or if this is not acceptable, dual versions of
pitches such as those that occur in scales, modes and in                     each score might be issued to participants.
harmony[2]. While the pitch class object would have proved              •    The system of indicating locations in scores should be
useful in the current exercise, it became impossible to meet the             revised so as to include details of line locations and use a
required deadline in time to use it. It should be noted that none of         more intuitive form based on rational numbers.
these objects provide any analytic interpretation.                      •    A uniform approach should be taken to bar numbering.
      A simple approach was used to interpret the natural language      •    Selected queries might be run on multiple or all scores.
queries. For the identification of single notes or rests, the text is
parsed and the specified fields are inserted into a search template.    5. REFERENCES
This involved using elementary string processing to recognise the       [1] Sutcliffe, R., Crawford, T., Fox, C., Root, D.L., and Hovy, E.
notes or rests in order to form the template. Searches were                 2014. The C@merata Task at MediaEval 2014: Natural
performed in the manner of (1) above. Where such elements were              language queries on classical music scores. In MediaEval
connected by such phrases as “followed by” or “then” the same               2014 Workshop, Barcelona, Spain, October 16-17 2014.
recognition was performed repeatedly on advancing the score
                                                                        [2] Ó Maidin, D.S. 1984. Computer Analysis of Irish and
iterator by one note or rest as required.
                                                                            Scottish Jigs. In Musical Grammars and Computer Analysis,
3. RESULTS AND DISCUSSION                                                   ed M. Barone and L. Callegari (Firenze: Leo S. Olschki,
     Files in the C@merata exercise contain unnecessary 'mode'              1984), pp.329-336.
entries and explicit accidentals that do not correspond to entities     [3] Ó Maidin, D.S. 1995. A Programmer's Environment for
on the original score. Scholarly score-based research should be             Music Analysis. PhD Thesis, University College Cork, 1995.
based on value-neutral representations that accurately model the        [4] Ó Maidin, D.S. and Cahill, M. 2001. Score Processing for
symbols on the score and only those symbols. Additionally the               MIR. In Proceedings of the International Society for Music
representation should have a one-to-one correspondence between              Information Retrieval, Bloomington, Indiana 2001, pp.59-
encoded entities and visual entities, stripped of layout details.           64.
Developers of tools or algorithms that fail to adhere to this
approach, will not create solutions that can be guaranteed to work      [5] Ó Maidin, D.S. 1998. A Geometrical Algorithm for Melodic
in a wider context. Score representations that have extra                   Difference. In Computing and Musicology II. Melodic
unnecessary content present will be required, and the resulting             Similarity. Concepts, Procedures, and Applications, ed
solutions will not work on valid representations that omit such             Walter B. Hewlett and Eleanor Selfridge-Field (Cambridge
additional unnecessary detail. This is a severe penalty to pay for          Massachesetts and London, The MIT Press, 1998), pp. 65-
what might appear initially to make tasks easier to solve.                  72.
Participating in C@merata involved developing a software                [6] Forte, A. 1973. The Structure of Atonal Music. (New Haven
component for importing MusicXML files into CPNView. This is                and London: Yale University Press, 1973).
a non-trivial task that did not fit the available completion time.