An Adequate Approach to Score-Level Music Representation: The GUIDO System

The GUIDO Music Notation system offers a new method for representing musical scores in a way that prioritizes clarity and flexibility. Using a plain-text, human-readable, and platform-independent format, GUIDO rests upon a conceptually straightforward yet powerful and easily extensible formal structure. The design emphasizes musical and logical concepts while also accommodating notational and performance-related details within a unified framework. The central principle is adequacy: straightforward musical ideas can be expressed simply, while more complex musical material may require more elaborate representation. GUIDO Notation suits a wide range of contexts, from notation software and composition or analysis tools to musical databases and music on the web. This discussion introduces the fundamental concepts and characteristics of GUIDO, illustrated with straightforward examples, and compares it to other representation systems such as DARMS, MIDI, and NIFF.

Context and purpose

The GUIDO Music Notation Format is a general-purpose formal language designed to represent score-level music in a way that is platform-independent, text-based, and readable by humans. Its design concentrates on broad musical concepts rather than exclusively graphical or notational features. Adequacy, the core concept, means that simple musical ideas should have simple representations, and only complex ones should demand complex syntax.

The architecture of GUIDO operates on three levels: Basic, Advanced, and Extended GUIDO Music Notation. Basic introduces the core syntactical structures—events and tags—that handle essential musical elements such as notes, rests, accidentals, voices, chords, time signatures, key signatures, clefs, and dynamics. Advanced extends Basic GUIDO to include precise score formatting information, making it suitable for professional engraving software, and also introduces more sophisticated musical concepts like advanced lyrics and figured bass. Extended moves beyond conventional notation to represent musical structure, abstract scores, microtonal music, precise timing information, and generalized timed events for multimedia settings. GUIDO is designed as an open standard that can be adapted and customized for specialized research in computational musicology or for integration with other computer music systems.

GUIDO was not created for a single application but to provide an adequate representation formalism for score-level music across many uses. It applies to notation software, composition and analysis tools, musical databases, performance systems, and web-based music applications.

The system is named after Guido d'Arezzo (990–1050), a prominent medieval music theorist who refined the staff system for notation and invented solmization, or solfège.

Basic GUIDO Notation

Basic GUIDO Notation covers the essential aspects of specifying straightforward music. It aims to represent musical material adequately, which can then be interpreted by computer music software or used for standard notation. The syntax distinguishes two elements: events and tags. An event is a musical entity that has a duration—notes and rests, for example—while tags define musical attributes such as meter, clef, or key.

Notes and rests

Notes in GUIDO are represented by their letter names, such as c d e. Since the format was created for diverse musical applications, it supports different systems of diatonic names, including do re mi. Beyond standard pitch classes, GUIDO also provides chromatic pitch classes: for instance, cis is distinct from c# and d& (where # marks a sharp and & marks a flat), even though these may sound identical on a regular MIDI instrument. This distinction is relevant for twelve-tone music. Only the parameters that are important for the context need to be supplied. For notes, the optional parameters are: notename, accidentals, octave, and duration. A complete example is c#1*1/4, which indicates a C-sharp with a quarter-note duration. GUIDO allows arbitrary durations, including dotted notes. Accidentals can be applied multiple times, as in c&&#-3*7/8, which is useful for describing extended tonality and can control self-tuning systems. Extended GUIDO handles other microtonal aspects. Rests are notated like notes but with an underscore instead of a letter name, for example *1/4; accidentals and octaves are usually ignored for rests, while durations follow the same syntax.

Sequences and segments

Basic GUIDO offers two orthogonal concepts for describing complete pieces: sequences and segments. A sequence represents temporally consecutive musical objects, while a segment represents simultaneous musical objects. These match two common descriptive strategies: a chord-normal form, which views music as a series of chords strung together in time, and a poly-normal form, which treats music as multiple simultaneous sequences. The choice depends on the musical style: homophonic choral music is naturally expressed in chord-normal form, while a fugue fits a poly-normal form. GUIDO supports an extended poly-normal form that permits chords inside the sequences of a segment—that is, chords within individual polyphonic voices. Extended GUIDO expands this flexibility further.

background image

In the syntax, a sequence starts with a square bracket [ and ends with the corresponding closing bracket ]. Segments appear inside curly braces { ... }, with musical objects separated by commas. Within sequences and chords, octaves and durations are inherited from the preceding note unless explicitly overridden. A short example shows how this works: {[ c1*1/4 d e c | c d e c | e f g/2 | e/4 f g/2 ], [ f c0/4,e,g g f g-1,h,d0 g f c,e,g g ]}

Tags and core musical concepts

Music involves more than pitches and rhythms. GUIDO uses tags to represent all common musical attributes. A tag has a name, optional parameters, and an optional range of application. Basic GUIDO defines tags for clefs, meter, tempo, intensity, crescendo, accelerando, and many other elements. Their semantic meaning is usually clear from the tag name. An extended version of the previous piece exemplifies this: {[ \title<"Frere Jaques"> \tempo<"Moderato"> \clef<"treble"> \key<"C"> \meter<"4/4"> \intens<"mf"> \slur(c1*1/4 d e c) \slur(c d e c) \slur(e f g/2) \slur(e/4 f g/2) \slur(g/8 a g f e/4 c) \slur(g/8 a g f e/4 c) \slur(c g0 c1/2) \slur(c/4 g0 c1/2) ]}

Advanced GUIDO Notation

Advanced GUIDO Notation addresses concepts not covered in the basic level, including glissandos, arpeggios, clusters, different notehead types, irregular staves, standard extended techniques, and contemporary notation features. It also covers exact positioning and spacing for professional score layout.

Exact formatting and score layout

To understand exact formatting, one must grasp the underlying graphical framework. Vertical spacing is defined in half-steps, where a half-step equals the vertical distance between two adjacent notes—for example, between c and d. The mapping of half-steps to physical units is set with the \staffFormat tag, allowing arbitrarily sized staves within one system. The \pageFormat tag determines page geometry, while the \spacing tag sets the ratio of rhythmic units along the x-axis to half-spaces on the y-axis. The \space tag overrides automatic spacing and forces a precise amount of space—specified in half-spaces, millimeters, centimeters, inches, or points—to be inserted at the current position.

background image

All Basic tags remain usable in Advanced GUIDO, and many include extra optional parameters for exact positioning and scaling. This upholds the adequacy principle: exact formatting information is only supplied when necessary. In other cases, applications can determine these values automatically. This practice resembles HTML, where not every feature works the same in every browser.

Advanced notation and concepts

Advanced GUIDO supports glissandos, arpeggios, and clusters, as found in many scores. Since some contemporary techniques lack standard notational conventions, software implementing GUIDO must handle them in a controlled manner. The format also allows the inclusion of arbitrary graphical elements, making it possible to represent portions of a score with custom-drawn shapes—a feature valuable for modern music that extends beyond the historical range of notation.

Further developing the "Frère Jacques" example illustrates these advanced features:

{[\units<"mm"> \pageFormat<"A4",10,10,10,10> \title<"Frere Jaques"> \tempo<"Moderato"> \instr<"1. Voice"> \clef<"treble"> \key<"C"> \meter<"4/4"> \intens<"mf"> \slur(c1*1/4 d e c) \slur(c d e c) \doubleBar \slur(e f g/2) \slur(e/4 f g/2) \doubleBar \slur(g/8 a g f e/4 c) \slur(g/8 a g f e/4 c) \newLine \slur(c g0 c1/2) \slur(c/4 g0 c1/2) \slur(c1*1/4 d e c) \slur(c d e c) \slur(e f g/2) \slur(\rit(e/4 f \fermata(g/2)))], [\instr<"2. Voice"> \clef<"treble"> \key<"C"> \meter<"4/4"> \intens<"mf"> _*2/1 \doubleBar \intens<"mf"> \slur(c1*1/4 d e c) \slur(c d e c) \doubleBar \slur(e f g/2) \slur(e/4 f g/2) \newLine \slur(g/8 a g f e/4 c) \slur(g/8 a g f e/4 c) \slur(c g0 c1/2) \slur(c/4 g0 c1/2) \slur(c1*1/4 d e c) \slur(\rit(c d e \fermata(c)))]

[\instr<"3. Voice"> \clef<"treble"> \key<"C"> \meter<"4/4"> *2/1 \doubleBar *2/1 \doubleBar \intens<"mf"> \slur(c1*1/4 d e c) \slur(c d e c) \newLine \slur(e f g/2) \slur(e/4 f g/2) \slur(g/8 a g f e/4 c) \slur(g/8 a g f e/4 c) \slur(c g0 c1/2) \slur(\rit(c/4 g0 \fermata(c1/2)))]}

Extended GUIDO Notation

Extended GUIDO Notation, the third level of the design, is still in the specification stage. It introduces features that go beyond conventional notation and reflects the experiences of groups testing GUIDO in real projects. A few key concepts are discussed here.

Exact timing

Where Basic and Advanced GUIDO rely on relative durations expressed as fractions combined with tempo markings, Extended GUIDO allows absolute durations. This is achieved with syntactical forms like ev*200ms and ev*2s for durations of 200 milliseconds or 2 seconds, where ev stands for any event. For example, c2*200ms gives a C in the fourth octave lasting 200 milliseconds. Relative and absolute durations can be freely combined, which also permits representing unquantized MIDI data. In this view, MIDI quantization becomes a transformation between different normal forms of GUIDO.

Microtonal tuning

Basic GUIDO already handles aspects of microtonality such as just tuning through multiple accidentals like d##, e, or f&. Extended GUIDO introduces additional mechanisms. One is the use of generic pitch classes such as xc or fc. These denote pitches relative to c or as an absolute frequency: xc gives the transposition into musical cents from the center tone, while fc defines a pitch by an absolute base frequency so that f440c draws an apex tone raised regardless of typical stepping; for example, x133c` gives specific pitch offsets. Extended defines tags like\alter . Different tuning systems can be mapped via \tuningMap<"b";-10>, which adjusts all Bs of every octave by -10 cents corewise upre pointed decent towards differential mapping according using microtonal adequate capture—different interfaces fulfilling facets extended within approach true of the microtonal spectrum tailored each needed representatively.

of actually well separate adequately in levels addressed already one way without override but building united base material well-strong.

Other concepts

Extended GUIDO outlines concept formats: hierarchical scores which accept continuous interleaving sequence versus basic nests constructions showing shape precise for analytical or referencing data works concerning musical building development possibilities representable complete multiobject store aspects needed core hierarchy always still in bound overview short follow extensions well where important other: abstract scores encode reference piece defined containing macroholder representative schematics dimension accordingly (so music applications tool use accordingly usable type exchange meaningful — fitting required scanning can hold varying information possible modeling structured fragment potential under without forcing applied direction for style high abstraction never necessary original sense missing unidirectional forced work), always extend equally control allowed within architecture — Flexible clearly expands full user-governed advanced libraries names variable linking reusable directed binding defines tags event types totally! de scriptum change precess provides compact easy abstraction furthermore fitting— note defined named value slots advanced config referencing small grouping realizable concepts properly applied. It contains synonym named pitches namespace already modular provided interlinked real structure possible.

Related formats compared

The original binary MIDI File Format (1988) was not designed for analysis or notation used today guiding value extended but rather handles sequencer items (perform: when focused recording related actually real captured note ordering mapping exact onnotes exactly pressed representations realize unique performance.) lacking detection compositional outline item chord start release more features ties key nor enable ability capture all marks larger therefore eventually hold logical shape representation inevitably low because representation disall potential layered outline approach from semiotic modular demands structurally reasoned encoding reality anyway restriction limited for real-time—discrepancy can reproduce expressive information event stored conversion after because way —in non-native use extremely forced anyway best case forced produced inadequately eventual or break away full musical vision on application higher form standard environment) compromise needs avoidance representation far from ideal.

The Standard Music Description Language (SMDL, ISO 10743), based on SGML and HyTime, targets publishing and commercial contexts. Like GUIDO, it is a human-readable text format with platform portability, built for interchange between existing coding environments standard—allow translational opportunity encode transit to easily original environment can read and re- encode step back event no specific actual requirement— this convenience flexibility you variable interpretive performance not guarantee note precise constraints define absolute representation meant be always—overall more possible because define unique file one way easier but due missing normalize formal priority simpler material fundamentally understated appropriately works output, depends need mostly view strong knowledge and resource but heavy and has standardized code count significant gap thus adaptation small can sometimes drop results implementation maintain heavy processing approach given above lacking simplistic near or expand within continue work shape can usage small area happen thus less able ideal use both smaller with classical chamber works academic utility needed standardized framework- natural seems even safe fit more general implement. System still deemed still weighted with concept full consistent type production certain easily repeat over universal in the sound coverage content define writing clear guidance representation may so potentially ambiguous but allow special rules quickly work point direction coverage regardless— difficulty long output accordingly use scenario stands produce overall model weaker support future otherwise being realistic for being candidate fine replacement.

Similar reasoning applies to NIFF (Notation Interchange File Format) [GB96], a binary format like MIDI. Like SMDL, NIFF is primarily designed for representing and exchanging musical notation data, and it shows a comparable lack of adequacy. An additional limitation is that, although several major companies have contributed to its specification, NIFF does not yet enjoy widespread use within the computer music community.

DARMS (Digital Alternate Representation of Musical Scores) [Eri74, Sel97] is a text-based music representation that first appeared in 1963 and was among the most prevalent codes for music printing and analysis until the early 1980s. GUIDO Notation shares several principles with DARMS, such as text-based encoding, canonical normal forms, and extensibility. Important differences exist, however. Though DARMS was designed—and indeed used—for a wide range of compositional, notational, and analytical tasks, it remains conceptually a print-oriented code. Furthermore, its code in some ways reflects the severe constraints on space and parsing technology present when it was developed. Even so, it may be considered a partially adequate representation. Comparing DARMS and GUIDO is, in our view, rather like comparing assembly language with a high-level programming language.

The most adequate music representation formalism we currently know is Common Music Notation (cmn) [Scho97], a textual description language within Heinrich Taube’s LISP-based Common Music system. Like DARMS, cmn was developed primarily for notation. Yet, in our impression—unlike SMDL or NIFF—cmn is an adequate representation formalism by the definition given above. Advanced GUIDO Notation and cmn correspond closely; indeed, some Advanced GUIDO concepts were inspired by cmn. Two main differences separate GUIDO and cmn. First, notes and rests are represented: cmn uses the same representation as Score [Smi97], whereas GUIDO employs a different model that we find somewhat more intuitive. Second, while cmn focuses on graphical aspects (expressed, like GUIDO, as musical attributes), GUIDO also covers performance-related information. Finally, several extensions realized in Extended GUIDO—microtonal tuning, exact timing, and hierarchical scores—have no equivalents in cmn.

Conclusions and Future Work

We have introduced GUIDO Music Notation, a novel approach for adequately representing score-level music. Concentrating on purely musical and logical concepts, GUIDO’s design also covers graphical and performance-related aspects of music. Built on a conceptually simple yet powerful syntax, GUIDO is a human-readable, portable text format. Its most essential feature is adequacy: simple musical ideas can be expressed with syntactic simplicity, while more complex musical material demands more elaborate GUIDO representations.

GUIDO Notation has a three-level hierarchy. Basic GUIDO handles fundamental musical concepts; Advanced GUIDO provides exact score formatting and advanced musical ideas; Extended GUIDO introduces concepts outside conventional music notation, including exact timing, microtonal tuning, generic pitch classes, hierarchical and abstract scores, and user-defined GUIDO tags and events. Designed as a flexibly extensible, open standard, GUIDO can easily accommodate particular needs not covered by its core specification through new application-specific or user-defined tags and events. As with HTML browsers, standard GUIDO applications such as MIDI converters and note viewers ignore unsupported tags and events while still using the remaining information. Thus, even with customized GUIDO extensions, one can still interface with other standard GUIDO applications and tools.

GUIDO differs from existing approaches like DARMS, cmn, NIFF, SMDL, and MIDI in many important ways, while also sharing key concepts with some of them. To the best of our knowledge, the combination of features supported by GUIDO—especially those in Extended GUIDO—together with its easily extensible, syntactically simple, and coherent formal framework that enables adequate representation, is unique.

Applications that could benefit from supporting GUIDO Notation include notation software, computer music systems, compositional and analytical tools, musical databases, and many others. Implementing GUIDO support is aided by a Parser Kit and several standard GUIDO tools available from the authors. A GUIDO-to-MIDI converter has already been built. The reverse conversion is much harder because musical information expressible in GUIDO must be inferred from low-level MIDI data; nevertheless, a prototype MIDI-to-GUIDO converter has been implemented. Converters between GUIDO and other music representations are planned. To further promote GUIDO, a GUIDO WWW Server has been developed. This public web service converts GUIDO descriptions into graphical images of conventional notation for inclusion in web pages, making it possible for the first time to dynamically create and display music on the web.

Other ongoing projects include building a GUIDO interface for Keith Hamel’s notation program NoteAbility [Ham97]. In cooperation with GRAME in Lyon, France, we are also working on GUIDO support and a customized extension for Elody [OFL97], a lambda-calculus-based compositional system under development at GRAME. Further work includes implementing GUIDO support for HARMONET [HFM92], a neural-network-based harmonizer at the University of Karlsruhe, Germany, and Mutabor [ARW92], a microtonal instrument developed at the Universities of Darmstadt and Dresden, Germany.

Our experience thus far suggests GUIDO will prove extremely useful both as a music representation format and as a data exchange format. However, we do not view GUIDO as a static standard at this point, but rather as “work in progress.” We hope that, through further experience gathered by disseminating GUIDO’s ideas and use within the community, it will ultimately become what we intend: an adequate and widely used formalism for score-level music representation.

Acknowledgements The work on GUIDO Music Notation is part of the Salieri Project on Computational Musicology and Computer Music. We thank Michael Fuhlbrügge, Matthias Huber, and Thomas Helbich for their contributions during GUIDO’s early development. Thanks also go to Professor Herrman K.-G. Walter and the Center for Interdisciplinary Studies in Technology, TU Darmstadt, for supporting the Salieri Project. The first author acknowledges the German National Merit Foundation (Studienstiftung des deutschen Volkes) and Professor Wolfgang Bibel (TU Darmstadt), who supported his stay at the University of British Columbia in Vancouver, where most of this work was carried out.