163 Pages
English

Algorithms and data structures for a music notation system based on GUIDO music notation [Elektronische Ressource] / vorgelegt von Kai Renz

Gain access to the library to view online
Learn more

Informations

Published by
Published 01 January 2002
Reads 25
Language English
Document size 2 MB

Algorithms and Data Structures for a
Music Notation System based on
GUIDO Music Notation
Vom Fachbereich Informatik
der Technischen Universitat¨ Darmstadt
genehmigte
Dissertation
zur Erlangung des akademischen Grades Dr.-Ing.
vorgelegt von Dipl.-Inform. Kai Renz, geb. Flade
geboren in Darmstadt
Tag der Einreichung: 26. August 2002
Tag der mundlic¨ hen Prufung:¨ 21. Oktober 2002
Referenten:
Prof. Dr. Hermann Walter, Darmstadt
Prof. Dr. Keith Hamel, Vancouver, Kanada
Darmstadter¨ Dissertationen D17iiAcknowledgment
First of all, I would like to thank Prof. H. K.-G. Walter for his support. Without him,
research in the field of computer music would not have started at the computer
science department of the Darmstadt University of Technology.
I would also like to express my thanks to Holger H. Hoos and Keith Hamel for
their fundamental work on GUIDO Music Notation and for countless discussions
on the subject of music representation and music notation. Special thanks also to
Jurgen¨ Kilian for many fruitful conversations and encouragement. Additionally, I
would like to thank Marko Gorg¨ , Matthias Huber, Martin Friedmann, and Christian
Trebing for working on different aspects of GUIDO. Parts of this thesis would not
have been possible without their work.
Many thanks go to the colleagues at the “Automata Theory and Formal Languages”
group of the computer science department of the Darmstadt University of Technol-
ogy, who have always been extremely helpful and open to discuss the sometimes
unfamiliar subjects of computer music.
Last but not least, I wish to express my love and gratitude to my wife for her trust
in my work.ivAbstract
Many aspects of computer-based music notation have been previously
discussed. The presented thesis deals with the process of converting a
textual description of music into a conventional musical score that can be
either printed or viewed on a computer screen.
The chosen textual music representation language is GUIDO Music No-
tation, an adequate, human-readable format, which has been developed
since 1996. Because GUIDO Music Notation is not solely focused on score
representation but rather on being able to represent all logical aspects
of music, the conversion of arbitrary GUIDO descriptions into a conven-
tional score is not necessarily an easy or straightforward task.
The thesis begins by introducing the three-layered structure of GUIDO
Music Notation. The most important features of GUIDO are presented
and compared to other music representation languages. The thesis con-
tinues to describe how GUIDO descriptions are first converted into a suit-
able computer representation. Then, automatic musical typesetting algo-
rithms work on this inner representation. The major difference to other
music notation systems lies in the fact that all implemented typesetting
algorithms are described as GUIDO to GUIDO transformations. Each step
of the musical typesetting process adds more richness to the GUIDO de-
scription. The final description, which contains all typesetting informa-
tion, is then used for viewing and printing the score.
In this thesis, the implemented music notation algorithms are described,
some of them in detail; especially those parts of the musical typesetting
process that have similarities to text setting, namely spacing and line
breaking, are presented. An improved algorithm for a line of
music is discussed and it is shown how the resulting spacing more closely
matches the spacing of a human engraver. Additionally, a new algorithm
for optimally filling pages is presented for the first time.
The implemented music notation system is used within several applica-
tions including an online music notation server which is freely available
on the Internet using any standard web browser.viContents
Abstract v
1 Introduction 1
2 The GUIDO Music Notation Format 7
2.1 Basic GUIDO Music Notation . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 Notes and Rests . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.2 Sequences and segments . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.3 Tags and basic musical concepts . . . . . . . . . . . . . . . . . . 11
2.2 Advanced GUIDO Notation . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1 Syntax extensions in Advanced GUIDO .. .. .. .. .. .. .. 13
2.2.2 Exact formatting and score layout . . . . . . . . . . . . . . . . . 14
2.2.3 Advanced notational features . . . . . . . . . . . . . . . . . . . . 17
2.3 Extended GUIDO .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . 17
2.3.1 Microtonality and Tuning . . . . . . . . . . . . . . . . . . . . . . 17
2.3.2 Exact Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.3 Hierarchical and Abstract Scores . . . . . . . . . . . . . . . . . . 19
2.4 GUIDO as a Music Representation Language . . . . . . . . . . . . . . . 19
2.5 Other Music Languages . . . . . . . . . . . . . . . . . . 21
2.5.1 MIDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5.2 DARMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.5.3 MuseData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5.4 SCORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.5.5 Common Music Notation (cmn) . . . . . . . . . . . . . . . . . . . 27
2.5.6 Plaine and Easie Code . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5.7 MusiXT X . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 29E
2.5.8 LilyPond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.5.9 NIFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.5.10 SGML based Music Representation Formats . . . . . . . . . . . 33
2.5.11 Commercial file formats . . . . . . . . . . . . . . . . . . . . . . . 35
2.5.12 Other representation formats . . . . . . . . . . . . . . . . . . . . 37
2.5.13 Comparison chart . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
viiviii CONTENTS
3 A Computer Representation of GUIDO Music Notation 41
3.1 Defining the Abstract Representation (AR) . . . . . . . . . . . . . . . . 42
3.1.1 Document View Model . . . . . . . . . . . . . . . . . . . . . . . . 42
3.1.2 Definition and Requirements . . . . . . . . . . . . . . . . . . . . 44
3.2 GUIDO Semantic Normal Form . . . . . . . . . . . . . . . . . . . . . . . 44
3.2.1 equivalence . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2.2 Transforming GUIDO descriptions into GSNF . . . . . . . . . . 47
3.3 Structure of the Abstract Representation . . . . . . . . . . . . . . . . . 48
3.3.1 Representing chords in the AR . . . . . . . . . . . . . . . . . . . 54
3.4 Transforming GUIDO descriptions into the AR . . . . . . . . . . . . . . 56
3.5 Accessing the AR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.5.1 Accessing classARMusicalVoice .. .. .. .. .. .. .. .. . 59
3.5.2 Parallel Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.6 Manipulation of the AR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.6.1 Operations on range tags . . . . . . . . . . . . . . . . . . . . . . . 61
3.6.2 on events and non-range tags . . . . . . . . . . . . . 63
3.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4 Converting Arbitrary GUIDO Descriptions Into Conventional Scores 67
4.1 Music Notation as GUIDO to GUIDO Transformations . . . . . . . . . . 68
4.2 Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.3 The Graphical Representation (GR) . . . . . . . . . . . . . . . . . . . . 76
4.3.1 Requirements for Conventional Music Notation Sys-
tems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.3.2 Structure of the GR . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.4 Converting the AR into the GR . . . . . . . . . . . . . . . . . . . . . . . 82
4.4.1 Manager-Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.4.2 Other helper classes . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.5 Spacing, Line Breaking, and Page Filling . . . . . . . . . . . . . . . . . 85
4.5.1 Spacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.5.2 Line breaking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.5.3 Optimal Page Fill in Music . . . . . . . . . . . . . . . . . . . . . 109
4.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5 Applications 121
5.1 The GUIDO NoteViewer . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.1.1 Architecture of the GUIDO NoteViewer . . . . . . . . . . . . . . 122
5.1.2 Interface Functions of the GNE . . . . . . . . . . . . . . . . . . . 124
5.2 The GUIDO NoteServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.2.1 Browser-Based access . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.2.2 CGI-Based access . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.2.3 Usage of JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . 128
5.2.4 The Java Scroll Applet . . . . . . . . . . . . . . . . . . . . . . . . 130CONTENTS ix
5.2.5 The Java Keyboard Applet . . . . . . . . . . . . . . . . . . . . . . 131
5.3 Java-based Music Notation and Editing . . . . . . . . . . . . . . . . . . 132
5.3.1 The GUIDO Graphic Stream Protocol . . . . . . . . . . . . . . . . 133
5.4 A Musical Database System and Music Information Retrieval . . . . . 134
5.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
6 Conclusion 137
Bibliography 140
Appendix
Complete Advanced GUIDO Description for Bach Sinfonia 3 147
Curriculum vitae 153
Erklarung¨ 153x CONTENTS