[temp header, will be replaced/removed in final version]

Advanced GUIDO Format - Specification (Draft)

version: 0.2d [02.05.1998]
authors: Holger H. Hoos, Keith A. Hamel, and Kai Flade


Outline


1 Introduction

...
general extensions:
- named tag parameters
- parameter values with units
- new tags and extended usage


2 Note Attributes

2.1 Note heads and stems

The following tags control the shape and size of note heads (
\noteFormat), brackets around note heads and chords (\bracket), stem lengths, directions, and positions relative to the note heads (\stemsOff, \stemsUp, \stemsDown, \stemsAuto, \headsRight, \headsLeft, \headsCenter), and the formatting of grace and cue notes \graceFormat, \cueFormat).

2.1.1 \noteFormat

The \noteFormat tag controls the graphical appearance, like shape and size, of the note heads. It is also used to put brackets around note heads.

Parameters (in the order of their default positions):

Range: optional

Semantics:

Remarks:

Examples:
	\noteFormat<size=0.75>
	\noteFormat<0.75>
	\noteFormat<"x">
	\noteFormat<style="diamond",size=1.0>
	\noteFormat<"()",0.75>
	\noteFormat<"(x)",0.5>
	...


2.1.2 \headsNormal, \headsReverse, \headsCenter

These purely graphical tags control the position of the note heads relative to the stems. \headsNormal has the note heads left of downward stems and right of upward stems. \headsReverse puts the heads right of downward stems and left of upward stems. \headsCenter attaches the stems to the center of the note heads (mostly used with diamond- and x-shaped note heads).

Parameters: none

Range: optional

Semantics:

Remarks:

Examples:
	\headsLeft( ... )
	\headsLeft ... \headsRight
	\noteFormat<"diamond">( \headsLeft ( ... ) )
	...


2.1.3 \bracket

This graphical tag encloses notes and chords in brackets. Also allows to specify only left or right brackets (as for double stops).

Parameters (in the order of their default positions):

Range: obligatory

Semantics:

Remarks:

Examples:
	\bracket<"()">( ... )
	\bracket<"[">( ... )
	\bracket( ... )
	...


2.1.4 \stemsOff

This graphical tag switches display of note stems, flags, and beams off.

Parameters: none

Range: optional

Semantics:

Remarks:

Examples:
	\stemsOff ...
	\stemsOff( ... )


2.1.5 \stemsUp, \stemsDown, \stemsAuto

These graphical tags determine the direction and length of note stems.

Parameters (in the order of their default positions):

Range: optional

Semantics:

Remarks:

Examples:
	\stemsUp ... \stemsAuto
	\stemsDown<12>( ... )


2.1.6 \graceFormat and \cueFormat

The \graceFormat and \cueFormat tags control the graphical appearance of grace and cue notes. Their syntax and semantics is completely analogous to \noteFormat.

Parameters: (see \noteFormat)

Range: optional

Semantics:

Remarks:

Examples:
	\graceFormat<size=0.75>
	\cueFormat<0.75>
	\cueFormat<"x">
	\graceFormat<"()",0.75>
	...


2.2 Dots and Accidentals

The following tags control the relative position and size of dots (
\dotFormat), and the graphical appearance, positioning and size of accidentals (\acc).

2.2.1 \dotFormat

This tag controls the grapical appearance of dots.

Parameters (in the order of their default positions):

Range: optional

Semantics:

Remarks:

Examples:
	\dotFormat<2.5,-1,0.2>(c/2. d&/4.. e&/16)
	...


2.2.2 \acc

This tag controls the grapical appearance, positioning and size of accidentals. Also forces implicit accidentals to appear in the score.

Parameters (in the order of their default positions):

Range: obligatory

Semantics:

Remarks:

Examples:
	\acc(c1/4  c# d&)
	\acc<dx=-2.0, style="()", size=0.8>(c1##/8)
	c#1/4 \acc<style="()">(c)
	...


  % for ficta noteFormat:
  %   ref. pos. for acc is center of acc.symbol, dy inst. of dx,
  %   dy is max (dist from notehead, dist from top of staff)

+ ficta (accidentals above noteheads)
  -> \noteFormat<"ficta",size>
??  maybe better: \acc<dy,"ficta">, or even \ficta<dy,style,size>

2.3 Miscellaneous

The following tags control the graphical appearance of tuplets (
\tuplet) and ledger lines (\ledgersOn, \ledgersOff); there also tags for marking silent notes (\silent); and controlling their graphical appearance (\silentFormat).

2.3.1 \tuplet

This tag controls the grapical appearance of tuplets.

Parameters (in the order of their default positions):

Range: obligatory

Semantics:

Remarks:

Examples:
	\tuplet<"-3-">(c1/6 c d) e/2
	\tuplet<"-3:2-">(c1/6 c d) e/2
	\tuplet<-5.0>(c1/6 c d) e/2
	\tuplet<-5.0,-4.0>(c1/6 c d) e/2
	\tuplet(c1/4 c4 c4) e/4. f/4.
	...


2.3.2 \ledgersOn and \ledgersOff

This tag controls the grapical display of ledger lines.

Parameters: none

Range: optional

Semantics:

Remarks:

Examples:
	\ledgersOff a2/4 g g \ledgersOn g a/2
	\ledgersOff( a0/4 g g ) g a/2
	...


2.3.3 \silent

This tag used to mark notes as silent; it affects both graphical appearance and playback.

Parameters: none

Range: obligatory

Semantics:

Remarks:

Examples:
	b0/2 \silent(a/4 b) c1/2
	...


2.3.4 \silentFormat

Controls the graphical appearance of silent notes. The syntax and semantics are completely analogous to \noteFormat.

Parameters: (see \noteFormat)

Range: optional

Semantics:

Remarks:

Examples:
	\silentFormat<style="diamond", size=0.75>
	\silentFormat<0.75>
	\silentFormat<"x">
	\silentFormat<"()",0.75>
	...


3 Exact Spacing and Score Formatting

[kf]

3.1 Page layout and spacing

+ selection of length units:
  \units<type>
  % type = "mm","inch","pt"
  % affects interpretation of all absolute dimensions

+ page layout:
  \pageFormat<format>
  \pageFormat<format,lm,tm,rm,mb>
  \pageFormat<h,w,lm,tm,rm,mb>
  % height, width, margins in length units
  % format = "A4", "letter", ...

+ page break
  \newPage

+ relating metrical units (x dimension) to halfspaces (y dimension):
  \spacing<"1/4=4.5">
  % can be used to realise stretching of measures
  % applies to all staves!
  % (former hSpace)

+ explicit horizontal spacing between elements:
  \space<dxh>
  % x \space<10.2> y
  % forces 10.2 halfspaces betw. element x and y,
  % overrides automatic spacing
  % this can also be used to realise space before and
  % after barlines etc.

+ explicit vertical spacing:
  \staff<i,dy>, \staff<s,dy>
  % dy = vertical space between bottom line of this staff
  % and top line of next staff
  % measured in halfspaces of this staff

3.2 Staff and system layout

+ staff layout:
  \staffFormat<format, size>
   % format = "standard", "n-line"
   % size = halfspaces / length unit
   % y ref.pos = lowest staff line

+ accolades
  \accolBegin,\accolEnd
  \accolBegin<type>
  % type = "standard" = "straightBrace", "curlyBrace", "thinBrace", "none"

+ system braces
  \systemFormat<type>
  % type = "standard" = "straightBrace", "curlyBrace", "thinBrace", "none"
  % this tag is used for overall brace (need not be specified by \accolBegin,\accolEnd

+ line break
  \newLine,
  \newLine<dx,dy>
  % left indent dx length units, additional vspace before
  % next line of dy length units

+ end of staff
  \staffOff
  % ends current staff at current x position
  % used to realise staves which do not extend over full
  %   width of page

3.3 Exact positioning and formatting of Basic GUIDO elements

define ereference points and scales for all positionable
/ sizeable objects.

  symbols, noteheads:
  reference point = xy center of symbol

  \intens<s,dx,dy,size>
  \intens<s,r,dx,dy,size>

  \cresc<s,r,"<", dx1,dy1,dx2,dy2,h>
  \cresc<s,r,"-", dx,dy,size>
  \crescBegin<"<", dx1,dy1>
  \crescEnd<s,r,dx2,dy2,h>
  \crescBegin<"-", dx,dy,size>
  \crescEnd<s,r>
  [same for \dim]

  \tempo<s,s2,dx,dy,size>
  \accel<s,s2,dx1,dy1,dx2,dy2,size>
  \accelBegin<dx1,dy1>
  \accelEnd<s,s2,dx2,dy2>
  [same for rit]

  \instr<s,dx,dy,size>
  \instr<s,s2,dx,dy,size>

  \tie<dy,h>
  \tie<dx1,dy1,dx2,dy2,h>

  \stacc<dy>
  \stacc<dx,dy,size>
  \ten<dy>
  \ten<dx,dy,size>
  \marcato<dy>
  \marcato<dx,dy,size>
  \accent<dy>
  \accent<dx,dy,size>

  \trill<dx,dy,size>
  \trill<i,dx,dy,size>
  \mord<dx,dy,size>
  \mord<i,dx,dy,size>
  \turn<dx,dy,size>
  \turn<i,dx,dy,size>

  \trem<n,dy> % n trem beams
  \trem<i,n,dy> % n trem beams

  \fermata<r> % r beats pause
  \fermata<r,dx,dy,size> % r beats pause

  \grace<i,format> % format="/" slashed, "()" group bracketed, "(/)" both

  \clef<s,size>
  \meter<s,size>
  \key<s,size>

  \oct<i,dy,size>
  \oct<i,dx1,dy1,dx2,dy2,size>

  \title<s,dxx,dyy,adj,font,size>
  \composer<s,dxx,dyy,adj,font,size>
  % dxx,dyy = positions in units rel to tl corner of page
  % adj = "lt", "lc", ..., "rb" (l,c,r;t,c,b)

3.4 Text formatting and lyrics

+ text format:
  \textFormat<font, size>
  % size in length units

- text adjustment, multi-line text
  \text<s,dx,dy,adj>
  % adj="xy", x=l,c,r; y=t,c,b; standard="lt"
  % line breaks in text "... // ..."
  % use \/ for "/"

- lyrics:
  \lyrics<s,...> (or \text<s,...>??)
  % s="Oh / ca-ra _ _ / mi _ / a"
  % "/" indicates next note
  % "_" extends last syllable of word
  % "-" extends syllable within word
  % use \/ for "/", \_ for "_"


4 More Articulation Marks, Barline Types and Symbols

4.1 Articulation marks

4.1.1 \staccmo

Marks notes as staccatissimo; affects both notation (looks like a small spike) and playback.

Parameters (in the order of their default positions):

Range: optional

Semantics:

Remarks:

Examples:
	\staccmo ...
	\staccmo( ... )


4.1.2 \accentTen

Marks notes as accented tenuto; affects both notation (combination of accent and tenuto mark) and playback.

Parameters (in the order of their default positions):

Range: optional

Semantics:

Remarks:

Examples:
	\accentTen ...
	\accentTen( ... )


4.1.3 \accentStacc

Marks notes as accented staccato; affects both notation (combination of accent and staccatto dot) and playback.

Parameters (in the order of their default positions):

Range: optional

Semantics:

Remarks:

Examples:
	\accentStacc ...
	\accentStacc( ... )


4.1.4 \tenStacc

Marks notes as tenuto staccato; affects both notation (combination of tenuto mark and staccatto dot) and playback.

Parameters (in the order of their default positions):

Range: optional

Semantics:

Remarks:

Examples:
	\tenStacc ...
	\tenStacc( ... )


4.1.5 \marcatoStacc

Marks notes marcato staccato; affects both notation (combination of marcato mark and staccatto dot) and playback.

Parameters (in the order of their default positions):

Range: optional

Semantics:

Remarks:

Examples:
	\marcatoStacc ...
	\marcatoStacc( ... )


  \hornOpen   % small o above note
  \hornClosed % small + above note

  \harmonic   % small o above note
  %>> for fluttertongue use trem


4.2 Barline types


open issues:
- use rather \bar with extra style param??
- distinguish purely graphical forms \bar from those indicating start of measure \measure??
  (could also use \barline, \bar to be consistent w/ Basic GUIDO)
- need global tag for measure numbering (style, size, on/off, position)?

4.2.1 \thinDoubleBar

Indicates the start of a new measure marked with a thin double barline at the position where it occurs. Usage analogous to \bar.

Parameters (in the order of their default positions):

Range: none

Semantics:

Remarks:

Examples:
	(see \bar)


4.2.2 \dottedBar

Indicates the start of a new measure marked with a dotted barline at the position where it occurs. Usage analogous to \bar.

Parameters (in the order of their default positions):

Range: none

Semantics:

Remarks:

Examples:
	(see \bar)


open issues:
- use rather \bar with extra style param??
- distinguish purely graphical forms \bar from those indicating start of measure \measure??
  (could also use \barline, \bar to be consistent w/ Basic GUIDO)
- need global tag for measure numbering (style, size, on/off, position)?

4.2.3  \repeatBeginBar, \repeatEndBar, \repeatEndBeginBar

4.2.4 \barFormat

Controls the graphic appearance of barlines.

Parameters (in the order of their default positions):

Range: none

Semantics:

Remarks:

Examples:
	(...)


open issues:
- include default style for \bar (standard, dotted, subdivided, ...) ???


4.3 Miscellaneous

4.3.1 \upBow, \downBow

Indicates up- and down-bow marks for strings.

Parameters (in the order of their default positions):

Range: optional

Semantics:

Remarks:

Examples:
	\upBow ...
	\downBow( ... )


4.3.2 \pedalBegin, \pedalEnd

Indicates pedal marks for piano.

Parameters (in the order of their default positions):

Range: none

Semantics:

Remarks:

Examples:
	\pedalBegin ... \pedalEnd


- breathmark, holdmark
  \breathMark
  \holdMark
  % notation: ' / "

+ fermata longa
  \fermataLonga(notes)
  \fermataLonga
  % notation: square fermata sign

+ repeat measure
  \repeatMeasure  % repeats last measure
  \repeatMeasure<n> % same, n times
  % in certain cases,
  % notation can be infered from \repeatBegin, \repeatEnd

- miscellaneous signs
  \coda  % coda sign (-> kopf)
  \signa  % signa sign (-> dal segno al ...)
  % more ??


5 Other Musical Concepts

5.1 \glissando

Marks glissandos, affects both playback and graphic appearance.

Parameters (in the order of their default positions):

Range: obligatory

Semantics:

Remarks:

Examples:
	(...)


open issues:
- playback?


- arpeggio
  \arpeggio(chord)

- vibrato, non vibr, ringoffs, indef ringoffs
  ??

- general ornaments
  \orn<style,speed,dx,dy,size>(chords)
  % style = "turn", "invTurn", "mord", "invMord"

- \fingeredTrem(chords)
  \fingeredTrem<i>(chords)
  \fingeredTrem<n,dy>(chords)
  \fingeredTrem<i,n,dy>(chords)
  % fingered tremolo

- clusters
  \cluster(chord)   % chrom cluster
  \bCluster(chord)  % black cluster
  \wCluster(chord)  % white cluster

+ microtonal alterations:
  \alter<x>(notes)
  % int/float x = alteration in semitones
  % notation: alt in semitones above note

+ extended tempo indications:
  e.g., \tempo<str, "1/4=1/8">

+ "empty" rests
  notename "blank" (and "rest"="_"?)

+ figured bass
  \figured<fig>(notes)
  \figured<fig,dy>(notes)
  fig is a string containing a number of the following
  symbols, seperated by commata:
  - n (1,2,...)
  - n/ (slashed n)
  - &,#,n (flat,sharp,natural) and combinations of those
  - "-" to indicate dash for corr figure on that note / range
  - n+
  e.g.: "3,5" "-,5/,6&" "4,-,n"
  -> 3 is extended over first two chords,
     5 over last two chords
  % notation: symbols fig under first note, extended hor
  %  line to end of range

- proportional notation: (noteheads with vertical lines)
  -> \noteFormat<"proportional",size>


6 Arbitrary Graphical Elements

[kf]
+ graphic symbols
  \symbol<id-str, dx,dy, width, height>
  % dx, width in metrical units,
  % dy, height in halfspaces
  % y reference point is lowest staff line
  % use only when no other tag available


Acknowledgements

...

Index \noteFormat, \headsLeft, \headsRight, \headsCenter, \bracket, \stemsOff, \stemsAuto, \stemsUp, \stemsDown, \graceFormat, \cueFormat, \dotFormat, \acc, \tuplet, \ledgersOn, \ledgersOff, \silent, \silentFormat, \units, \pageFormat, \newPage, \spacing, \space, \staff, \staffFormat, \accolBegin, \accolEnd, \systemFormat, \newLine, \staccmo, \accentTen, \accentStacc, \tenStacc, \marcatoStacc, \hornOpen, \hornClosed, \harmonic, \thinDoubleBar, \repeatBeginBar, \repeatEndBar, \repeatEndBeginBar, \dottedBar, \barFormat, \upBow, \downBow, \pedalBegin, \pedalEnd, \fermataLonga, \repeatMeasure, \coda, \signa, \breathMark, \holdMark \gliss, \arpeggio, \orn, \fingeredTrem, \cluster,\bCluster,\wCluster, \figured, \alter, \symbol, ...