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.