Selected Research in Computer Music
Total Page:16
File Type:pdf, Size:1020Kb
Selected Research in Computer Music Michael Droettboom Submitted in partial fulfillment of the requirements for the degree of Master of Music in Computer Music Research at The Peabody Conservatory of Music, The Peabody Institute of the Johns Hopkins University Baltimore, Maryland, United States of America April, 2002 Copyright c 2002 by Michael Droettboom, All rights reserved. Peabody Conservatory of Music Johns Hopkins University Statement of Acceptance Master of Music in Computer Music (Research) Be it known that the attached research thesis submitted by Michael Droettboom has been accepted in partial fulfillment of the requirements for the degree of Master of Music in Computer Music (Research). Computer Music Faculty Date Computer Music Faculty Date ii Abstract This thesis describes three interrelated projects that cut across the author's interests in musical information representation and retrieval, programming language theory, machine learning and hu- man/computer interaction. I. Optical music recognition. This first part introduces an optical music interpretation (OMI) system that derives musical information from the symbols on sheet music. The first chapter is an introduction to OMI's parent field of optical music recognition (OMR), and to the present implementation as created for the Levy project. It is important that OMI has a representation standard in which to create its output. There- fore, the second chapter is a somewhat tangential but necessary study of computer-based musical representation languages, with particular emphasis on GUIDO and Mudela. The third and core chapter describes the processes involved in the present optical music in- terpretation system. While there are some details related to its implementation in the Python programming language, most of the material involves issues surrounding music notation rather than computer programming. The fourth chapter demonstrates how the logical musical data generated by the OMI system can be used as part of a musical search engine. II. Tempo extraction. The second part presents a system to automatically obtain the tempo and rubato curves from recorded performances, by aligning them to strict-tempo MIDI renderings of the same piece of music. The usefulness of such a system in the context of current musicological research is explored. III. Realtime digital signal processing programming environment. Lastly, a portable and flexible system for realtime digital signal processing (DSP) is presented. This system is both easy- to-use and powerful, in large part because it takes advantage of existing mature technologies. This framework provides the foundation for easier experimentation in new directions in audio and video processing, including physical modeling and motion tracking. iii Contents List of Figures vii List of Tables ix I Optical music interpretation 1 1 Introduction 2 1.1 The Lester S. Levy Collection of Sheet Music . 3 1.2 Overview . 4 1.2.1 Adaptive optical music recognition . 4 1.2.2 Optical music interpretation . 5 1.3 Overview . 7 2 Musical representation languages 8 2.1 Resources . 9 2.2 Background . 9 2.3 Basic syntax . 10 2.4 Extension framework . 12 2.5 Human issues . 13 2.5.1 Brevity vs. clarity . 13 2.5.2 Representational adequacy and context-dependence . 13 2.6 Implementation issues . 14 2.6.1 Parsing . 14 2.7 Logical abstraction . 15 2.7.1 Logical abstraction in text typesetting . 15 2.7.2 Logical abstraction in music typesetting . 15 2.7.3 Bibliographic information . 16 2.8 Software tools . 16 2.8.1 GUIDO . 16 2.8.2 Mudela . 18 2.9 Conclusion . 19 iv 3 Implementation of an optical music interpretation system 20 3.1 Input . 21 3.1.1 XML glyph format . 21 3.1.2 Glyph list . 23 3.2 Assembly . 23 3.3 Sorting . 24 3.3.1 Handling multi-page scores . 24 3.3.2 Assigning glyphs to staves . 25 3.3.3 Grouping staves into systems . 27 3.3.4 Grouping staves into parts . 27 3.3.5 Temporal sorting . 27 3.4 Reference assignment . 28 3.4.1 Class hierarchy . 29 3.4.2 Pitch . 29 3.4.3 Duration . 35 3.4.4 Voices . 39 3.4.5 Chords . 40 3.4.6 Articulation . 41 3.4.7 Text . 42 3.5 Metric correction . 43 3.5.1 Overview . 43 3.5.2 Classification . 43 3.5.3 Algorithms for metric correction . 44 3.6 Output . 50 3.6.1 File formats . 50 3.6.2 Pluggable back-ends . 50 3.6.3 Mixin classes . 51 3.6.4 Demonstration of output . 52 3.7 Interactive self-debugger . 53 3.7.1 Overview . 55 3.7.2 Pages . 55 3.7.3 Reflections on the interactive self-debugger . 59 3.8 Conclusion . 59 4 Symbolic music information retrieval 60 4.1 Introduction . 60 4.2 Other search engines . 60 4.2.1 Themefinder . 61 4.2.2 MELDEX . 62 4.3 Capabilities . 62 4.3.1 Extensibility . 62 4.3.2 Meeting diverse user requirements . 63 4.4 The core search engine . 63 4.4.1 Inverted lists . 64 4.5 The musical search engine . 65 v 4.5.1 Secondary indices . 66 4.5.2 Partitions . 69 4.5.3 Regular expressions . 72 4.6 Conclusion . 72 References 73 II Tempo extraction 78 5 RUBATO: A system for determining tempo fluctuation in recorded music 79 5.1 Introduction . 79 5.2 A brief history of musical time . 80 5.2.1 Current research . 81 5.2.2 Tempo extraction . 82 5.3 The RUBATO program . 84 5.3.1 Smoothing the audio signal . 84 5.3.2 Dynamic programming algorithm . 85 5.3.3 Extracting tempo curves . 87 5.3.4 More examples . 91 5.4 Conclusion . 93 References 94 III Realtime digital signal processing environment 96 6 RED: Realtime Environment for Digital Signal Processing 97 6.1 Introduction . 97 6.2 Architecture . 98 6.2.1 Overview . 98 6.2.2 Goals . 98 6.2.3 General . 99 6.2.4 Modularized . 99 6.2.5 Realtime, low-latency performance . 102 6.2.6 Built from existing tools . 103 6.2.7 Portable . 106 6.3 Usage examples . 106 6.3.1 Unit generator objects . 106 6.3.2 Connecting signals . 108 6.4 Conclusion . ..