]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.3.28 release/1.3.28
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 1 Mar 2000 12:32:12 +0000 (13:32 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 1 Mar 2000 12:32:12 +0000 (13:32 +0100)
======

* Update of the glossary by Christian Mondrup

* Moved horn-concerto-3 out of tarball to private website, removed
W.A.Mozart subdirectory.

1.3.27.h

56 files changed:
AUTHORS.txt
CHANGES
Documentation/index.texi
Documentation/topdocs/AUTHORS.texi
Documentation/topdocs/INSTALL.texi
Documentation/topdocs/index.tely
Documentation/user/glossary.itexi [deleted file]
Documentation/user/glossary.tely [new file with mode: 0644]
Documentation/user/lilypond.tely
INSTALL.txt
TODO
VERSION
buildscripts/mutopia-index.py
input/test/GNUmakefile
input/test/sleur.ly
input/test/slur-area.fly [new file with mode: 0644]
input/test/slur-area.sly [deleted file]
input/test/slur-proof.ly [new file with mode: 0644]
input/test/tuplet-rest.ly [new file with mode: 0644]
lily/atom.cc
lily/bezier-bow.cc
lily/crescendo.cc
lily/dimension-cache.cc
lily/include/atom.hh
lily/include/bezier-bow.hh
lily/include/item.hh
lily/include/lily-guile.hh
lily/include/lily-proto.hh
lily/include/translator.hh
lily/include/tuplet-spanner.hh
lily/lily-guile.cc
lily/lookup.cc
lily/molecule.cc
lily/paper-outputter.cc
lily/paper-score.cc
lily/score-element.cc
lily/slur.cc
lily/staff-performer.cc
lily/tie.cc
lily/translator-group.cc
lily/tuplet-spanner.cc
lily/volta-spanner.cc
make/mutopia-targets.make
make/out/lilypond.lsm
make/out/lilypond.spec
make/toplevel.make.in
mutopia/GNUmakefile
mutopia/W.A.Mozart/GNUmakefile [deleted file]
mutopia/W.A.Mozart/horn-concerto-3/GNUmakefile [deleted file]
mutopia/W.A.Mozart/horn-concerto-3/allegro.ly [deleted file]
mutopia/W.A.Mozart/horn-concerto-3/cadenza.ly [deleted file]
mutopia/W.A.Mozart/horn-concerto-3/horn-concerto-3.ly [deleted file]
mutopia/W.A.Mozart/horn-concerto-3/romanze.ly [deleted file]
mutopia/W.A.Mozart/horn-concerto-3/rondo.ly [deleted file]
scm/lily.scm
scripts/ly2dvi.py

index 04c8fae7109a3627ff6b2474c5d196782242bdd1..83bef5a61192e542a2f1c125016c0f48d6381f21 100644 (file)
@@ -43,6 +43,8 @@ list is alphabetically ordered.
 
    * Adrian Mariano <>     Reference manual, tutorial fixes, glossary.
 
 
    * Adrian Mariano <>     Reference manual, tutorial fixes, glossary.
 
+   * Christian Mondrup <scancm@biobase.dk>     Glossary.
+
    * Han-Wen Nienhuys <hanwen@cs.uu.nl>,
      `http://www.cs.uu.nl/~hanwen/'     Main author (initials: HWN).
 
    * Han-Wen Nienhuys <hanwen@cs.uu.nl>,
      `http://www.cs.uu.nl/~hanwen/'     Main author (initials: HWN).
 
diff --git a/CHANGES b/CHANGES
index e439dbafe5f590b5805945aef478b141447b3f4d..2f2baa38edc23eb93193a758a15c82af81565bdc 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,8 +1,50 @@
-1.3.27.jcn1  -- eigenlijk: 26.hwn4.jcn1
+
+1.3.28
+======
+
+* Update of the glossary by Christian Mondrup 
+
+* Moved horn-concerto-3 out of tarball to private website, removed
+W.A.Mozart subdirectory.
+
+1.3.27.hwn1
+===========
+
+* Bugfix: don't make giant ties if the horizontal part of tie is near
+the center.
+
+* Small optimizations to be a little more careful with mem usage. 
+
+* Website change: put all examples in one directory.
+
+* Removed Atom as a separate type.  Now use SCM, and since we use
+function composition, Atoms are immutable, so they don't have to be
+copied. This makes life easier, hopefully this is quicker and uses
+less memory.
+
+1.3.27.jcn1
 ===========
 
 * Bezier_bow: minimise_enclosed_area
 
 ===========
 
 * Bezier_bow: minimise_enclosed_area
 
+1.3.27
+======
+
+1.3.26.hwn4
+===========
+
+* Tuplet-spanner slope calculation now looks better on tupletted rests
+(patch courtesy Laurent Martelli)
+
+* Bugfix (Staff_performer::new_instrument_str ()) check type of
+\property "instrument"
+
+* New mechanism for breaking lines: do not copy & prune the element
+property list separately, but combine these steps. Dramatically
+reduces memory usage for large scores.
+
+1.3.27
+======
 1.3.26.jcn2
 ===========
 
 1.3.26.jcn2
 ===========
 
index e9258e0c7271eede06af745ef7c67b988a4a1db4..da0c1053fbcf1dd0a7ba2e731b4cfb8cafc9b37a 100644 (file)
 @itemize @bullet
 @item @uref{faq.html,FAQ: Frequently asked questions}, with answers
 @item @uref{programs.html,`Manual pages'}
 @itemize @bullet
 @item @uref{faq.html,FAQ: Frequently asked questions}, with answers
 @item @uref{programs.html,`Manual pages'}
-@item @uref{../user/out-www/index.html,User documentation}
+
+@item @uref{../user/out-www/lilypond.html,LilyPond reference manual}
+also available in @uref{../user/out-www/lilypond.ps.gz,Postscript}
+@item @uref{../user/out-www/glossary.html,A glossary of musical
+terms}, includes translations.  Also available in @uref{../user/out-www/glossary.ps.gz,Postscript})
+@item @uref{../user/out-www/mudela-book.html,mudela-book}, a tool for
+integrating text and music in LaTeX and texinfo; also available in
+@uref{../user/out-www/mudela-book.ps.gz,Postscript}
 @item @uref{../programmer/out-www/index.html,Programmer documentation}
 @item @uref{../bibliography/out-www/index.html,Bibliography}
 @item @uref{../misc/out-www/index.html,Miscellaneous texts}
 @item @uref{../programmer/out-www/index.html,Programmer documentation}
 @item @uref{../bibliography/out-www/index.html,Bibliography}
 @item @uref{../misc/out-www/index.html,Miscellaneous texts}
index 950c41a7fa2c76f66e311f4ae48ea70529281412..4a37c46e0fb33f7a85c2314aad15d9a465e250f9 100644 (file)
@@ -43,8 +43,10 @@ list is alphabetically ordered.
     misc bugfixes, some Beam and Stem code. 
 @item @email{drl@@vuse.vanderbilt.edu, David R. Linn},
     Mailing list maintenance.
     misc bugfixes, some Beam and Stem code. 
 @item @email{drl@@vuse.vanderbilt.edu, David R. Linn},
     Mailing list maintenance.
-@item @email{, Adrian Mariano}
+@item @email{,Adrian Mariano}
     Reference manual, tutorial fixes, glossary.
     Reference manual, tutorial fixes, glossary.
+@item @email{scancm@@biobase.dk,Christian Mondrup}
+    Glossary.
 @item @email{hanwen@@cs.uu.nl, Han-Wen Nienhuys}, 
     @uref{http://www.cs.uu.nl/~hanwen/}
     Main author (initials: HWN).
 @item @email{hanwen@@cs.uu.nl, Han-Wen Nienhuys}, 
     @uref{http://www.cs.uu.nl/~hanwen/}
     Main author (initials: HWN).
index b0a5d56567b1f25c52f89391819f6dc043a5a11a..8678c583b19ff06500f36f2e24d167b2dda06356 100644 (file)
 
 This document explains what you need to install LilyPond, and what you
 should do.  If you are going to compile and install LilyPond often,
 
 This document explains what you need to install LilyPond, and what you
 should do.  If you are going to compile and install LilyPond often,
-e.g. when doing development, you might want to check out the 
-@file{buildscripts/set-lily.sh} script.  It sets some environment 
-variables and symlinks, which comes in handly when you have to compile 
-LilyPond more often.  
+e.g. when doing development, you might want to check out the
+@file{buildscripts/set-lily.sh} script.  It sets some environment
+variables and symlinks, which comes in handy when you have to compile
+LilyPond more often.
 
 @section Obtaining
 
 
 @section Obtaining
 
index e87837690fc7b0e12bb4d60d0580abe6b638f875..e1211293a7edad2497faf4c5f01e44ee25668f01 100644 (file)
@@ -70,7 +70,7 @@ almost no restrictions.  LilyPond is part of the
 The version numbers are in Linux-kernel style: even numbered versions
 are `stable'. The webpages for the stable version (1.2) reside at GNU,
 here: @uref{http://www.gnu.org/software/lilypond}. Big enhancements go
 The version numbers are in Linux-kernel style: even numbered versions
 are `stable'. The webpages for the stable version (1.2) reside at GNU,
 here: @uref{http://www.gnu.org/software/lilypond}. Big enhancements go
-into the latest odd numbered version (1.3), which webpages are on 
+into the latest odd numbered version (1.3); its  webpages are on 
  @uref{http://www.cs.uu.nl/~hanwen/lilypond/,Han-Wen's site}.
 
 If want more information, you can browse the
  @uref{http://www.cs.uu.nl/~hanwen/lilypond/,Han-Wen's site}.
 
 If want more information, you can browse the
@@ -91,8 +91,8 @@ For the latest and greatest features, check out the
 
 
 If you are interested in sheet music typeset by LilyPond, have a look at
 
 
 If you are interested in sheet music typeset by LilyPond, have a look at
-the examples included. We have @uref{./input/out-www/index.html,short
-examples} and @uref{./mutopia/out-www/index.html,longer examples}. The
+the examples included. We have @uref{short-examples.html,short
+examples} and @uref{long-examples.html,longer examples}. The
 examples include sound bites  in MIDI, pictures in PNG, printable scores
 in PostScript, and LilyPond input.
 
 examples include sound bites  in MIDI, pictures in PNG, printable scores
 in PostScript, and LilyPond input.
 
@@ -112,9 +112,9 @@ large archive of public domain sheet music under construction.
 
 If you want to compile LilyPond from source, download here:
 @itemize @bullet
 
 If you want to compile LilyPond from source, download here:
 @itemize @bullet
-@item    Download stable releases at
+@item Download stable releases at
 @uref{ftp://ftp.gnu.org/gnu/lilypond/}
 @uref{ftp://ftp.gnu.org/gnu/lilypond/}
-@item    Download development releases at
+@item Download development releases at
 @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/}
 @item Canadian mirror   @uref{http://sca.uwaterloo.ca/lilypond/} and @uref{ftp://sca.uwaterloo.ca/pub/} 
 @item Another site in Europe
 @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/}
 @item Canadian mirror   @uref{http://sca.uwaterloo.ca/lilypond/} and @uref{ftp://sca.uwaterloo.ca/pub/} 
 @item Another site in Europe
@@ -122,7 +122,8 @@ If you want to compile LilyPond from source, download here:
 @end itemize
 
 Installing and compiling requires many additional packages, which are
 @end itemize
 
 Installing and compiling requires many additional packages, which are
-listed in the  @uref{Documentation/topdocs/out-www/INSTALL.html, installation instructions}.
+listed in the @uref{Documentation/topdocs/out-www/INSTALL.html,
+installation instructions}.
 
 There are binaries available, but alas they are not updated for every version released.
 @itemize @bullet
 
 There are binaries available, but alas they are not updated for every version released.
 @itemize @bullet
@@ -144,25 +145,6 @@ If you have questions, do write to the mailing lists!
  (But don't forget to read the @uref{Documentation/out-www/faq.html,
 Frequently Asked Questions} first.)
 
  (But don't forget to read the @uref{Documentation/out-www/faq.html,
 Frequently Asked Questions} first.)
 
-@html
-<p align=center>
-[
-    <a href="#download">Download</a>
-    |
-    <a href="Documentation/out-www/faq.html">FAQ</a>
-    |
-    <a href="Documentation/out-www/index.html">Documentation</a>
-    |
-    <a href="#music">Music archives</a>
-    |
-    <a href="#mailing-lists">Mailing lists</a>
-    |
-    <a href="Documentation/programmer/out-www/regression-test.html">
-    Regression test</a>
-    |
-    <a href="Documentation/out-www/CHANGES.txt">News</a>
-]
-@end html
 
 @table @samp
 @item info-gnu-music@@gnu.org
 
 @table @samp
 @item info-gnu-music@@gnu.org
diff --git a/Documentation/user/glossary.itexi b/Documentation/user/glossary.itexi
deleted file mode 100644 (file)
index fca076a..0000000
+++ /dev/null
@@ -1,2068 +0,0 @@
-@node Glossary, , ,  Top
-@chapter Glossary
-
-This is a list of musical terms, along with explanations and
-translations.  It is not complete, so additions are welcome.
-Languages are marked thusly:
-
-@itemize
-@item NL - Nederlands
-@item UK - British English
-@item F - French
-@item I - Italian
-@end itemize
-
-@table @strong
-
-@item Enharmonic Comma
-
-F: comma enharmonique
-
-
-@ignore
-
-F: doigté de pédale
-
-F: doigté,  D: Fingersatz 
-
-F: indication de pédale
-
-F: pointillés.
-
-@end ignore
-
-@item A
-F: la,  D: a.
-
-
-
-
-@item accent
-F: accent,  D: Akzent NL: accent I: accento.
-
-
-
-@item accidental
-F: altération accidentelle,  D: Vorzeichen, Versetzungszeichen, Akzidenz NL: toevallig teken, I: accidento.
-
-
-
-@item adjacent keys
-F: tons voisins.
-
-
-
-@item alto
-F: alto,  D: Alt, NL: alt.
-
-
-
-@item ancient form??? (diatonic minor scale)
-F: forme du mode mineur ancien.
-
-
-
-@item appoggiatura
-F: appogiature, ports de voix, notes d'agrèment,  D: langer Vorschlag, NL: lange voorslag, I: appogiature.
-
-
-
-@item arbitrary number of bars' rest
-F: bâton de pause,   NL: meermaats rust.
-
-
-
-@item arpeggio
-F: arpège, arpègement,  D: Arpeggio, Brechungen, NL: gebroken akoord, I: arpeggio.
-
-
-
-@item artificial measure
-F: mesure artificielle.
-
-
-
-@item artificial rest
-F: respiration.
-
-
-
-@item ascending interval
-
-F: intervalle ascendant,   NL: stijgend interval.
-
-
-@item augmented (interval)
-
-F: augmenté (intervalle),  D: Ã¼bermäßig (Intervall), NL: overmatig interval.
-
-
-@item autograph
-
-1. A manuscript in the composer's own hand. 2.  Music prepared for
-photoreproduction by freehand drawing, with only the aid of a
-straightedge ruler and T-square, which attempts to emulate
-engraving. This required more skill than engraving.
-
-@item B
-
-F: si,  D: h.
-
-
-
-
-
-@item backfall; forefall
-
-F: accent, chute, port de voix,  D: Vorschlag, NL: korte voorslag, I: appogiature.
-
-
-
-
-
-@item bar line
-
-F: barre (de mesure),  D: Taktstrich, NL: maatstreep, I: stanghetta.
-
-
-
-
-
-@item bar; measure
-
-F: mesure,  D: Takt, NL: maat, maatstreep.
-
-
-
-
-
-@item baritone
-
-F: bariton,  D: Bariton, NL: bariton.
-
-
-
-@item F clef
-
-D: F-Schlüssel, NL: F sleutel.
-
-A clef shaped as a curl with two dots.  The position between the dots is the line of the F below central C.
-
-
-
-
-@item bass clef
-
-F: clé de fa,  D: Bass-Schlüssel, NL: bas sleutel, I: chiave di basso.
-
-A clef setting with central C on the first top ledger line.
-
-
-
-
-@item bass
-
-F: basse,  D: Bass, NL: bas.
-
-
-
-
-
-@item beam
-
-F: barre,  D: Balken, NL: waardestreep/balk, I: barra.
-
-
-
-
-
-@item beat
-
-F: temps,  D: Takt(-schlag), NL: tel.
-
-
-
-
-
-@item brace
-
-F: accolade,  D: Klammer, NL: accolade, haak, I: accolada.
-
-Symbol at the start of a system that connects staffs.
-
-
-
-
-@item brass
-
-  D: Blechbläser, NL: koper (blazers).
-
-
-
-
-
-@item alto clef
-
-F: clé d'ut,  D: Altschlüssel, NL: alt sleutel, I: chiave di tenore.
-
-Clef setting that has central C on the middle staff line.  
-
-
-
-
-@item C clef
-
-   NL: C sleutel. .
-
-A clef symbol that looks like a horizontally mirrored 3.  It indicates the position of the central C. Used in different positions.
-
-
-
-
-@item C
-
-F: do,  D: c, NL: C.
-
-
-
-
-
-@item C
-
-F: ut,  D: c.
-
-
-
-
-
-@item cadence
-
-F: cadence,  D: Kadenz, NL: cadens.
-
-
-
-
-
-@item cadenza
-
-F: fioriture,  D: Kadenz, NL: cadens, I: cadenza.
-
-
-
-
-
-@item cent
-
-  D: Cent, NL: cent.
-
-1/1200 of an octave (1/100 of an equally tempered semitone)
-
-
-
-
-@item chain of trills
-
-F: chaîne de trilles,   NL: triller.
-
-
-
-
-
-@item character
-
-F: caractère.
-
-
-
-
-
-@item chevron
-
-F: chevron.
-
-
-
-
-
-@item chord
-
-F: accord,  D: Akkord, NL: akkoord.
-
-
-
-
-
-@item chromatic scale
-
-F: gamme chromatique,  D: Chromatische Tonleiter, NL: chromatische toonladder.
-
-
-
-
-
-@item chromatic semitone
-
-F: demi-ton chromatique,   NL: chromatische halve toon.
-
-
-
-
-
-@item chromatic transposition
-
-F: transposition chromatique.
-
-
-
-
-
-@item chromatic type
-
-F: genre chromatique.
-
-
-
-
-
-@item church mode; ecclesiastical mode
-
-F: mode ecclésiastique,  D: Kirchentonart, NL: kerk toonladder.
-
-
-
-
-
-@item clef
-
-F: clé,  D: Notenschlüssel, NL: sleutel, I: la chiave (pl. le chiavi).
-
-
-
-
-
-@item comma
-
-F: comma,  D: Komma, NL: komma.
-
-Difference in pitch of a note when the note is derived from a different tuning system.
-
-
-
-
-@item compound interval
-
-F: intervalle composé,  D: Komplementärintervall.
-
-
-
-
-
-@item compound measure
-
-F: mesure composée,   NL: samengestelde maat.
-
-
-
-
-
-@item conjunct movement
-
-F: mouvement conjoint.
-
-
-
-
-
-@item consonant interval; consonance
-
-F: consonance,  D: Konsonanz, NL: consonant.
-
-
-
-
-
-@item contralto
-
-F: contralto,  D: Alt(-stimme), alt-.
-
-
-
-
-
-@item contro-time
-
-F: contre-temps.
-
-@item Copying, Music
-
-A music copyist did fast freehand scores and parts on preprinted staff
-lines for performance. Some of their conventions (e.g.: the placement of
-noteheads on stems) varied slightly from those of engravers. Some of
-their practices (not that) were superior and could well be adopted by
-music typesetters. This also required more skill than engraving.
-
-
-@item crescendo
-
-F: crescendo,  D: Crescendo,  I: crescendo.
-
-written with an extended opening angular bracket, indicates increasing volume
-
-
-
-
-@item cue-notes
-
-  D: Stichnoten, NL: stichnoten.
-
-In an orchestral part, notes for a different instrument that hint when to start playing.  Usually printed in smaller type.
-
-
-
-
-@item D
-
-F: ré,  D: d.
-
-
-
-
-
-@item dash over/below
-
-    I: pizzicato.
-
-With plucked strings
-
-
-
-
-@item decrescendo
-
-  D: Decrescendo,  I: decrescendo.
-
-written with an extended closing angular bracket, indicates decreasing volume
-
-
-
-
-@item degree [of the scale]
-
-F: degré [de la gamme],  D: Stufe [der Tonleiter], NL: trap [van de toonladder].
-
-
-
-
-
-@item descending interval
-
-F: intervalle descendant,   NL: dalend interval.
-
-
-
-
-
-@item diatonic major scale
-
-F: gamme diatonique majeure,  D: Diatonische Durtonleiter, NL: diatonische majeur toonladder.
-
-
-
-
-
-@item diatonic minor scale
-
-F: gamme diatonique mineure,  D: Diatonische Molltonleiter.
-
-
-
-
-
-@item diatonic semitone
-
-F: demi-ton diatonique,   NL: diatonische halve toon.
-
-
-
-
-
-@item diatonic type
-
-F: genre diatonique,  D: diatonisch.
-
-
-
-
-
-@item diatonic
-
-F: diatonique,   NL: diatonisch.
-
-A diatonic scale is a scale consisting of whole and half tones.
-
-
-
-
-@item diminished (interval)
-
-F: diminué (intervalle),  D: vermindert (Intervall), NL: verminderd (interval).
-
-
-
-
-
-@item disjunct movement
-
-F: mouvement disjoint.
-
-
-
-
-
-@item dissonant interval; dissonance
-
-F: dissonance,  D: Dissonanz, NL: dissonant interval; dissonant.
-
-
-
-
-
-@item dominant ninth chord
-
-F: accord de neuvième dominante,   NL: dominant noon akkoord.
-
-
-
-
-
-@item dominant seventh chord
-
-F: accord de septième dominante,  D: Dominantseptakkord, NL: dominant septiem akkoord.
-
-
-
-
-
-@item dominant
-
-F: dominante,  D: Dominante, NL: dominant.
-
-A tone that creates tension;the fifth degree of the scale.
-
-
-
-
-@item dorian mode
-
-  D: Dorische Tonart, NL: dorische toonladder.
-
-Mode obtained by raising the sixth in minor mode.  A Dorian scale can be played from D to D with no sharps or flats.
-
-
-
-
-@item dot (augmentation dot) 
-
-F: point,  D: Punkt (Verlängerungspunkt), NL: punt, I: punto.
-
-An augmentation dot after note adds multiplies the duration by one and a half.
-
-
-
-
-@item dot and curved line combined
-
-F: point et liaison combinés.
-
-
-
-
-
-@item dot over/below
-
-  D: Staccato, NL: staccato, I: staccato.
-
-Play each note short.
-
-
-
-
-@item dot
-
-F: point,  D: Punkt, NL: punt.
-
-
-
-
-
-@item dotted note
-
-F: note pointée,  D: punktierte Note.
-
-
-
-
-
-@item double appoggiatura
-
-F: appogiature double.
-
-
-
-
-
-@item double bar line
-
-F: double barre,  D: Doppel(takt)strich, NL: dubbele streep, I: doppia barra.
-
-Indicates the end of a section within a movement.
-
-
-
-
-@item double dotted note
-
-F: note doublement pointée,  D: doppel-punktierte Note.
-
-
-
-
-
-@item double flat
-
-F: double bémol,  D: Doppel-Be, NL: dubbelmol, I: doppio bemolle.
-
-
-
-
-
-@item double sharp
-
-F: double dièse,  D: Doppelkreuz, NL: dubbelkruis, I: doppio diesis.
-
-Raise pitch by two semitones
-
-
-
-
-@item double trill
-
-F: trille double,  D: Doppeltriller.
-
-A trill on a chord
-
-
-
-
-@item double triplet
-
-F: double triolet,  D: Doppeltriole, NL: dubbele triool.
-
-
-
-
-
-@item double whole note
-
- UK: breve, D: Brevis, NL: brevis, I: breve.
-
-Note during twice as long as a whole note. Mainly used in pre-1650 music.
-
-
-
-
-@item duple meter
-
-F: temps binaire,   NL: tweedelige maatsoort.
-
-
-
-
-
-@item duplet
-
-F: duolet,  D: Duole, NL: duool.
-
-
-
-
-
-@item duration
-
-F: durée,  D: Dauer, Länge, NL: duur, lengte.
-
-
-
-
-
-@item E
-
-F: mi,  D: e.
-
-
-
-
-
-@item eighth note
-
-F: croche, UK: quaver, D: Achtelnote, NL: achtste noot.
-
-
-
-
-
-@item eighth rest
-
-F: demi-soupir, UK: quaver rest, D: Achtelpause, NL: achtste rust.
-
-
-
-
-
-@item engraving
-
-D: Notenstechen, NL: steken.
-
-Engraving means incising or etching a metal plate for
-printing. Photoengraving means drawing music with ink in a manner
-similar to drafting or engineering drawing, using similar tools.
-
-The traditional process of music printing is done through: cutting in a
-plate of metal. Now also the term for the art of music typography.
-
-
-
-
-@item enharmonic
-
-F: enharmonique,  D: enharmonisch, NL: enharmonisch.
-
-Two notes, intervals, or scales are enharmonic if they have different names but sound the same.  Examples: C sharp and D flat, diminished fourth and major third
-
-
-
-
-@item equal temperament
-
-F: tempérament Ã©gal,   NL: getempereerde stemming.
-
-Tuning system in which each semitone is precisely 100 cents.
-
-
-
-
-@item essential alteration
-
-F: altération essentielle.
-
-
-
-
-
-@item expression mark
-
-F: signe d'expressoin,  D: Vortragszeichen, NL: voordrachtsteken, I: segno d'espressione.
-
-
-
-
-
-@item extension of interval
-
-F: extension d'intervalle.
-
-
-
-
-
-@item F
-
-F: fa,  D: f.
-
-
-
-
-
-@item fermata
-
-F: pauses,  D: Fermate, NL: fermate, I: fermata.
-
-Prolonged sound or silence of indefinite duration
-
-
-
-
-@item fifth
-
-F: quinte,  D: Quinte, NL: kwint.
-
-
-
-
-
-@item flag; hook; tail; pennant
-
-F: crochet,  D: Fähnchen, NL: vlaggetje, I: coda uncinata.
-
-Ornament at the end of the stem of a note. The number of flags determines the lengths of notes shorter than a quarter note.
-
-
-
-
-@item flat
-
-F: bémol,  D: Be, NL: mol, I: bemolle.
-
-Lower pitch by a semitone
-
-
-
-
-@item four-bar rest
-
-F: bâton de pause.
-
-
-
-
-
-@item fourth
-
-F: quarte,  D: Quarte, NL: kwart.
-
-
-
-
-
-@item G
-
-F: sol,  D: g.
-
-
-
-
-
-@item glissando
-
-F: glissement,  D: Glissando, NL: glissando, I: glissando.
-
-Letting the pitch  slide fluently from one note to the other
-
-
-
-
-@item graces
-
-F: petites notes,  D: Verzierungen, Manieren, NL: versieringen, I: appogiature.
-
-
-
-
-
-@item grand staff
-
-   NL: piano systeem.
-
-A combination of two staffs with a brace.  Usually used for piano music.
-
-
-
-
-@item half note
-
-F: blanche, UK: minim, D: Halbe Note, NL: halve noot.
-
-
-
-
-
-@item half rest
-
-F: demi-pause, UK: minim rest, D: Halbe Pause, NL: halve rust.
-
-
-
-
-
-@item harmonic cadence
-
-F: cadence harmonique,   NL: harmonische cadens.
-
-Sequence of chords that terminate a musical phrase or section.
-
-
-
-
-@item harmonic form (diatonic minor scale)
-
-F: forme harmonique.
-
-
-
-
-
-@item harmonic interval
-
-F: intervalle harmonique,  D: Harmonisches Intervall.
-
-
-
-
-
-@item incomplete measure
-
-F: mesure incomplète.
-
-
-
-
-
-@item interval
-
-F: intervalle,  D: Intervall, NL: interval.
-
-Difference in pitch between two notes
-
-
-
-
-@item inversion of interval
-
-F: renversement d'intervalle,   NL: interval inversie.
-
-
-
-
-
-@item irregular contro-time
-
-F: contre-temps irrégulier.
-
-
-
-
-
-@item irregular group
-
-F: groupe irrégulier.
-
-
-
-
-
-@item irregular measure
-
-F: mesure irrégulière.
-
-
-
-
-
-@item irregular syncopation
-
-F: syncope irrégulière,   NL: onregelmatige syncope.
-
-
-
-
-
-@item just intonation
-
-    I: .
-
-Tuning system in which the notes are obtained by adding and subtracting natural fifths and thirds.
-
-
-
-
-@item key signature
-
-F: armure, armature [de la clé], signes des accidentals,  D: Vorzeichen, NL: toonsoort (voortekens), I: segni di chiave.
-
-
-
-
-
-@item kind of note
-
-F: figure de note.
-
-
-
-
-
-@item kind of rest
-
-F: figure de silence.
-
-
-
-
-
-@item leading note
-
-F: sensible.
-
-
-
-
-
-@item ledger line; leger line
-
-F: ligne supplémentaire,  D: Hilfslinien, Kopfstriche (?), NL: hulplijntje, I: lineette.
-
-A ledger line is an extension of the staff.  
-
-
-
-
-@item legato curve
-
-F: liaison rythmique,   NL: legato boog.
-
-
-
-
-
-@item lilypond
-
-F: Ã©tang de lis, UK: lily pond, D: Lilienteich, NL: lelievijver, I: stagno del giglio.
-
-A pond with  lilies floating in it, also the name of a music typesetter.
-
-
-
-
-@item line
-
-F: ligne,  D: Linie, NL: lijn.
-
-
-
-
-
-@item long appoggiatura
-
-F: appogiature longue.
-
-
-
-
-
-@item lower number
-
-F: chiffre inférieur.
-
-
-
-
-
-@item major (interval)
-
-F: majeur (intervalle),  D: groß (Intervall), NL: groot (interval).
-
-
-
-
-
-@item major mode
-
-F: mode majeur,  D: Dur.
-
-
-
-
-
-@item meantone temperament
-
-F: tempérament mésotonique.
-
-Tuning based on a fifth that is 16 cents smaller than the natural fifth.  
-
-
-
-
-@item mediant
-
-F: médiante,   NL: mediant.
-
-The third degree of a scale
-
-
-
-
-@item melodic cadence
-
-F: cadence mélodique,   NL: cadens.
-
-A free-form section at the end of a solo-concerto, where the soloist can demonstrate his/her virtuosity.
-
-
-
-
-@item melodic form (diatonic minor scale)
-
-F: forme mélodique.
-
-
-
-
-
-@item meter; time
-
-F: mètre,  D: Takt, Metrum, NL: maatsoort.
-
-A recurring pattern of stress
-
-
-
-
-@item metronome
-
-F: métronome,  D: Metronom, NL: metronoom.
-
-Device which sounds a steady beat
-
-
-
-
-@item metronomic indication
-
-F: indication métronomique,  D: Metronomangabe.
-
-Exact tempo indication (in beats per minute).  Also denoted by M.M. (Mälzel's Metronom)
-
-
-
-
-@item mezzo-soprano
-
-F: mezzo-soprano,  D: Mezzosopran.
-
-
-
-
-
-@item middle C
-
-F: do central,  D: eingestrichenes c, NL: centrale C.
-
-First C below the 440 Hz A.
-
-
-
-
-@item minor (interval)
-
-F: mineur (intervalle),  D: klein (Intervall).
-
-
-
-
-
-@item minor mode
-
-F: mode mineur,  D: Moll.
-
-
-
-
-
-@item modal note
-
-F: note modale.
-
-
-
-
-
-@item mode
-
-F: mode,  D: Geschlecht.
-
-
-
-
-
-@item modulation
-
-F: modulation,  D: Modulation, NL: modulatie.
-
-
-
-
-
-@item mordent
-
-F: mordant, pincè,  D: Pralltriller, Mordent, NL: mordent, I: mordente.
-
-
-
-
-
-@item motive
-
-F: incise,  D: Motiv, NL: motief.
-
-
-
-
-
-@item musical ladder
-
-F: Ã©chelle musicale.
-
-
-
-
-
-@item mixolydian mode
-
-  D: Mixolydische Tonart, NL: Mixolydische toonladder.
-
-Mode obtained by lowering the seventh in major.  A mixolydian scale can be obtained by playing G to G with no sharps or flats.
-
-
-
-
-@item natural sign
-
-F: bécarre,  D: Auflösungszeichen, NL: herstellingsteken, I: bequadro.
-
-Do not play the following note flat or sharp.
-
-
-
-
-@item ninth
-
-  D: None, NL: noon.
-
-
-
-
-
-@item note head
-
-  D: Notenkopf, NL: noot balletje.
-
-
-
-
-
-@item note
-
-F: note,  D: Note, NL: noot, I: nota.
-
-
-
-
-
-@item octave line
-
-F: Ã©chelle d'octave.
-
-
-
-
-
-@item octave line
-
-F: clé d'octave.
-
-
-
-
-
-@item octave sign
-
-F: octave,  D: Oktave,  I: ottava.
-
-
-
-
-
-@item octave
-
-F: octave,  D: Oktave, NL: octaaf.
-
-
-
-
-
-@item ornament; embellishment; accessory
-
-F: agrèment, ornement, D: Verzierungen, I: fiorette, fioriture,
-abbellimenti.
-
-
-@item ossia
-
-NL: alternatief
-
-Ossia (otherwise) marks an alternative. It is an added staff or piano
-score, usually only a few measures long, which presents another version
-of the music, for small hands, for example.
-
-
-@item part
-
-NL: partij.
-
-
-
-
-
-@item pause
-
-F: pause,  D: Luftpause.
-
-
-
-
-
-@item pause
-
-F: point d'orgue.
-
-
-
-
-
-@item perfect (interval)
-
-F: juste (intervalle),  D: rein (Intervall), NL: rein (interval).
-
-
-
-
-
-@item perfect major chord
-
-F: accord parfait majeur.
-
-
-
-
-
-@item perfect minor chord
-
-F: accord parfait mineur.
-
-
-
-
-
-@item phrase member
-
-F: membre de phrase.
-
-
-
-
-
-@item phrase
-
-F: phrase,  D: Phrase, NL: frase, zin.
-
-
-
-
-
-@item phrasing
-
-F: phrasé.
-
-
-
-
-
-@item pitch pipe; tuning fork
-
-F: diapason,  D: Stimmgabel, NL: stemfluitje; stemvork.
-
-
-
-
-
-@item pitch
-
-F: hauteur,  D: Tonhöhe, NL: toonhoogte.
-
-
-
-
-
-@item Pythagorean comma
-
-F: comma pythagoricien,  D: Pythagoräisches Komma, NL: komma van Pythagoras.
-
-A sequence of fifths starting on C eventually circles back to C (B sharp), but this B sharp is 24 cents higher than C.  This gap is the Pythagorean comma.  
-
-
-
-
-@item quadruplet
-
-F: quartolet,   NL: kwartool.
-
-
-
-
-
-@item quarter note
-
-F: noire, UK: crotchet, D: Viertelnote, NL: kwartnoot.
-
-
-
-
-
-@item quarter rest
-
-F: soupir, UK: crotchet rest, D: Viertelpause, NL: kwart rust.
-
-
-
-
-
-@item register
-
-F: registre,  D: Register, NL: register.
-
-
-
-
-
-@item regular contro-time
-
-F: contre-temps régulier.
-
-
-
-
-
-@item regular syncopation
-
-F: syncope régulière.
-
-
-
-
-
-@item relative scales
-
-F: gammes relatives, tons relatifs.
-
-
-
-
-
-@item repeat
-
-F: barre de reprise,  D: Wiederholung, NL: herhaling.
-
-
-
-
-
-@item rest
-
-F: silence.
-
-
-
-
-
-@item rest
-
-F: soupir,  D: Pause, NL: rust, I: pausa.
-
-
-
-
-
-@item return sign
-
-F: renvoi,   NL: herstellingsteken.
-
-
-
-
-
-@item rhythm
-
-F: rythme,  D: Rhythmus, NL: ritme.
-
-
-
-
-
-@item rhythmic curve
-
-F: courbe rythmique.
-
-
-
-
-
-@item scale
-
-F: gamme,  D: Tonleiter, NL: toonladder.
-
-
-
-
-
-@item score
-
-F: partition,  D: Partitur, NL: partituur.
-
-
-
-
-
-@item second
-
-F: seconde,  D: Sekunde,  I: secunde.
-
-
-
-
-
-@item semitone
-
-F: demi-ton,  D: Halbton, NL: halve toon.
-
-
-
-
-
-@item seventh
-
-F: septième,  D: Septime, NL: septiem, I: septime.
-
-
-
-
-
-@item sextuplet
-
-F: sextolet,  D: Sextole, NL: sextool.
-
-
-
-
-
-@item sextuplet
-
-F: sixain,   NL: sextool.
-
-
-
-
-
-@item shading signs
-
-F: signes indicateurs de nuance.
-
-
-
-
-
-@item shading
-
-F: nuance,  D: Nuance.
-
-
-
-
-
-@item sharp
-
-F: dièse,  D: Kreuz (um Halbton erhöht), NL: kruis.
-
-
-
-
-
-@item short appoggiatura
-
-F: appogiature brève.
-
-
-
-
-
-@item simple appoggiatura
-
-F: appogiature simple.
-
-
-
-
-
-@item simple interval
-
-F: intervalle simple.
-
-
-
-
-
-@item simple measure
-
-F: mesure simple.
-
-
-
-
-
-@item sixteenth note
-
-F: double croche, UK: semiquaver, D: Sechzehntelnote, NL: zestiende noot.
-
-
-
-
-
-@item sixteenth rest
-
-F: quart de soupir, UK: semiquaver rest, D: Sechzehntelpause, NL: zestiende rust.
-
-
-
-
-
-@item sixth
-
-F: sixte,  D: Sexte, NL: sext.
-
-
-
-
-
-@item sixty-fourth note
-
-F: quadruple croche, UK: hemidemisemiquaver, D: Vierundsechzigstelnote, NL: vierenzestigste noot.
-
-
-
-
-
-@item sixty-fourth rest
-
-F: seizième de soupir, UK: hemidemisemiquaver rest, D: Vierundsechzigstelpause.
-
-
-
-
-
-@item slur
-
-F: liaison, coulé,  D: Bindungszeichen, Bindebogen, NL: binding, bindingsboog, I: legatura.
-
-
-
-
-
-@item soprano
-
-F: soprano,  D: Sopran, NL: sopraan.
-
-
-
-
-
-@item space
-
-F: espace.
-
-
-
-
-
-@item staff
-
-F: portée,  D: Noten(linien)system, NL: (noten)balk; partij.
-
-pl staves or staffs
-
-
-
-
-@item stem
-
-F: queue,  D: Stiel, Hals, NL: stok, I: asta, gamba.
-
-
-
-
-
-@item strings
-
-  D: Streicher, NL: strijkers.
-
-
-
-
-
-@item strong beat
-
-F: temps fort,   NL: thesis.
-
-
-
-
-
-@item subdominant
-
-F: sous-dominante,  D: Subdominante.
-
-The fourth degree of the scale
-
-
-
-
-@item submediant
-
-    I: .
-
-The sixth scale degree
-
-
-
-
-@item subtonic
-
-F: sous-tonique,  D: Subtonika.
-
-The seventh degree of the scale
-
-
-
-
-@item superdominant
-
-F: sus-dominante.
-
-The sixth scale degree
-
-
-
-
-@item supertonic
-
-F: sus-tonique.
-
-The second scale degree
-
-
-
-
-@item syncopation; upbeat
-
-F: syncope,  D: Synkope, NL: syncope.
-
-
-
-
-
-@item syntonic comma
-
-F: comma syntonique,   NL: komma van Didymos, syntonische komma.
-
-Difference between the natural third and the third obtained by Pythagorean tuning, euqal to 22 cents. 
-
-
-
-
-@item system
-
-F: système,  D: System, NL: systeem, I: sitema.
-
-
-
-
-
-@item tempo indication
-
-F: signes de temps,  D: Zeitmaß, Tempobezeichnung, NL: tempo aanduiding, I: segno di tempo.
-
-
-
-
-
-@item tempo; movement
-
-F: mouvement,  D: Tempo.
-
-
-
-
-
-@item tenor
-
-F: ténor,  D: Tenor.
-
-
-
-
-
-@item tenth
-
-  D: Dezime, NL: deciem, I: decime.
-
-
-
-
-
-@item tetrachord
-
-F: tétracorde,  D: Vierklang.
-
-
-
-
-
-@item third
-
-F: tierce,  D: Terz, NL: terts.
-
-
-
-
-
-@item thirty-second note
-
-F: triple croche, UK: demisemiquaver, D: Zweiunddreißigstelnote, NL: 32e noot.
-
-
-
-
-
-@item thirty-second rest
-
-F: huitième de soupir, UK: demisemiquaver rest, D: Zweiunddreißigstelpause, NL: 32e rust.
-
-
-
-
-
-@item tie
-
-F: liaison,  D: Haltebogen, NL: overbinding, I: legatura.
-
-A curve that shows the prolongation (as opposed to the repetition fo a note)
-
-
-
-
-@item time signature
-
-F: chiffrage (chiffres indicateurs), signe de valeur,  D: Taktvorzeichnung, Taktvorzeichen, NL: maatsoort, I: segni di tempo.
-
-
-
-
-
-@item tonal note
-
-F: note tonale.
-
-
-
-
-
-@item tonality
-
-F: tonalité,  D: Tonalität, NL: tonaliteit.
-
-
-
-
-
-@item tone
-
-F: ton,  D: Ton, NL: toon.
-
-
-
-
-
-@item tonic
-
-F: tonique,  D: Tonika, NL: tonica.
-
-
-
-
-
-@item transposition
-
-F: transposition,  D: Transposition, NL: transpositie.
-
-Shifting a melody up or down in pitch, while keeping the same relative pitches.
-
-
-
-
-@item G clef
-
-   NL: G sleutel.
-
-A clef symbol with a loop at the top and a spiral in the center.  The center of the spiral indicates the G above central C.
-
-
-
-
-@item treble clef
-
-F: clé de sol,  D: Violinschlüssel, NL: viool sleutel, I: chiave di violino.
-
-Clef setting where the second lowest line is the G above central C.
-
-
-
-
-@item tremolo
-
-F: trèmolo,  D: Tremolo, NL: tremolo, I: tremolo.
-
-
-
-
-
-@item trill; shake
-
-F: trille, tremblement, battement (cadence),  D: Triller, NL: triller, I: trillo.
-
-
-
-
-
-@item triple meter
-
-F: temps ternaire,   NL: driedelige maatsoort.
-
-
-
-
-
-@item triplet
-
-F: triolet,  D: Triole.
-
-
-
-
-
-@item tritone
-
-F: triton,  D: Tritonus.
-
-
-
-
-
-@item turn; gruppetto
-
-F: brisè, groupe, doublè, grupetto,  D: Doppelschlag, NL: dubbelslag, I: grupetto.
-
-
-
-
-
-@item two-bar rest
-
-F: bâton de pause.
-
-
-
-
-@item underline over/below
-
-F: portamento,  D: Portato.
-
-
-
-
-
-@item unison
-
-F: unisson,  D: Unisono,  I: unisono.
-
-Different instruments playing exactly the same melody.
-
-
-
-
-@item unit of beat
-
-F: unité de temps.
-
-
-
-
-
-@item unit of measure
-
-F: unité de mesure.
-
-
-
-
-
-@item upbeat; arsis
-
-  D: Auftakt.
-
-
-
-
-
-@item upper number
-
-F: chiffre supérieur.
-
-
-
-
-
-@item voice
-
-F: voix,  D: Stimme, NL: stem.
-
-
-
-@item weak beat
-
-F: temps faible,   NL: arsis.
-
-
-
-
-
-@item whole note
-
-F: ronde, UK: semibreve, D: Ganze Note, NL: hele noot.
-
-
-
-
-
-@item whole rest
-
-F: pause, UK: semibreve rest, D: Ganze Pause.
-
-
-
-
-
-@item woodwind
-
-D: Holzbläser, NL: houtblazers.
-
-
-@end table
-
diff --git a/Documentation/user/glossary.tely b/Documentation/user/glossary.tely
new file mode 100644 (file)
index 0000000..825f55c
--- /dev/null
@@ -0,0 +1,2614 @@
+
+\input texinfo
+@setfilename glossary.info
+
+@c @everyheading @| @thispage @|
+@evenheading @thispage @| @| 
+@oddheading @| @| @thispage @|
+
+@itemize 
+
+@item I - Italian 
+@item F - French 
+@item D - German 
+@item NL - Nederlands 
+@item UK - British English 
+@item DK - Danish 
+@item S - Swedish
+@item N - Norwegian 
+@end itemize
+
+@ 
+
+@macro ar{}
+@iftex
+@tex $\\Rightarrow$ @end tex
+@end iftex
+@ifhtml
+-->
+@end ifhtml
+@ifinfo
+-->
+@end ifinfo
+@end macro
+
+A reference is indicated by @ar{} followed by the term in @strong{boldface}. 
+
+@table @strong
+
+@item A
+I: la, F: la,  D: A, a, NL: a, DK: a, S: a, N: a.
+
+@item accent
+I: accento, F: accent, D: Akzent, NL: accent, DK: accent, S: accent, N: 
+
+The stress of one tone over others.
+
+@item accidental
+I: alterazione, accidente, F: alt@'eration accidentelle, D: Vorzeichen,
+Versetzungszeichen, NL: voorteken, DK: l@o{}st fortegn, S: f@"ortecken, N:
+
+@c F: alt@'eration accidentelle,  D: Vorzeichen, Versetzungszeichen,
+@c Akzidenz, NL: toevallig teken, I: accidento.  
+
+A sharp raises a tone by a @w{@ar{}@strong{semitone}}, a double sharp raises it
+by a @ar{}@strong{whole tone}, a flat lowers it by a semitone and a double
+flat lowers it by a whole tone. A natural cancels the effect of a previous
+accidental.
+
+@
+
+@mudela[13pt,eps]
+\property Score.barNonAuto = "1"
+\property Voice.textStyle = "large"
+\notes\relative c'' {
+  gis1_"sharp" s s2
+  gisis1_"db. sharp" s s2
+  ges1_"flat" s s2
+  geses1_"db. flat" s s2
+  g!1_"natural"
+}
+@end mudela
+
+@item adagio
+I: adagio, F: , D: Adagio, Langsam, NL: adagio, DK: adagio, S: adagio, N:
+adagio.
+
+It. comfortable, easy. 1. Slow tempo, slower - especially in even meter - than
+@w{@ar{}@strong{andante}} and faster than @w{@ar{}@strong{largo}}. 2. A
+movement in slow tempo, esepecially the scond (slow) movement of
+@w{@ar{}@strong{sonata}s}, symphonies etc.
+
+@item accelerando 
+I: accelerando, F: , D: accelerando, Schneller, NL: accelerando, DK:
+accelerando, S: accelerando, N:
+
+Stil faster tempo.
+
+@item allegro
+I: allegro, F: , D: Allegro, Schnell, Fr@"ohlich, Lustig, NL: allegro, DK:
+allegro, S: allegro, N: allegro.
+
+It. cheerful. Quick tempo. Also used as a title for pieces in a quick tempo,
+especially the first and last movements of a @w{@ar{}@strong{sonata}}.
+
+@item alto
+I: contralto, F: alto,  D: Alt, NL: alt, DK: alt, S: alt, N: alt.
+
+A female voice of low range (@emph{contralto}). Originally the alto was a high
+male voice (hence the name) which by the use of falsetto reached the height
+height of the female voice. This type of voice is also known as
+@w{@ar{}@strong{counter tenor}}.
+
+@item alto clef
+@c F: cl@'e d'ut, D: Altschl@"ussel, Bratschenschl@"ussel, NL: altsleutel, I:
+chiave di tenore.
+
+I: chiave di contralto, F: , D: Altschl@"ussel, Bratschenschl@"ussel, NL: alt
+sleutel, DK: altn@o{}gle, S: altklav, N:
+
+C clef setting central C on the middle line of the staff 
+@w{@ar{}@strong{C clef}}
+
+@item ancient minor scale
+I: scala minore naturale, F: forme du mode mineur ancien, trois@`eme mode,
+mode hell@'enique D: reines Moll, NL: , DK: ren mol, S: ren mollskala, N: .
+
+@
+
+@mudela[13pt,eps]
+\property Score.barNonAuto = "1"
+\notes\relative c'' {
+a1 b c d e f g a }
+@end mudela
+
+@item andante
+I: andante, F: , D: Andante, NL: andante, DK: andante, S: andante,
+N: andante. 
+
+walking tempo/character
+
+@item appoggiatura 
+I: appoggiatura, F: port de voix, D: Vorschlag, NL: voorslag, DK: forslag, S:
+f@"orslag, N:
+
+Ornamental note, usually a second, that is melodically connected with the main
+note that follows it. In music before the 19'th century a. were usually
+performed on the beat, after that mostly before the beat. While the short
+a. is performed as a short note regardless of the duration of the main note
+the duration of the long a. is proportionate to that of the main note. 
+
+@
+
+@mudela[13pt,eps]
+\property Voice.textEmptyDimension = "1"
+\property Voice.textStyle = "large"
+\notes\relative c'' {
+\key d;
+\time 4/4;
+<d4_"notation" a fis> r 
+{ \property Grace.stemStyle = ""
+  \grace g16 }
+fis8 e16 fis 
+{ \property Grace.stemStyle = ""
+  \grace a16 }
+g8 fis16 g | a4 \bar "||"; }
+\notes\relative c'' {
+<d4_"performance" a fis> r g16 () fis e fis a () g fis g | a4 \bar "||"; }
+@end mudela
+
+An appoggiatura may have more notes preceding the main note.
+
+@
+
+@mudela[13pt,eps]
+\property Voice.textEmptyDimension = "1"
+\property Voice.textStyle = "large"
+\notes\relative c'' {
+  \key as;
+  \time 2/4;
+  \grace { bes16 } as8_"notation" as16 bes as8 g |
+  \grace { [as16 ( bes] } < ) c4 as > 
+  \grace { [as16 ( bes] } < ) c4 as > \bar "||";
+  \grace { bes16 } as8_"performance" as16 bes as8 g |
+  < \context Voice = va { \stemup as32 bes c8. as32 bes c8. }
+    \context Voice = vb { \stemdown as16 ~ as8. as16 ~ as8. } >
+  \bar "||";
+}
+@end mudela
+
+@item arpeggio
+I: arpeggio, F: arp@`ege, arp@`egement, D: Arpeggio, Akkordbrechungen,
+gebrochener Akkord, NL: gebroken akoord, DK: arpeggio,
+akkordbrydning, S: arpeggio, N:
+
+@
+
+@mudela[13pt,eps]
+\context GrandStaff <
+  \notes\relative c'' { 
+    \time 4/4;
+    \clef treble; 
+    r8 g16 c e g, c e r8 g,16 c e g, c e |
+    r8 a,16 d f a, d f r8 a,16 d f a, d f \bar "||"; }
+  \notes\relative c' {
+    \clef bass; 
+    < \context Voice = va { 
+        \stemup 
+        r16 e8. () e4 r16 e8. () e4 |
+        r16 d8. () d4 r16 d8. () d4 }
+      \context Voice = vb { 
+        \stemdown 
+        c2 c | c c } >
+  }
+>
+@end mudela
+
+@item ascending interval
+I: intervallo ascendente, F: intervalle ascendant, D: steigendes Intervall,
+NL: stijgend interval, DK:@w{ }stigende interval, S: stigande intervall, N:
+
+@item augmented interval
+I: intervallo aumentato, F: intervalle augment@'e, D: @"uberm@"a@ss{}iges
+Intervall, NL: overmatig interval, DK: forst@o{}rret interval, S:
+@"overstigande intervall, N:
+
+@w{@ar{}@strong{interval}}
+
+@item autograph        
+I: autografo, F: , D: Autograph, Handschrift, NL: , DK: h@aa{}ndskrift,
+autograf, S: handskrift, N: .
+
+1. A manuscript in the composer's own hand. 2.  Music prepared for
+photoreproduction by freehand drawing, with only the aid of a
+straightedge ruler and T-square, which attempts to emulate
+engraving. This required more skill than did engraving.
+
+@item B
+I: si, F: si,  D: H, h, NL: b, DK: h, S: h, N: h.
+
+@item backfall; forefall 
+@w{@ar{}@strong{appoggiatura}}
+
+@item bar line
+I: stanghetta, barra (di divisione), F: barre (de mesure), D: Taktstrich, NL:
+maatstreep, DK: taktstreg, S: taktstreck, N:
+
+@item bar
+@w{@ar{}@strong{measure}}
+
+@item baritone
+I: baritono, F: bariton, D: Bariton, NL: bariton, DK: baryton, S: baryton, N:
+baryton.
+
+The male voice intermediate between the @w{@ar{}@strong{bass}} and the
+@w{@ar{}@strong{tenor}}.
+
+@item bariton clef
+I: chiave di baritono, F: , D: Barytonschl@"ussel, NL: baritonsleutel, DK:
+barytonn@o{}gle, S: barytonklav, N: .
+
+C or F clef setting central C on the upper staff line. @w{@ar{}@strong{c clef}}
+@w{@ar{}@strong{f clef}}
+
+@item bass clef
+I: chiave di basso, F: cl@'e de fa, D: Bass-Schl@"ussel, NL: bassleutel, DK:
+basn@o{}gle, S: basklav, N:
+
+A clef setting with central C on the first top ledger line. @w{@ar{}@strong{f
+clef}}
+
+@item bass
+I: basso, F: basse, D: Bass, NL: bas, DK: bas, S: bas, N: bas.
+
+1. The lowest of men's voices. 2. Sometimes, especially in jazz music, used as
+an abbreviation for double bass @w{@ar{}@strong{strings}}.
+
+@item beam
+I: coda, F: barre, D: Balken, NL: waardestreep, DK: bj@ae{}lke, S: balk, N:
+
+Line connecting a series of notes (shorter than a quarter note). The number of
+beams determine the note value of the connected notes.
+
+@
+
+@mudela[13pt,eps]
+\property Score.barNonAuto = "1"
+\property Voice.textEmptyDimension = "1"
+\property Voice.textStyle = "large"
+\notes\relative c'' { 
+  [g8_"1/8" g g g] s16
+  [g16_"1/16" g g g] s16
+  [g32_"1/32" s32 g32 s32 g32 s32 g32] s16
+  [g64_"1/64" s32 g64 s32 g64 s32 g64] s32 }
+@end mudela
+
+@item beat
+I: tempi, F: temps, D: Taktschlag, Zeit (im Takt), NL: tel, DK: (takt)slag, S:
+taktslag, N:
+
+Note value used for counting, most often half-, fourth- and eighth notes. The
+base counting value and the number of them per measure is indicated at the
+start of the music.
+
+@
+
+@mudela[13pt,eps]
+\key g;
+\time 4/4;
+\notes\relative c'' { g4 c b a | g1 \bar "||";}
+\time 3/8;
+\notes\relative c'' { g8 d' c | b c a | g4. \bar "||";}
+@end mudela
+
+@item bind
+@w{@ar{}@strong{tie}}
+
+@item brace
+I: graffa, F: accolade, D: Klammer, Klavierklammer, Akkolade, Chorklammer, NL:
+accolade, teksthaak, DK: klamme, S: klammer, N:
+
+Symbol at the start of a system connecting staffs. Curly braces are used
+for connecting piano staves, angular brackets for connecting parts in an
+orchestral or choral score.
+
+@
+
+@mudela[13pt,eps] 
+\context GrandStaff < 
+  \property GrandStaff.minVerticalAlign = 12
+  \notes\relative c'' { \clef treble; g4 e c2 }
+  \notes\relative c { \clef bass; c1 \bar "|."; } > 
+@end mudela
+
+@
+
+@mudela[13pt,eps] 
+\context StaffGroup < 
+  \property StaffGroup.minVerticalAlign = 12
+  \notes\relative c'' { \clef treble; g4 e c2 }
+  \notes\relative c { \clef bass; c1 \bar "|."; } > 
+@end mudela
+
+@item brass
+I: ottoni, D: Blechbl@"aser, NL: koper (blazers), F: instruments de cuivre,
+DK: messingbl@ae{}sere, S: brassinstrument, m@"assingsinstrument, N:
+
+A family of blown musical instruments made of brass all using a cup formed
+mouth piece. The brass instruments commonly used in a symphony orchestra are
+trumpet, trombone, french horn and tube.
+
+@item breath mark
+I: respiro, F: respiration, D: Atemzeichen, Trennungszeichen, NL:
+repercussieteken, DK:
+vejrtr@ae{}kningstegn, S: andningstecken, N: .
+
+@item breve
+I: breve, F: , D: Brevis, NL: brevis, DK: brevis, S: brevis, N:
+
+@w{@ar{}@strong{Note value}} twice as long as a whole note. Mainly used
+in pre-1650 music.
+
+@
+
+@mudela[13pt,eps] 
+\property Score.barNonAuto = "1" 
+\notes\relative c'' { g\breve } 
+@end mudela
+
+@item C
+I: do, F: ut,  D: C, c, NL: c, DK: c, S: c, N: c
+
+@item C clef
+I: chiave di do, F: cl@'e d'ut, D: C-Schl@"ussel, NL: C-sleutel, DK:
+c-n@o{}gle, S: c-klav, N:
+
+Clef symbol indicating the position of the central C. Used on all note
+lines.
+
+@
+
+@mudela[13pt,eps] 
+\property Score.barNonAuto = "1" 
+\property Lyrics.textStyle = "large"
+\property Voice.clefStyle = "fullSizeChanges"
+\addlyrics
+\notes\relative c' { 
+  \clef "C1"; c1 s s
+  \clef "C2"; c s s
+  \clef "C3"; c s s
+  \clef "C4"; c s s
+  \clef "C5"; c s
+}
+\context Lyrics \lyrics { Soprano Mezzosoprano Alto Tenor Baritone }
+@end mudela
+
+@item cadence 
+I: cadenza, F: cadence, D: Kadenz, NL: cadens, DK: kadence, S: kadens, N: .
+
+@w{@ar{}@strong{harmonic cadence}} @w{@ar{}@strong{functional harmony}}
+
+@item cadenza
+I: cadenza, F: fioriture,  D: Kadenz, NL: cadens, DK: kadence, S: kadens, N: .
+
+An extended, improvisatory style section inserted near the end of
+movement. The purpose of a c. is to give the singer or player a chance to
+exhibit her technichal skill and not the least her ability to improvise. Since
+the middle of the 19'th century, however, most cadences have been written down
+by the composer.
+
+@item canon
+I: canone, F: , D: Kanon, NL: canon, DK: kanon, S: kanon, N: .
+
+@w{@ar{}@strong{counterpoint}}
+
+@item cent
+I: cent, F: , D: Cent, NL: cent, DK: cent, S: cent, N: .
+
+Logarithmic unit of measurement. 1 cent is 1/1200 of an octave (1/100 of an
+equally tempered @w{@ar{}@strong{semitone}}) @w{@ar{}@strong{equal temperament}}
+
+@item central C
+@w{@ar{}@strong{middle C}}
+
+@item chord
+I: accordo, F: accord, D: Akkord, NL: akkoord, DK: akkord, S: ackord, N: .
+
+Three or more tones sounding simultaneously. In traditional European music the
+base chord is a @emph{triad} consisting of 2 thirds. @emph{Major} (major +
+minor @w{@ar{}@strong{third}}) as well as @emph{minor} (minor + major third)
+chords may be extended with more thirds. Four- @emph{seventh chords} and five
+tone @emph{ninth} major chords are most often used as dominants
+(@w{@ar{}@strong{functional harmony}}). A special case is chords having no
+third above the lower notes to define their quality as major or minor. Such
+chords are denoted open chords
+
+@
+
+@mudela[13pt,eps] 
+\property Score.barNonAuto = "1"
+\property Voice.textStyle = "large"
+\time 4/4;
+\notes\relative c'' {
+  <g1_"major" b d> 
+  <g_"minor" bes d> 
+  <g_"dimished" bes des>
+  <g_"augmented~" b dis>
+  <g_"seventh-chord~" b d f>
+  <g_"ninth-chord" b d f a>
+}
+@end mudela
+
+@item chromatic scale
+I: scala cromatica, F: gamme chromatique, D: Chromatische Tonleiter, NL:
+chromatische toonladder, DK: kromatisk skala, S: kromatisk skala, N: .
+
+A scale consisting of all 11 @w{@ar{}@strong{semitone}}s.
+
+@
+
+@mudela[13pt,eps] 
+\property Score.barNonAuto = "1" 
+\notes\relative c' { c1 cis e f fis g gis a ais b c }
+@end mudela
+
+@item chromaticism
+I: cromatismo, F: , D: Chromatik, NL: chromatiek, DK: kromatik, S: kromatik,
+N:
+
+Use of tones extraneous to a @w{@ar{}@strong{diatonic scale}} (minor, major).
+
+@item church mode; ecclesiastical mode 
+I: modi ecclesiastici, F: mode eccl@'esiastique, D: Kirchentonart, NL:
+kerktoonladder, DK: kirketoneart, S: kyrkotonart, N:
+
+@w{@ar{}@strong{diatonic scale}}
+
+@item clef
+I: chiave, F: cl@'e, D: Schl@"ussel, Schl@"ussel, Notenschl@"ussel, NL:
+sleutel, DK: n@o{}gle, S: klav, N:
+
+@w{@ar{}@strong{c clef}} @w{@ar{}@strong{f clef}} @w{@ar{}@strong{g clef}}
+
+@item comma
+I: comma, F: comma,  D: Komma, NL: komma, DK: komma, S: komma, N:
+
+Difference in pitch between a note derived from pure tuning and the same note
+derived from some other tuning method. @w{@ar{}@strong{temperament}}
+
+@item common meter
+@w{@ar{}@strong{meter}}
+
+@item compound interval
+I: intervallo composto, F: intervalle compos@'e, D: Weites Intervall(?), NL:
+samengesteld interval, DK: sammensat interval, S: sammansatt intervall, N: .
+
+Intervals larger than an octave
+
+@w{@ar{}@strong{interval}}
+
+@item complement
+I: rivolto, F: , D: Komplement@"arintervall, NL: complementair interval, DK:
+komplement@ae{}rinterval, S: komplement@"arintervall (?), N:
+
+@w{@ar{}@strong{inverted interval}}
+
+@item conjunct movement
+I: moto congiunto, F: mouvement conjoint, D: enge Lage(?), NL: , DK: trinvis
+bev@ae{}gelse, S: stegvis r@"orelse, N:
+
+Melody moving in the narrow steps of the scale;
+
+@
+
+@mudela[13pt,eps] 
+\key g; \time 4/4;
+\notes\relative c'' { g4 g g a | b2 a | g4 b a a | g1 \bar "||"; }
+@end mudela
+
+@item consonance 
+I: consonanza, F :consonance, D: Konsonanz, NL: consonant, DK: konsonans, S:
+konsonans, N:
+
+@w{@ar{}@strong{harmony}}
+
+@item contralto
+I: contralto, F: contralto, D: Alt, NL: contralto, DK: alt, S: alt, N:
+
+@w{@ar{}@strong{alto}}
+
+@item counterpoint 
+I: contrappunto, F: contrepoint, D: Kontrapunkt, NL: contrapunt, DK:
+kontrapunkt, S: kontrapunkt, N: .
+
+From latin @emph{punctus contra punctum}, note against note. The combination
+into a single musical fabric of lines or parts which have distinct melodic
+significance. A frequently used polyphonic technique is imitation, in its
+strictest form found in the canon needing only one part to be written down
+while the other parts are performed with a given displacement. Imitation is
+also the contrapuntal technique used in the @emph{fugue} which, since the
+music of the baroque era, has been one of the most popular polyphonic
+composition methods.
+
+@
+
+@mudela[13pt,eps]
+\property Score.timeSignatureStyle = "C2/2"
+\context GrandStaff <
+  \notes\relative c' { 
+    \key bes;
+    \time 4/4;
+    \clef treble; 
+    < \context Voice = rha {
+        \stemup
+        r1 | r2 r8 g'8 bes d, | 
+        cis4 d r8 e!16 f g8 f16 e |
+        f8 g16 a bes8 a16 g a8 
+      }
+      \context Voice = rhb { 
+        \stemdown
+        r1 | r | r | r2 s8
+      }
+    >
+  }
+  \notes\relative c' {
+    \clef bass; 
+    \key bes;
+    < \context Voice = lha {
+        \stemup
+        r8 d es g, fis4 g | r8 a16 bes c8 bes16 a bes4 g |
+        r8 a16 g f8 g16 a bes8 g e! cis' |
+        d4. e!8 f 
+      }
+      \context Voice = lhb { 
+        \stemdown 
+        r1 | r | r | r2 s8
+      } >
+  }
+>
+@end mudela
+
+@item counter tenor
+I: controtenore, F: , D: Kontratenor, NL: contratenor, DK: kontratenor, S:
+kontratenor, counter tenor, N: kontratenor
+
+@w{@ar{}@strong{contralto}}
+
+@item Copying, Music
+A music copyist did fast freehand scores and parts on preprinted staff lines
+for performance. Some of their conventions (e.g.: the placement of noteheads
+on stems) varied slightly from those of engravers. Some of their working
+methods were superior and could well be adopted by music typesetters. This
+required more skill than engraving.
+
+@item crescendo
+I: crescendo, F: crescendo, D: Crescendo, Lauter, NL: crescendo, DK:
+crescendo, S: crescendo, N:@w{ }crescendo.
+
+Increasing volume. Indicated by a rightwards opening horizontal wedge or the
+abbreviation "cresc".
+
+@
+
+@mudela[13pt,eps] 
+\key g; \time 4/4;
+\notes\relative c'' { g4 \< a b c | \! d1 \bar "|."; }
+@end mudela
+
+@item cue-notes
+I: notine, F: , D: Stichnoten, NL: stichnoten, DK: stiknoder, S:
+inprickningar, N:
+
+In a separate part notes belonging to another part with the purpose of hinting
+when to start playing.  Usually printed in a smaller type.
+
+@item D
+I: re, F: r@'e, D: D, d, NL: d, DK: d, S: d, N: d
+
+@item da capo
+I: da capo, F: , D: da capo, von Anfang, NL: da capo, DK: da capo, S: da capo,
+N: .
+
+The term indicates repetition of the piece from the beginning to the end or to
+a certain place marked @emph{fine}. Mostly abbreviated D.C.
+
+@item dal segno
+I: dal segno, F: , D: dal segno, NL: dal segno, DK: dal segno, S: dal
+segno, N: .
+
+abbreviated d.s. Repetition, not from the beginning, but from another place
+frequently near the beginning marked by a sign:
+
+@
+
+@mudela[13pt,eps] 
+\property Voice.textStyle = "large"
+\key g; \time 4/4;
+\notes\relative c'' { d1 | g,4^\segno  a b c | b a g2_"d.s." \bar "|."; }
+@end mudela
+
+@item decrescendo
+I: decrescendo, D: Decrescendo, Leiser, NL: decrescendo, DK: decrescendo, S:
+decrescendo, N: decrescendo
+
+Decreasing tone volume. Indicated by a leftwards opening horizontal wedge  
+or the abbreviation "decresc".
+
+@
+
+@mudela[13pt,eps] 
+\key g; \time 4/4;
+\notes\relative c'' { d4 \> c b a | \! g1 \bar "|."; }
+@end mudela
+
+@item descending interval
+I: intervallo discendente, F: intervalle descendant, D: fallendes Intervall,
+absteigendes Intervall, NL: dalend interval, DK:@w{ }faldende interval, S:
+fallande intervall, N:
+
+@item diatonic scale
+I: scala diatonica, F: , D: diatonische Tonleiter, NL: diatonische toonladder,
+DK: diatonisk skala, S: diatonisk skala, N:
+
+A scale consisting of 5 @w{@ar{}@strong{whole tones}} and 2
+@w{@ar{}@strong{semitones}} (S). Scales played on the white keys of a piano
+keybord are diatonic.
+
+The church modes are used in gregorial chant and pre baroque early music but
+also to some extent in newer jazz music.
+@
+
+@mudela[13pt,eps] 
+\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = "1" 
+\property Lyrics.textStyle = "large"
+\property Voice.textStyle = "large"
+\addlyrics
+\notes\relative c' { 
+  c1 d
+  \property Voice.textScriptPadding = "-10"
+  e^"~~ S" f g a 
+  \property Voice.textScriptPadding = "-4"
+  b^"~~ S" c }
+  \context Lyrics \lyrics { Ionian }
+@end mudela
+
+@mudela[13pt,eps] 
+\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = "1" 
+\property Lyrics.textStyle = "large"
+\property Voice.textStyle = "large"
+\addlyrics
+\notes\relative c' { 
+  d1
+ \property Voice.textScriptPadding = "-10"
+  e^"~~ S"
+  f g a 
+  \property Voice.textScriptPadding = "-4"
+  b^"~~ S" c d }
+  \context Lyrics \lyrics { Dorian }
+@end mudela
+
+@mudela[13pt,eps] 
+\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = "1" 
+\property Lyrics.textStyle = "large"
+\property Voice.textStyle = "large"
+\addlyrics
+\notes\relative c' { 
+  \property Voice.textScriptPadding = "-10"
+  e1^"~~ S"
+  f g a 
+  \property Voice.textScriptPadding = "-4"
+  b^"~~ S" c d e }
+  \context Lyrics \lyrics { Phrygian }
+@end mudela
+
+@mudela[13pt,eps] 
+\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = "1" 
+\property Lyrics.textStyle = "large"
+\property Voice.textStyle = "large"
+\addlyrics
+\notes\relative c' { 
+  f1 g a 
+  \property Voice.textScriptPadding = "-4"
+  b^"~~ S" c d 
+  \property Voice.textScriptPadding = "0"
+  e^"~~ S" f }
+  \context Lyrics \lyrics { Lydian }
+@end mudela
+
+@mudela[13pt,eps] 
+\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = "1" 
+\property Lyrics.textStyle = "large"
+\property Voice.textStyle = "large"
+\addlyrics
+\notes\relative c'' { 
+  g1 a 
+  \property Voice.textScriptPadding = "-4"
+  b^"~~ S" c d 
+  \property Voice.textScriptPadding = "0"
+  e^"~~ S" f g }
+  \context Lyrics \lyrics { Mixolydian }
+@end mudela
+
+@mudela[13pt,eps] 
+\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = "1" 
+\property Lyrics.textStyle = "large"
+\property Voice.textStyle = "large"
+\addlyrics
+\notes\relative c'' { 
+  a1
+  \property Voice.textScriptPadding = "-4"
+  b^"~~ S" c d 
+  \property Voice.textScriptPadding = "0"
+  e^"~~ S" f g a }
+  \context Lyrics \lyrics { Aeolian }
+@end mudela
+
+From the beginning of the 17th century the scales used in European
+compositional music are primarily the major and the minor scales. In the
+harmonic minor scale type an augmented second (A) occurs between the 6th and
+7th tone.
+
+@mudela[13pt,eps] 
+\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = "1" 
+\property Lyrics.textStyle = "large"
+\property Voice.textStyle = "large"
+\addlyrics
+\notes\relative c' { 
+  c1 d
+  \property Voice.textScriptPadding = "-10"
+  e^"~~ S" f g a 
+  \property Voice.textScriptPadding = "-4"
+  b^"~~ S" c }
+  \context Lyrics \lyrics { Major }
+@end mudela
+
+@mudela[13pt,eps] 
+\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = "1" 
+\property Lyrics.textStyle = "large"
+\property Voice.textStyle = "large"
+\addlyrics
+\notes\relative c'' { 
+  a1
+  \property Voice.textScriptPadding = "-4"
+  b^"~~ S" c d 
+  \property Voice.textScriptPadding = "0"
+  e^"~~ S" f g a }
+  \context Lyrics \lyrics { "ancient minor" }
+@end mudela
+
+@mudela[13pt,eps] 
+\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = "1" 
+\property Lyrics.textStyle = "large"
+\property Voice.textStyle = "large"
+\addlyrics
+\notes\relative c'' { 
+  a1
+  \property Voice.textScriptPadding = "-4"
+  b^"~~ S" c d 
+  \property Voice.textScriptPadding = "0"
+  e^"~~ S" 
+  \property Voice.textScriptPadding = "1"
+  f!^"~~ A" 
+  gis^"~~ S" 
+  a }
+  \context Lyrics \lyrics { "Harmonic minor" }
+@end mudela
+
+@mudela[13pt,eps] 
+\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = "1" 
+\property Lyrics.textStyle = "large"
+\property Voice.textStyle = "large"
+\addlyrics
+\notes\relative c'' { 
+  a1
+  \property Voice.textScriptPadding = "-4"
+  b^"~~ S" c d e fis 
+  \property Voice.textScriptPadding = "0"
+  gis^"~~ S" a g! 
+  \property Voice.textScriptPadding = "-1"
+  f!^"~~ S" e d 
+  \property Voice.textScriptPadding = "-4"
+  c^"~~ S" b a
+}
+  \context Lyrics \lyrics { "Melodic minor" }
+@end mudela
+
+@item diminished interval
+I: intervallo diminuito, F: intervalle diminu@'e, D: vermindertes Intervall,
+NL: verminderd interval, DK: formindsket interval, S: f@"orminskat
+intervall, N: .
+
+@w{@ar{}@strong{interval}}
+
+@item diminuendo
+I: diminuendo, F: , D: Diminuendo, NL: diminuendo, DK: diminuendo, 
+S:@w{ }diminuendo, N:@w{ }diminuendo.
+
+@w{@ar{}@strong{decrescendo}}
+
+@item disjunct movement
+I: moto disgiunto, F: mouvement disjoint, D: , NL: , DK: springende
+bev@ae{}gelse, S: hoppande r@"orelse, N:
+
+Melody moving in steps greater than those of the
+scale. Opposite of @ar{}@strong{conjunct movement}.
+
+@
+
+@mudela[13pt,eps]
+\key a;
+\time 4/4;
+\notes\relative c' { 
+  \partial 8; e8 | a4. gis8 b a e cis |
+  fis2 d4. \bar "||"; }
+@end mudela
+
+@item dissonant interval; dissonance
+I: intervallo dissonante, dissonanza, F: dissonance, D: Dissonanz, NL:
+dissonant interval; dissonant, DK: dissonerende interval, dissonans, S:
+dissonans, N: .
+
+@w{@ar{}@strong{harmony}}
+
+@item dominant ninth chord
+I: accordo di nona di dominante, F: accord de neuvi@`eme dominante, D:
+Dominantnoneakkord, NL: dominant noon akkoord, DK:
+dominantnoneakkord, S: dominantnonackord, N: .
+
+@w{@ar{}@strong{chord}} @w{@ar{}@strong{functional harmony}}
+
+@item dominant seventh chord
+I: accordo di settima di dominante, F: accord de septi@`eme dominante, D:
+Dominantseptakkord, NL: dominant septiem akkoord, DK: dominantseptimakkord, S:
+dominantseptimackord, N:
+
+@w{@w{@ar{}@strong{chord}} @ar{}@strong{functional harmony}}
+
+@item dominant
+I: dominante, F: dominante, D: Dominante, NL: dominant, DK: dominant, S:
+dominant, N: .
+
+The fifth @w{@ar{}@strong{scale degree}} @w{@ar{}@strong{functional harmony}}
+
+@item dorian mode
+I: modo dorico, F: , D: Dorischer Kirchenton, NL: dorische toonladder,
+dorischer Kirchenton, DK: dorisk skala, S: dorisk skala, N:
+
+@w{@ar{}@strong{diatonic scale}}
+
+@item dot (augmentation dot)
+I: punto (di valore), F: point, D: Punkt (Verl@"angerungspunkt), NL: punt, DK:
+punkt, S: punkt, N:
+
+@w{@ar{}@strong{dotted note}}
+
+@item dotted note
+I: nota puntata, F: note point@'ee, D: punktierte Note, NL: gepuncteerde noot,
+DK: punkteret node, S: punkterad not, N:
+
+@w{@ar{}@strong{note value}}
+
+@item double appoggiatura
+I: appoggiatura doppia, F: appoggiature double, D: doppelter Vorschlag, NL:
+dubbele voorslag, DK: dobbelt forslag, S: dubbelslag, N:
+
+@w{@ar{}@strong{appoggiatura}}
+
+@item double bar line
+I: doppia barra, F: double barre, D: Doppelstrich, NL: dubbele maatstreep, DK:
+dobbeltstreg, S: dubbelstreck, N: .
+
+Indicates the end of a section within a movement.
+
+@item double dotted note
+I: nota doppiamente puntata, F: note doublement point@'ee, D:
+doppel-punktierte Note, NL: dubbelgepuncteerde noot, DK:
+dob@-belt@-punk@-te@-ret node, S: dub@-bel@-punk@-te@-rad not, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item double flat
+
+I: doppio bemolle, F: double b@'emol, D: Doppel-B, NL: dubbelmol, 
+DK:@w{ }dob@-belt-b, S: dubbelbe, N: .
+
+@w{@ar{}@strong{accidental}}
+
+@item double sharp
+I: doppio diesis, F: double di@`ese,  D: Doppelkreuz, NL: dubbelkruis, 
+DK:@w{ }dob@-belt@-kryds, S: dubbelkors, N: .
+
+@w{@ar{}@strong{accidental}}
+
+@item double trill
+I: doppio trillo, F: trille double, D: Doppeltriller, NL: dubbele triller, DK:
+dobbelttrille, S: dubbeldrill, N: .
+
+A simultaneous trill on two notes, usually in the distance of a third.
+
+@item duple meter
+I: tempo binario, F: temps binaire, D: zweiteiliger Takt, NL: tweedelige
+maatsoort, DK: todelt takt, S: tv@aa{}takt, N: .
+
+@w{@ar{}@strong{meter}}
+
+@item duplet
+I: duina, F: duolet, D: Duole, NL: duool, DK: duol, S: duol, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item duration
+I: durata, F: dur@'ee, D: Dauer, L@"ange, NL: duur, lengte, DK: varighed, S:
+tonl@"angd, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item dydimic comma
+@w{@ar{}@strong{syntonic comma}}
+
+@item E
+I: mi, F: mi, D: E, e, NL: e, DK: e, S: e, N: e.
+
+@item eighth note
+I: croma, F: croche, UK: quaver, D: Achtel, Achtelnote, NL: achtste noot, DK:
+ottendedelsnode, S: @aa{}ttondelsnot, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item eighth rest
+I: pausa di croma, F: demi-soupir, UK: quaver rest, D: Achtelpause, NL:
+achtste rust, DK:@w{ }ottendedelspause, S: @aa{}ttonddelspaus, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item engraving
+I: incisione, F: , D: Notenstechen, NL: steken, DK: nodestik, S: nottryck, N: .
+
+Engraving means incising or etching a metal plate for
+printing. Photoengraving means drawing music with ink in a manner
+similar to drafting or engineering drawing, using similar tools.
+
+The traditional process of music printing is done through cutting in a
+plate of metal. Now also the term for the art of music typesetting.
+
+@item enharmonic
+I: enarmonico, F: enharmonique, D: enharmonisch, NL: enharmonisch, DK:
+enharmonisk, S: enharmonisk, N: .
+
+Two notes, intervals, or scales are enharmonic if they have different names
+but equal pitch.
+
+@
+
+@mudela[13pt,eps]
+\property Score.barNonAuto = "1"
+\property Voice.textStyle = "large"
+\notes\relative c'' {
+  gis1_"g sharp" s as1_"a flat" s s
+  < des_"dim fifth" g,! > s s < cis_"augm fourth" g! > s s
+}
+@end mudela
+
+@item equal temperament 
+I: temperamento equabile, F: , D: gleichschwebende Stimmung, NL:
+ge@-lijk@-zwe@-ven@-de temperatuur, DK: ligesv@ae{}vende temperatur,
+S: liksv@"avande temperatur, N: .
+
+Tuning system dividing the octave into 12 equal @w{@ar{}@strong{semitones}}
+(precisely 100 @w{@ar{}@strong{cents}}). @w{@ar{}@strong{temperament}}
+
+@item expression mark
+I: segno d'espressione, F: signe d'expressoin,  D: Vortragszeichen, NL:
+voordrachtsteken, DK: foredragsbetegnelse, S: f@"oredragsbeteckning, N: .
+
+Performance indications concerning 1. volume, dynamics (for example
+@w{@ar{}@strong{forte}}, @w{@ar{}@strong{crescendo}}), 2. tempo (for example
+@w{@ar{}@strong{andante}}, @w{@ar{}@strong{allegro}})
+@item F
+I: fa, F: fa, D: F, f, NL: f, DK: f, S: f, N: f.
+
+@item F clef
+I: chiave di fa, F: cl@'e de fa, D: F-Schl@"ussel, NL: F-sleutel, DK:
+F-n@o{}gle, S: f-klav, N: .
+
+The position between the dots of the key symbol is the line of the F below
+central C. Used on the third, fourth and fifth note line. A digit 8 above the
+clef symbol indicates that the notes must be played an octave higher (for
+example bass recorder) while 8 below the clef symbol indicates playing an
+octave lower (for example on double bass @w{@ar{}@strong{strings}}).
+
+@
+
+@ignore
+@mud ela[13pt,eps] 
+\property Score.barNonAuto = "1" 
+\property Voice.clefStyle = "fullSizeChanges"
+\property Lyrics.textStyle = "large"
+\addlyrics
+\notes\relative c { 
+  \clef "F3";
+  f1 s
+  \clef "F4";
+  f1 s
+  \clef "F5";
+  f1 s
+  \clef "F^8";
+  f'1 s s
+  \clef "F_8";
+  f,,1 s s
+} 
+\context Lyrics \lyrics { 
+  baritone 
+  bass 
+  "sub-bass" 
+  "octaved up" 
+  "octaved down" 
+}
+@end mudela
+@end ignore
+
+@item fermata
+I: corona, F: pauses, D: Fermate, NL: fermate, DK: fermat, S: fermat, N: .
+
+Prolonged note or rest of indefinite duration.
+
+@
+
+@mudela[13pt,eps]
+\time 4/4;
+\notes\relative c'' {
+a4 b c2^\fermata \bar "|."; }
+@end mudela
+
+@item fifth
+I: quinta, F: quinte, D: Quinte, NL: kwint, I: , DK: kvint, S: kvint, N: kvint.
+
+@w{@ar{}@strong{interval}}
+
+@item figured bass
+@w{@ar{}@strong{thorough bass}}
+
+@item fingering
+I: ditteggiatura, F: doigt@'e, D: Fingersatz, NL: vingerzetting, DK:
+fingers@ae{}tning, S: fingers@"attning, N: .
+
+The methodical use of fingers in the playing of instruments.
+
+@item flag; pennant 
+I: coda (uncinata), bandiera, F: crochet, D: Fahne, F@"ahnchen, NL: vlaggetje,
+DK: fane, S: flagga, N: .
+
+Ornament at the end of the stem of a note used for notes with values less than
+a quarter note. The number of flags determines the @w{@ar{}@strong{note value}}.
+
+@
+
+@mudela[13pt,eps]
+\property Score.barNonAuto = "1"
+\property Voice.textEmptyDimension = "1"
+\property Voice.textStyle = "large"
+\notes\relative c'' { 
+  g8_"1/8" s8 
+  g16_"1/16" s8 
+  g32_"1/32" s8 
+  g64_"1/64" s8 }
+@end mudela
+
+@item flat
+I: bemolle, F: b@'emol, D: B, b, NL: mol, DK: b, S: bef@"ortecken, N: .
+
+@w{@ar{}@strong{accidental}}
+
+@item forefall; backfall  
+@w{@ar{}@strong{appoggiatura}}
+
+@item forte
+I: forte, F: , D: forte, Laut, NL: forte, DK: forte, S: forte, N: .
+
+Loud, abbreviated @b{f}, @emph{fortissimo} (@b{ff}) very loud,
+@emph{mezzoforte} (@b{mf}) medium loud.
+
+@item fourth
+I: quarta, F: quarte, D: Quarte, NL: kwart, DK: kvart, S: kvart, N: .
+
+@w{@ar{}@strong{interval}}
+
+@item fugue 
+I: fuga, F: , D: Fuge, NL: fuga, DK: fuga, S: fuga, N: .
+
+@w{@ar{}@strong{counterpoint}}
+
+@item functiontional harmony
+I: armonia funzionale, F: , D: Funktionslehre, NL: , DK: funktionsanalyse,
+funktionsharmonik, S: funktionsl@"ara, N:
+
+A system of harmonic analysis. It is based on the idea that, in a given key,
+there are only three functionally different chords: tonic (T, the chord on the
+first note of the scale), subdominant (S, the chord on the fourth note) and
+dominant (D, the chord on the fifth note). Other are considered to be variants
+of the base chords.
+
+@
+
+@mudela[13pt,eps] 
+\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = "1" 
+\property Lyrics.textStyle = "large"
+\property Voice.textStyle = "large"
+\addlyrics
+\notes\relative c'' {
+  < g1 e c > < a f d > < b g e > 
+  < c a f > < d b g > < e c a > < f d b > }
+\context Lyrics \lyrics { T Sp Dp S D Tp "D{\\kern-5pt}$\\mid$" } 
+@end mudela
+
+@item G
+I: sol, F: sol, D: G, g, NL: g, DK: g, S: g, N: g.
+
+@item G clef
+I: chiave di sol, F: , D: G-Schl@"ussel, Violinschl@"ussel, NL: G-sleutel, DK:
+g-n@o{}gle, S: g-klav, N: .
+
+A clef symbol indicating the G above central C. Used on the first and second
+note lines. A digit 8 above the clef symbol indicates that the notes must be
+played an octave higher while 8 below the clef symbol indicates playing or
+singing an octave lower (most tenor parts in choral scores are notated like
+that). 
+
+@
+
+@mudela[13pt,eps] 
+\property Score.barNonAuto = "1" 
+\property Lyrics.textStyle = "large"
+\property Voice.clefStyle = "fullSizeChanges"
+\addlyrics
+\notes\relative c'' { 
+  \clef "G1"; g1 s s s s
+  \clef "G2"; g s s s 
+  \clef "G^8"; g' s s s 
+  \clef "G_8"; g,, s s
+}
+\context Lyrics \lyrics { 
+  "french violin clef" 
+  "violin clef" 
+  "octaved up"
+  "octaved down"
+}
+@end mudela
+
+@item glissando
+I: glissando, F: glissement, D: Glissando, NL: glissando, DK: glissando, S:
+glissando, N: glissando.
+
+Letting the pitch  slide fluently from one note to the other
+
+@item grace notes
+I: abbellimenti, F: , D: Verzierungen, Vorschl@"age, Vorschlagsnoten, NL:
+versieringen, DK: forsiringer, S: ornament, N: .
+
+Notes printed in small types to indicate that their time values are not
+counted in the rhythm of the bar. @w{@ar{}@strong{appoggiatura}}
+
+@item grand staff
+I: accolatura, F: , D: Akkolade, NL: piano systeem, DK: klaversystem, S:
+ackolad, b@"ojd klammer, N: .
+
+@w{@ar{}@strong{brace}}
+
+A combination of two staffs with a brace.  Usually used for piano music.
+
+@item grave
+I: grave, F: , D: grave, langsam, traurig, NL: , DK: grave, S: grave, N: .
+
+@item half note
+I: minima, F: blanche, UK: minim, D: Halbe, halbe Note, NL: halve noot, DK:
+halvnode, S: halvnot, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item half rest
+I: pausa di minima, F: demi-pause, UK: minim rest, D: halbe Pause, NL: halve
+rust, DK: halvnodespause, S: halvnotspaus, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item harmonic cadence
+I: cadenza (armonica), F: cadence harmonique, D: Schlusskadenz, NL:
+harmonische cadens, DK: harmonisk kadence, S: (harmonisk) kadens, N: .
+
+Sequence of chords that terminate a musical phrase or
+section. @ar{}@w{}@strong{functional harmony}
+
+@
+
+@mudela[13pt,eps] 
+\context GrandStaff < 
+  \notes\relative c'' { 
+    \time 4/4;
+    \clef treble; 
+    \partial 4; < c4 g e > | < c a f > < b g d > < c2 g e > }
+  \property Lyrics.textStyle = "large"
+  \addlyrics
+  \notes\relative c { 
+    \clef bass; 
+    \partial 4; c4 | f, g c2
+    \bar "|."; } 
+  \context Lyrics \lyrics { T S D T } > 
+@end mudela
+
+@item harmony
+I: armonia, F: , D: Harmonie, Zusammenklang, NL: harmonie, DK: samklang, S:
+samklang, N:
+
+Tones sounding simultaneously. Two note harmonies fall into the cathegories
+@emph{consonances} and @emph{dissonances}.
+
+Consonances:
+
+@
+
+@mudela[13pt,eps] 
+\property Score.barNonAuto = "1"
+\property Voice.textStyle = "large"
+\notes\relative c'' {
+  <g1_"unisone" g> s
+  <g1_"third" b> s
+  <g1_"fourth" c> s
+  <g1_"fifth" d'> s
+  <g1_"sixth" e'> s
+  <g1_"octave" g'> s
+  <g1_"decime" b'> s s
+}
+@end mudela
+
+Dissonances:
+
+@
+
+@mudela[13pt,eps] 
+\property Score.barNonAuto = "1"
+\property Voice.textStyle = "large"
+\notes\relative c'' {
+  <g1_"second" a> s
+  <g1_"seventh" f'> s 
+  <g1_"ninth" a'> s s
+}
+@end mudela
+
+Three note harmony @w{@ar{}@strong{chord}}
+
+@item homophony
+I: omofonia, F: , D: Homophonie, NL: homofonie, DK: homofoni, S: homofoni, N: .
+
+Music in which one voice leads melodically followed by the other voices more
+or less in the same rhythm. In contrast to @w{@ar{}@strong{polyphony}}.
+
+@item interval
+I: intervallo, F: intervalle, D: Intervall, NL: interval, DK: interval, S:
+intervall, N: .
+
+Difference in pitch between two notes. Intervals may be perfect, minor, major,
+diminished or augmented. The augmented fourth and the diminished fifth are
+identical (@w{@ar{}@strong{enharmonic}}) and is called @emph{tritonus} because
+it consists of three @w{@ar{}@strong{whole tone}}s. The addition of such two
+forms an octave.
+
+@ 
+
+@mudela[13pt,eps] 
+\property Score.barNonAuto = "1"
+\property Lyrics.textStyle = "large"
+\property Voice.textStyle = "large"
+\addlyrics
+\notes\relative c'' {
+  < g1 g > s
+  < g^"minor" as > s
+  < g^"major" a! > s
+  < g^"augm" ais > s
+  < gis^"dimin" bes > s
+  < g!^"minor" bes > s
+  < g^"major" b! > s 
+  < g^"augm" bis > s 
+}
+\context Lyrics \lyrics { 
+  unisone second second second third third third third } 
+@end mudela
+
+@ 
+
+@mudela[13pt,eps] 
+\property Score.barNonAuto = "1"
+\property Lyrics.textStyle = "large"
+\property Voice.textStyle = "large"
+\addlyrics
+\notes\relative c'' {
+  < g1^"perfect" c > s
+  < g^"augm" cis > s
+  < g^"perfect" d' > s
+  < g^"dim" des' > s
+  < gis^"dimin" es' > s
+  < g!^"minor" es' > s
+  < g^"major" e'! > s
+  < g^"augm" eis' > s
+}
+\context Lyrics \lyrics { 
+  fourth fourth fifth fifth sixth sixth sixth sixth } 
+@end mudela
+
+@ 
+
+@mudela[13pt,eps] 
+\property Score.barNonAuto = "1"
+\property Lyrics.textStyle = "large"
+\property Voice.textStyle = "large"
+\addlyrics
+\notes\relative c'' {
+  < gis1^"dimin" f'! > s
+  < g!^"minor" f'! > s
+  < g^"major" fis' > s
+  < g g' > s
+  < g^"minor" as' > s
+  < g^"major" a'! > s
+  < g^"minor" bes' > s
+  < g^"major" b'! > s
+}
+\context Lyrics \lyrics { 
+  seventh seventh seventh octave none none decime decime } 
+@end mudela
+
+@item inverted interval
+I: rivolto, F: renversement d'intervalle, D: umgekerhtes Intervall, NL:
+interval inversie, DK: omvendingsinterval, S: intervallets omv@"andning, N: .
+
+The difference between an interval and an octave.
+
+@
+
+@mudela[13pt,eps] 
+\property Score.barNonAuto = "1"
+\property Voice.textStyle = "large"
+\notes\relative c'' {
+  < g1_"second" a > s < g'_"seventh" a, > s \bar "||"; 
+  < g,_"third" b > s < g'_"sixth" b, > s \bar "||";
+  < g,_"fourth" c > s < g'_"fifth" c, > s \bar "||";
+}
+@end mudela
+
+@item just intonation
+I: intonazione giusta, F: , D: reine Stimmung, NL: reine stemming, DK: ren
+stemning, S: ren st@"amning, N: .
+
+Tuning system in which the notes are obtained by adding and subtracting
+@w{natural} fifths and thirds. @w{@ar{}@strong{temperament}}
+
+@item key
+I: tonalit@`a, F: , D: Tonart, NL: toonsoort, DK: toneart, S: tonart, N: .
+
+According to the 12 tones of the @w{@ar{}@strong{chromatic scale}} there are 12
+keys, one on c, one on c-sharp etc. @w{@ar{}@strong{key signature}}
+
+@item key signature
+I: armatura di chiave, F: armure, armature [de la cl@'e], D: Vorzeichen,
+Tonart, NL: @w{ }toon@-soort (voortekens), DK: faste fortegn, S: largo, N: .
+
+The sharps or flats appearing at the beginning of each staff indicating the
+key of the music. @w{@ar{}@strong{accidental}}
+
+@item largo
+I: largo, F: , D: Largo, Langsam, Breit, NL: largo, DK: largo, S: largo, N:
+largo
+
+Very slow in tempo, usually combined with great
+expressiveness. @emph{Larghetto} less slow than largo.
+
+@item leading note
+I: sensibile, F: sensible, D: Leitton, NL: leidtoon, DK: ledetone, S: ledton,
+N: .
+
+The seventh @w{@ar{}@strong{scale degree}}, a @w{@ar{}@strong{semitone}} below
+the tonic; so called because of its strong tendency to ``lead up'' (resolve
+upwards) to the tonic scale degree.
+
+@item ledger line; leger line
+
+I: tagli addizionali, F: ligne suppl@'ementaire, D: Hilfslinie, NL:
+hulplijntje, DK: hj@ae{}lpelinie, S: hj@"alpstreck, N: .
+
+A ledger line is an extension of the staff.
+
+@
+
+@mudela[13pt,eps] 
+\property Score.barNonAuto = "1" 
+\notes\relative c'' { a,1 s c'' } 
+@end mudela
+
+@item legato
+I: legato, F: , D: legato, NL: legato, DK: legato, S: legato, N: .
+
+To be performed without any perceptible interruption between the notes (a)
+unlike @emph{leggiero} or @emph{non-legato} (b), @emph{portato} (c) and
+@w{@ar{}@strong{staccato}} (d)
+
+@
+
+@mudela[13pt,eps]
+\property Score.barNonAuto = "1"
+\property Voice.textEmptyDimension = "1"
+\property Lyrics.textStyle = "large"
+\addlyrics
+\notes\relative c'' { 
+  c4( d )e \bar "||"; 
+  c4-- d-- e-- \bar "||"; 
+  c4-.( d-. )e-. \bar "||"; 
+  c4-. d-. e-. \bar "||"; 
+}
+\context Lyrics \lyrics { a "" "" b "" "" c "" "" d  }
+@end mudela
+
+@item legato curve
+@w{@ar{}@strong{slur}} @w{@ar{}@strong{legato}}
+
+@item lilypond
+I: stagno del giglio, F: @'etang de lis, UK: lily pond, D: Seerosenteich, NL:
+le@-lie@-vij@-ver, DK: liliedam, S: liljedamm, N: .
+
+A pond with  lilies floating in it, also the name of a music typesetter.
+
+@item line
+I: linea, F: ligne, D: Linie, Notenlinie, NL: lijn, DK: nodelinie, S:
+notlinje, N: .
+
+@w{@ar{}@strong{staff}}
+
+@item long appoggiatura 
+I: appoggiatura lunga, F: appoggiature longue, D: langer Vorschlag, DK: langt
+forslag, S: l@aa{}ngt f@"orslag, N: .
+
+@w{@ar{}@strong{appoggiatura}}
+
+@item longa
+I: longa, F: , D: Longa, NL: longa, DK: longa, S: longa, N: longa
+
+note value: double length of @w{@ar{}@strong{brevis}}. @w{@ar{}@strong{note value}}
+
+@
+
+@mudela[13pt,eps] 
+\property Score.barNonAuto = "1" 
+\notes\relative c'' { g\longa } 
+@end mudela
+
+@item major interval
+I: intervallo maggiore, F: intervalle majeur, D: gro@ss{}es Intervall, NL:
+groot interval, DK: stort interval, S: stort intervall, N: .
+
+@w{@ar{}@strong{interval}}
+
+@item major
+I: maggiore, F: mode majeur, D: Dur, NL: majeur, DK: dur, S: dur, N: dur.
+
+@w{@ar{}@strong{diatonic scale}}
+
+@item meantone temperament
+I: accordatura mesotonica, F: temp@'erament m@'esotonique, D:
+Mittelt@"onige Stimmung, DK: middeltonetemperatur, S: medeltonstemperatur, N: .
+
+Temperament yielding acoustically pure thirds by decreasing the natural fifth
+by 16 @w{@ar{}@strong{cent}}s. Due to the non-circular character of this
+@w{@ar{}@strong{temperament}} only a limited set of keys are playable. Used for
+tuning keyboard instruments for performance of pre-1650 music.
+
+@item measure, bar
+I: misura, battuta, F: mesure, D: Takt, NL: maat, DK: takt, S: takt, N: takt.
+
+A group of @w{@ar{}@strong{beat}}s (units of musical time) the first of which
+bears an accent. Such groups in numbers of two or more recur consistently
+throughout the composition and are marked from each other by
+bar-lines. @w{@ar{}@strong{meter}}
+
+@item mediant
+I: mediante, F: m@'ediante, NL: mediant, D: Mediant, DK: mediant, S: mediant,
+N: .
+
+1. The third @b{scale degree}. 2. A @w{@ar{}@strong{chord}} having its base tone
+a third from that of another chord. For example the tonic chord may be
+replaced by its lower mediant (variant tonic). @w{@ar{}@strong{functional
+harmony}} @w{@ar{}@strong{relative key}}.
+
+@item melodic cadence
+
+@w{@ar{}@strong{cadenza}}
+
+@item meter, time
+I: tempo, metro, F: m@`etre, D: Taktart, Metrum, NL: maatsoort, DK: taktart,
+S: taktart, N: .
+
+The basic scheme of @ar{}@w{}@strong{note value}s and @ar{}@w{}@strong{accent}s
+which remains unaltered throughout a composition or a section of it. For
+instance 3/4 meter means that the basic @ar{}@w{}@strong{note value}s are
+quarter-notes and that a @w{@ar{}@strong{measure}} consists of three of
+those. According to whether there are two, three or four units to the measure,
+one speaks of @emph{duple} (2/2, 2/4, 2/8), @emph{triple} (3/2, 3/4, 3/8) or
+@emph{quadruple} (4/2, 4/4, 4/8) meter. 4/4 is also called common meter.
+
+@
+
+@mudela[13pt,eps]
+\notes\relative c'' { 
+  \time 3/4;
+  \key f;
+  c es d | c bes8 a bes4 | c es d | c2 \bar "||";}
+@end mudela
+
+@mudela[13pt,eps]
+\notes\relative c' { 
+  \time 6/8;
+  \key f;
+  f8 f f f a16 g a f | 
+  c'8 c c c e16 d e c \bar "||";}
+@end mudela
+
+@mudela[13pt,eps]
+\notes\relative c'' { 
+  \time 5/4;
+  \key g;
+  d4 b8 g b d d c a4 | 
+  g8 g16 g g8 g16 g g8 fis16 g a8 fis16 e d4 \bar "||";}
+@end mudela
+
+@item metronome
+I: metronomo, F: m@'etronome, D: Metronom, NL: metronoom, 
+DK:@w{ }me@-tro@-nom, S:@w{ }me@-tro@-nom, N: metronom.
+
+Device indicating the exact tempo of a piece. @w{@ar{}@strong{metronomic
+indication}}
+
+@item metronomic indication
+I: indicazione metronomica, F: indication m@'etronomique, D: Metronomangabe,
+NL: metronoom aanduiding, DK: metronomtal, S: metronomangivelse, N: .
+
+Exact tempo indication (in beats per minute).  Also denoted by
+M.M. (M@"alzel's Metronom) 
+
+@item mezzo-soprano
+I: mezzo-soprano, F: mezzo-soprano, D: Mezzosopran, NL: mezzosopraan, DK:
+mezzosopran, S: mezzosopran, N: mezzosopran.
+
+The female voice between @w{@ar{}@strong{soprano}} and
+@w{@ar{}@strong{contralto}}.
+
+@item middle C
+I: do centrale, F: do central, D: eingestrichenes c, NL: centrale c, DK:
+enstreget c, S: ettstruket c, N:
+
+First C below the 440 Hz A.
+
+@
+
+@mudela[13pt,eps] 
+\property Score.barNonAuto = "1" 
+\property Voice.clefStyle = "fullSizeChanges"
+\notes\relative c' { 
+  \clef "F"; c1 s
+  \clef "C3"; c s
+  \clef "G2"; c s
+} 
+@end mudela
+
+@item minor interval
+I: intervallo minore, F: intervalle mineur, D: kleines Intervall, NL: klein
+interval, DK: lille interval, S: litet intervall, N: .
+
+@w{@ar{}@strong{interval}}
+
+@item minor
+I: minore, F: mode mineur, D: Moll, NL: mineur, DK: mol, S: moll, N: .
+
+@w{@ar{}@strong{diatonic scale}}
+
+@item mode
+I: modo, F: mode, D: Modus, NL: modus, DK: skala, S: modus, skala, N: .
+
+@w{@ar{}@strong{church mode}} @w{@ar{}@strong{diatonic scale}}
+
+@item modulation
+I: modulazione, F: modulation, D: Modulation, NL: modulatie, DK: modulation,
+S: modulering, N: .
+
+Moving from one @w{@ar{}@strong{key}} to another. For example the second
+subject of a @w{@ar{}@strong{sonata form}} movement modulates to the dominant
+key if the key is major and to the @w{@ar{}@strong{relative key}} if the key
+is minor.
+
+@item mordent
+I: mordente, F: mordant, pinc@`e, D: Mordent, NL: mordent, DK: mordent, S:
+mordent, N: .
+
+@w{@ar{}@strong{ornament}}
+
+@item motive; motif
+I: inciso, F: incise, D: Motiv, NL: motief, DK: motiv, S: motiv, N: .
+
+The briefest intelligible and self-contained fragment of a musical theme or
+subject. 
+
+@
+
+@mudela[13pt,eps] 
+\property Score.timeSignatureStyle = "C2/2"
+\property Voice.textEmptyDimension = "1"
+\property Voice.textStyle = "large"
+\notes\relative c'' { 
+  \time 4/4;
+  \key g; 
+  \partial 8; g16_"------" fis |
+  g8 d16_"------" c d8 g16 fis g8 b,16 a b8 g'16 fis |
+  g8 g,16 a b8 cis d16 s 
+} 
+@end mudela
+
+@item movement
+I: movimento, F: , D: Satz, NL: deel, DK: sats, S: sats, N: .
+
+Greater musical works like @w{@ar{}@strong{symphony}} and
+@w{@ar{}@strong{sonata}} most often consist of several - more or less -
+independant pieces called movements.
+
+@item multibar rest
+I: pausa multipla, F: b@^aton de pause, NL: meermaats rust, D:
+mehrtaktige Pause, DK: flertaktspause, S: flertaktspaus, N: .
+
+@
+
+@mudela[13pt,eps]
+\notes\relative c'' {
+a1
+\property Score.skipBars=1 R1*3 
+a1 }
+@end mudela
+
+@item mixolydian mode
+@w{@ar{}@strong{diatonic scale}}
+
+@item natural sign
+I: bequadro, F: b@'ecarre, D: Aufl@"osungszeichen, NL: herstellingsteken, 
+DK:@w{ }op@-l@o{}sningstegn, S: @aa{}terst@"allningstecken, N: .
+
+@w{@ar{}@strong{accidental}}
+
+@item neighbour tones
+@w{@ar{}@strong{appoggiatura}}
+
+@item ninth
+I: nona, F: , D: None, NL: noon, DK: none, S: nona, N: .
+
+@w{@ar{}@strong{interval}}
+
+@item non-legato
+@w{@ar{}@strong{legato}}
+
+@item note
+I: nota, F: note, D: Note, NL: noot, DK: node, S: not, N: ,
+
+@item note head
+I: testa, F: , D: Notenkopf, NL: nootballetje, DK: nodehovede, S: nothuvud, N:
+.
+
+A head like sign which indicates pitch by its position on a
+@w{@ar{}@strong{staff}} provided with a @w{@ar{}@strong{clef}}, and duration
+by a variety of shapes such as hollow or black heads with or without
+@w{@ar{}@strong{stem}}s, @w{@ar{}@strong{flag}}s etc. For percussion
+instruments (often having no defined pitch) the note head may indicate the
+instrument.
+
+@item note value
+I: valore, durata, F: , D: Notenwert, NL: nootwaarde, DK nodev@ae{}rdi, S:
+notv@"arde, N: .
+
+Note values (durations) are measured as fractions, normally 1/2, of the next
+higher note value. The longest duration normally used is called @emph{brevis},
+but sometimes (mostly in pre baroque music) the double length note value
+@emph{longa} is used.
+
+@
+
+@mudela[13pt,eps]
+\property Voice.textStyle = "large"
+\property Score.barNonAuto = "1"
+\notes\relative c'' { 
+  g\longa_"longa" g\breve_"breve" 
+  g1_"1/1" g2_"1/2" g4_"1/4" s16 g8_"1/8" s16
+  g16_"1/16" s16 g32_"1/32" s16 g64_"1/64" s32 }
+@end mudela
+
+@mudela[13pt,eps]
+\property Voice.textStyle = "large"
+\property Score.barNonAuto = "1"
+\notes\relative c'' { 
+  r\longa_"longa" r\breve_"breve" 
+  r1_"1/1" r2_"1/2" r4_"1/4" s16 r8_"1/8" s16
+  r16_"1/16" s16 r32_"1/32" s16 r64_"1/64" s32 }
+@end mudela
+
+An augmentation dot after a note multiplies the duration by one and a
+half. Another dot adds yet a fourth of the duration.
+
+@
+
+@mudela[13pt,eps]
+\property Voice.textEmptyDimension = "1"
+\property Voice.textStyle = "large"
+\notes\relative c'' { 
+  \time 4/4;
+  g4._"pointed" g8 g2 | g4 () g8 g g2 \bar "||"; 
+  g4.._"double pointed" g16 g2 | g4 () g8 () g16 g g2 \bar "||"; }
+@end mudela
+
+Alternatively note values may be subdivided by other ratios. Most common is
+subdivision by 3 (@emph{triplets}) and 5 (@emph{quintuplets}). Subdivisions by
+2 (@emph{tuplets}) or 4 (@emph{quadruplets}) of dotted notes are also
+frequently used.
+
+@
+
+@mudela[13pt,eps]
+\property Voice.textStyle = "large"
+\property Voice.textEmptyDimension = "1"
+\notes\relative c'' { 
+  \time 4/4;
+  \times 2/3 {g8_"triplets" g g} g4 g8 g g4 \bar "||"; 
+  \times 2/5 {g8_"quintuplets" g g g g} g4 g8 g g4 \bar "||";
+  \time 3/4;
+  \times 3/2 {g4_"duplets" g} |
+  g4 g g \bar "||";
+  \times 6/4 {g8_"quadruplets" g g g} |
+  g8 g g g g4 \bar "||";}
+@end mudela
+
+@item octave sign
+@w{@ar{}@strong{g clef}} @w{@ar{}@strong{f clef}}
+
+@item octave
+I: ottava, F: octave, D: Oktave, NL: octaaf, DK: oktav, S: oktav, N: .
+
+@w{@ar{}@strong{interval}}
+
+@item ornament; embellishment; accessory
+I: abbellimento, fioriture, abbellimenti, F: agr@`ement, ornement, D:
+Verzierung, Ornament, NL: versiering, DK: forsiring, S: ornament, N: .
+
+Most commonly used is the @emph{trill}, the rapid alternation of a given note
+with the diatonic @w{@ar{}@strong{second}} above it. In the music from the
+middle of the 19th century and onwards the trill is performed with the main
+note first while in the music from the preceding baroque and classic periods
+the upper note is played first.
+
+@
+
+@mudela[13pt,eps]
+<
+  \context Staff = sa {
+    \property Voice.textEmptyDimension = "1"
+    \property Voice.textStyle = "large"
+    \notes\relative c'' { 
+      c2._"pre-1850"  b4\trill | c1 \bar "||";
+      c2._"post-1850" b4\trill | c1 \bar "||";
+    }
+  }
+  \notes\relative c'' {
+    c2. c32 b c b c b c b | c1
+    c2. b32 c b c \times 4/5 { b c b c b } | c1
+  }
+>
+@end mudela
+
+Other frequently used ornaments are the @emph{turn}, the @emph{mordent} and the
+@emph{prall} (inverted mordent).
+
+@
+
+@mudela[13pt,eps]
+<
+  \context Staff = sa {
+    \property Voice.textEmptyDimension = "1"
+    \property Voice.textStyle = "large"
+    \notes\relative c'' { 
+      a4_"turn" b\turn c2 \bar "||";
+      g4_"mordent" a b\mordent a \bar "||";
+      e'4_"prall" d\prall c2 \bar "||";
+    } 
+  }
+  \notes\relative c'' { 
+    a4 [c16 b a b] c2 
+    g4 a [b16 a b8] a4
+    e'4 [e8 ~ e32 d e d] c2
+  } 
+>
+@end mudela
+
+@w{@ar{}@strong{appoggiatura}}
+
+@item ossia
+I: ossia, F: facilit@'e, D: Ossia, NL: alternatief, DK: ossia, S: ossia, N: .
+
+Ossia (otherwise) marks an alternative. It is an added staff or piano
+score, usually only a few measures long, which presents another version
+of the music, for example for small hands.
+
+@item part
+I: voce, parte, F: , D: Stimme, NL: partij, DK: stemme, S: st@"amma, N: .
+
+1. In instrumental or choral music the music for the single instrument
+or voice. 2. in contrapuntal music @w{@ar{}@strong{counterpoint}} the single
+melodic line of the contrapuntal web.
+
+@item percussion
+I: percussioni, F: , D: Schlagzeug, NL: slagwerk, DK: slagt@o{}j, S: slagverk,
+N: .
+
+A family of musical instruments which are played on by striking or
+shaking. Percussion instruments commonly used in a symphony orchestra are
+kettledrums (I: @emph{timpani}, D: @emph{Pauken}), snare drum, bass drum,
+tambourine, cymbals, chinese gong (tam-tam), triangle, celesta, glockenspiel
+and xylophone.
+
+@item perfect interval
+
+I: intervallo giusto, F: intervalle juste, D: reines Intervall, NL: rein
+interval, DK: rent interval, S: rent intervall, N: .
+
+@w{@ar{}@strong{interval}}
+
+@item phrase
+I: frase, F: phrase, D: Phrase, NL: frase, zin, DK: frase, S: fras, N: .
+
+A natural division of the melodic line, comparable to a sentence of speech.
+
+@item phrasing
+I: fraseggio, F: phras@'e, D: Phrasierung, NL: frasering, DK: frasering, S:
+fra@-se@-ring, N: .
+
+The clear rendering in musical performance of the @w{@ar{}@strong{phrase}}s of
+the melody. Phrasing may be indicated by a @w{@ar{}@strong{slur}}.
+
+@item piano 
+I: piano, F: , D: piano, leise, NL: piano, DK: piano, S: piano, N: .
+
+@emph{piano} (@b{p}) soft, @emph{pianissimo} (@b{pp}) very soft,
+@emph{mezzopiano} (@b{mp}) medium soft.
+
+@item pitch
+I: altezza, F: hauteur, D: Tonh@"ohe, NL: toonhoogte, DK: toneh@o{}jde, S:
+tonh@"ojd, N: .
+
+@item pizzicato
+I: pizzicato, F: , D: pizzicato, NL: pizzicato, getokkeld, DK: pizzicato, S:
+pizzicato.
+
+Play by plucking the strings.
+
+@item polyphony
+I: polifonia, F: , D: Polyphonie, NL: polyfonie, DK: polyfoni, S: polyfoni, N:
+.
+
+Music written in a combination of several simultaneous voices (parts) of a
+more or less pronounced individuality. @w{@ar{}@strong{counterpoint}}
+
+@item portato
+@w{@ar{}@strong{legato}}
+
+@item presto
+I: presto, F: , D: Presto, Sehr schnell, NL: presto, Sehr schnell, DK: presto,
+S: presto, N: .
+
+Very quick, i.e. quicker than @w{@ar{}@strong{allegro}}. @emph{prestissimo}
+denotes the highest possible degree of speed.
+
+@item Pythagorean comma
+I: comma pitagorico, F: comma pythagoricien, D: Pythagor@"aisches Komma, NL:
+komma van Pythagoras, DK: pythagor@ae{}isk komma, S: pytagoreiskt komma, N: .
+
+A sequence of fifths starting on C eventually circles back to C, but this C,
+obtained by adding 12 fifths, is 24 @w{@ar{}@strong{cent}}s higher than the C
+obtained by adding 7 octaves. The difference between those two pitches is
+called the Pythagorean comma.
+
+@item quadruplet
+I: quartina, F: quartolet, D: Quartole, NL: kwartool, DK: kvartol, S: kvartol,
+N: .
+
+@w{@ar{}@strong{note value}}
+
+@item quarter note
+I: semiminima, nera, F: noire, UK: crotchet, D: Viertel, Viertelnote, NL:
+kwartnoot, DK: fjerdedelsnode, S: fj@"ardedelsnot, N:
+
+@w{@ar{}@strong{note value}}
+
+@item quarter rest
+I: pausa di semiminima, F: soupir, UK: crotchet rest, D: Viertelpause, NL:
+kwart rust, DK:@w{ }fjerdedelspause, S: fj@"ardedelspaus, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item quintuplet
+I: quintina, F: , D: Quintole, NL: kwintool, DK: kvintol, S: kvintol, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item rallentando
+I: rallentando, F: , D: rallentando, langsamer, NL: rallentando, DK:
+rallentando, S: rallentando, N: .
+
+@w{@ar{}@strong{ritardando}}
+
+@item relative key
+I: tonalit@`a relativa, F: , D: Paralleltonart, DK: paralleltoneart, S:
+parallelltonart, N: .
+
+@w{@ar{}@strong{Major}} and @w{@ar{}@strong{minor}} @w{@ar{}@strong{key}} with
+the same @w{@ar{}@strong{signature}}.
+
+@
+
+@mudela[13pt,eps] 
+\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = "1" 
+\property Voice.textStyle = "large"
+\notes\relative c' { 
+  \key es;
+  es1_"e flat major" f g as bes c d es 
+  \bar "||"; s16 
+  \key es;
+  c,1_"c minor" d es f g a! b! c \bar "||";
+}
+@end mudela
+
+@item repeat
+I: ritornello, F: barre de reprise, D: Wiederholung, NL: herhaling, DK:
+gen@-ta@-gel@-se, S: repris, N: .
+
+@
+
+@mudela[13pt,eps]
+\key g;
+\time 4/4;
+\notes\relative c'' { 
+  \repeat volta 2 {g4 g d' d | e e d2 | c4 c b b | a a g2 }
+}
+@end mudela
+
+@item rest
+I: pausa, F: soupir, D: Pause, NL: rust, DK: pause, S: paus, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item rhythm
+I: ritmo, F: rythme, D: Rhythmus, NL: ritme, DK: rytme, S: rytm, N: .
+
+(a) metrical rhythm in which every time value is a multiple or fraction of a
+fixed unit of time, called @w{@ar{}@strong{beat}}, and in which the normal
+@w{@ar{}@strong{accent}} recurs in regular intervals, called
+@w{@ar{}@strong{measure}}. The basic scheme scheme of time values is called
+@w{@ar{}@strong{meter}}. (b) Measured rhythm which lacks regularly recurrent
+accent. In modern notation such music appears as a free alternation of
+different measures. (c) Free rhythm, i.e. the use of temporal values having no
+common metrical unit (beat).
+
+@item ritardando
+I: ritardando, F: , D: Ritardando, Langsamer, NL: ritardando, DK: ritardando,
+S: ritardando, N: .
+
+Gradually slackening in speed. Mostly abbreviated to rit. or ritard. 
+
+@item ritenuto
+I: ritenuto, F: , D: Ritenuto, NL: ritenuto, DK: ritenuto, S: ritenuto, N: .
+
+Immediate reduction of speed.
+
+@item scale
+I: scala, F: gamme, D: Tonleiter, NL: toonladder, DK: Skala, S: skala, N: .
+
+@w{@ar{}@strong{diatonic scale}}
+
+@item scale degree
+I: grado della scala, F: degr@'e [de la gamme], D: Tonleiterstufe, NL: trap
+[van de toonladder], DK: skalatrin, S: skalatrin (?), N: .
+
+Names and symbols used in harmonic analysis to denote tones of the scale as
+roots of chords. The most important are degrees I = tonic (T), IV =
+sub@-do@-mi@-nant (S) and V = dominant (D).
+
+@
+
+@mudela[13pt,eps] 
+\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = "1" 
+\property Lyrics.textStyle = "large"
+\property Lyrics.minVerticalAlign = 8
+\addlyrics
+\notes\relative c' { 
+  c1 d e f g a b c }
+\context Lyrics \lyrics { 
+  < { I II III IV V VI VII I } 
+    { T "" "" S D } >
+}
+@end mudela
+
+@w{@ar{}@strong{functional harmony}}
+
+@item score
+I: partitura, F: partition, D: Partitur, NL: partituur, DK: partitur, S:
+partitur, N: .
+
+A copy of orchestral, choral or chamber music showing what each instrument is
+to play, each voice to sing, having each part arranged one underneath the
+other on different @w{@ar{}@strong{stave}}s.
+
+@item second
+I: secunda, F: seconde, D: Sekunde, NL: secunde, DK: sekund, S: sekund, N: .
+
+The @w{@ar{}@strong{interval}} between two neigbouring tones of a scale. A
+@w{@ar{}@strong{diatonic scale}} consists of alternating
+@w{@ar{}@strong{semitone}}s and @w{@ar{}@strong{whole tone}}s, hence the size
+of a se@-cond depends on the scale degrees in question.
+
+@item semitone
+I: semitono, F: demi-ton, D: Halbton, NL: halve toon, DK: halvtone, S:
+halvton, N: .
+
+The @w{@ar{}@strong{interval}} of a minor second. The (usually) smallest
+interval in European composed music. The interval between two neighbouring
+tones on the piano keyboard - including black and white keys - is a
+semitone. An octave may be divided into 12
+semitones. @w{@ar{}@strong{interval}} @w{@ar{}@strong{chromatic scale}}
+
+@
+
+@mudela[13pt,eps] 
+\property Score.barNonAuto = "1" 
+\notes\relative c'' { g1 gis s a bes s b c }
+@end mudela
+
+@item seventh
+I: settima, F: septi@`eme, D: Septime, NL: septiem, DK: septim, S: septim, N: .
+
+@w{@ar{}@strong{interval}}
+
+@item sextuplet, sextolet
+I: settimina, F: sextolet, D: Sextole, NL: sextool, DK: sekstol, S: sextol, N:
+.
+
+@w{@ar{}@strong{note value}}
+
+@item sharp
+I: diesis, F: di@`ese, D: Kreuz, NL: kruis, DK: kryds, S: korsf@"ortecken, N: .
+
+@w{@ar{}@strong{accidental}}
+
+@item short appoggiatura
+@w{@ar{}@strong{appoggiatura}}
+
+@item sixteenth note
+I: semicroma, F: double croche, UK: semiquaver, D: Sechzehntel,
+Sechzehntelnote, NL:@w{ }zes@-ti@-ende noot, DK: sekstendedelsnode, S:
+sextondelsnot, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item sixteenth rest
+I: pausa di semicroma, F: quart de soupir, UK: semiquaver rest, D:
+Sechzehntelpause, NL: zestiende rust, DK: sekstendedelspause, S:
+sextondelspaus, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item sixth
+I: sesta, F: sixte, D: Sexte, NL: sext, DK: sekst, S: sext, N: .
+
+@w{@ar{}@strong{interval}}
+
+@item sixty-fourth note
+I: semibiscroma, F: quadruple croche, UK: hemidemisemiquaver, D:
+Vierundsechzigstel, Vierundsechzigstelnote, NL: vierenzestigste noot, DK:
+fi@-re@-og@-tred@-sinds@-ty@-ven@-de@-dels@-no@-de, S:
+sextiofj@"ardedelsnot, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item sixty-fourth rest
+I: pausa di semibiscroma, F: seizi@`eme de soupir, UK: hemidemisemiquaver
+rest, D: Vierundsechzigstelpause, NL: vierenzestigste rust, DK:
+fi@-re@-og@-tred@-sinds@-ty@-ven@-de@-dels@-pau@-se, S:
+sextiofj@"ardedelspaus, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item slur
+I: legatura (di portamento or espressiva), F: liaison, coul@'e, D: Bogen,
+Bindebogen, Legatobogen, Phrasierungsbogen, NL: binding, bindingsboog, 
+DK:@w{ }legatobue, fraseringsbue, S: b@aa{}ge, N: .
+
+A slur above or below a group of notes indicates that they are to be played
+@w{@ar{}@strong{legato}}, e.g. with one stroke of the violin bow or with one
+breath in singing.
+
+@item solmization
+I: solmisazione, F: , D: Solmisation, NL: solmizatie, DK: solmisation, S:
+solmisation, N: .
+
+General term for systems of designating the degrees of the
+@w{@ar{}@strong{scale}}, not by letters, but by syllables (@emph{do}
+(@emph{ut}), @emph{re}, @emph{mi}, @emph{fa}, @emph{sol}, @emph{la}, @emph{si}
+(@emph{ti})). @w{@ar{}@strong{scale degree}}.
+
+@item sonata
+I: sonata, F: , D: Sonate, NL: sonate, DK: sonate, S: sonat, N: .
+
+In its present-day meaning a sonata denotes an instrumental composition for
+piano or for some other instrument with piano accompaniment, which consists of
+three or four independant pieces, called movements.
+
+@item sonata form
+I: forma sonata, F: , D: Sonatenform, NL: hoofdvorm, sonatevorm, DK:
+sonateform, S: sonatform, N: .
+
+A form used frequently for single movements of the @w{@ar{}@strong{sonata}},
+@w{@ar{}@strong{symphony}}, quartet etc. A movement written in sonata form
+falls in three sections called @emph{exposition}, @emph{development} and
+@emph{recapitulation}. In the exposition the composer introduces his musical
+ideas, consisting of a number of themes; in the development section he
+"develops" this material, and in the recapitulation he repeats the exposition,
+with certain modifications however. The exposition contains a number of themes
+which fall into two groups, often called first and second subject. Other
+melodies occurring in each group are considered as continuations of these
+two. The second theme is in another key, normally in the key of the
+@w{@ar{}@strong{dominant}} if the @w{@ar{}@strong{tonic}} is
+@w{@ar{}@strong{major}}, and in the @w{@ar{}@strong{relative key}} if the
+tonic is @w{@ar{}@strong{minor}}.
+
+@item soprano
+I: soprano, F: soprano, D: Sopran, NL: sopraan, DK: sopran, S: sopran, N: .
+
+The highest female voice.
+
+@item staccato
+I: staccato, F: , D: staccato, NL: staccato, DK: staccato, S: staccato, N:
+
+Playing the note(s) short. Staccato is indicated by a dot above or below the
+notehead.
+
+@
+
+@mudela[13pt,eps]
+\key d;
+\time 4/4;
+\notes\relative c'' { 
+  \partial 8; a8 | 
+  d4-\staccato cis-\staccato b-\staccato cis-\staccato | 
+  d2. \bar "||"; }
+@end mudela
+
+@item staff
+I: pentagramma, rigo (musicale), F: port@'ee, D: Notensystem, NL: (noten)balk;
+partij, DK: nodesystem, S: notsystem, N: .
+
+pl. staves or staffs. A series of (normally 5) horizontal lines upon and
+between which the musical notes are written, thus indicating (in connection
+with a @w{@ar{}@strong{clef}}) their pitch. Staffs for
+@w{@ar{}@strong{percussion}} instruments may have fewer lines.
+
+@item stem
+I: gamba, F: queue, D: Hals, Notenhals, Stiel, NL: stok, DK: hals, S: skaft,
+N: .
+
+Vertical line above or below a @w{@ar{}@strong{note head}} shorter than a whole
+note. @w{@ar{}@strong{beam}}
+
+@
+
+@mudela[13pt,eps]
+\property Score.noAutoBeaming = "1"
+\property Score.barNonAuto = "1"
+\property Voice.textEmptyDimension = "1"
+\property Voice.textStyle = "large"
+\notes\relative c'' { 
+  g2_"1/2" g' s16
+  g,4_"1/4" g' s16
+  g,8_"1/8" g' s16
+  g,16_"1/16" g' s16
+}
+@end mudela
+
+@item strings
+I: archi, F: , D: Streicher, NL: strijkers, DK: strygere, S: str@aa{}kar, N: .
+
+A family of stringed musical instruments played with a bow. Strings commonly
+used in a symphony orchestra are violin, viola, violoncello and double bass.
+
+@item strong beat
+I: tempo forte, F: temps fort, D: betonter Taktteil oder -schlag, NL: thesis,
+D: betonet taktslag, S: betonat taktslag, N: .
+
+@w{@ar{}@strong{beat}} @w{@ar{}@strong{accent}} @w{@ar{}@strong{measure}}
+@w{@ar{}@strong{rhythm}}
+
+@item subdominant
+I: sottodominante, F: sous-dominante, D: Subdominante, NL: subdominant, DK:
+subdominant, S: subdominant, N: .
+
+The fourth @w{@ar{}@strong{scale degree}}. @w{@ar{}@strong{functional
+harmony}}
+
+@item submediant
+I: sopradominante, F: , D: Submediant, NL: submediant, DK: Submediant, S:
+submediant, N: .
+
+The sixth @w{@ar{}@strong{scale degree}}.
+
+@item subtonic
+I: sensibile, F: sous-tonique, D: Subtonika, NL: subtonica, DK: Subtonika, S:
+subtonika, N: .
+
+The seventh @w{@ar{}@strong{scale degree}}
+
+@item superdominant
+I: sopradominante, F: sus-dominante, D: Superdominant, NL: superdominant, DK:
+superdominant, S: superdominant, N: .
+
+The sixth @w{@ar{}@strong{scale degree}} 
+
+@item supertonic
+I: sopratonica, F: sus-tonique, D: Supertonika, NL: supertonica, DK:
+supertonika, S: supertonika, N: .
+
+The second @w{@ar{}@strong{scale degree}}.
+
+@item symphony
+I: sinfonia, F: , D: Sinfonie, NL: symfonie, DK: symfoni, S: symfoni, N: .
+
+A symphony may be defined as a @w{@ar{}@strong{sonata}} for orchestra.
+
+@item syncopation
+I: sincope, F: syncope, D: Synkope, NL: syncope, DK: synkope, S: synkop, N: .
+
+Any deliberate upsetting of the normal pulse of @w{@ar{}@strong{meter}},
+@w{@ar{}@strong{accent}} and @w{@ar{}@strong{rhythm}}. Our system of musical
+rhythm rests upon the grouping of equal beats into groups of two or three,
+with a regularly recurrent accent on the first beat of each group. Any
+deviation from this scheme is felt as a disturbance or contradiction between
+the underlaying (normal) pulse and the actual (abnormal) rhythm.
+
+@
+
+@mudela[13pt,eps]
+\property Voice.textEmptyDimension = "1"
+\property Voice.textStyle = "large"
+\time 4/4;
+\notes\relative c' {
+  \partial 4;
+  d8 dis |
+  e c'4 e,8 c'4 e,8 c' ( | ) c2
+}
+@end mudela
+
+@item syntonic comma; dydimic comma
+
+I: comma sintonico (o didimico), F: comma syntonique, D: Syntonisches Komma,
+NL: syntonische komma, DK:@w{ }syntonisk komma, S: syntoniskt komma, N: .
+
+Difference between the natural third and the third obtained by Pythagorean
+tuning (@w{@ar{}@strong{Pythagorean comma}}), equal to 22 cents.
+
+@item system
+I: accollatura, F: syst@`eme, D: Notensystem, NL: systeem, DK: system, S:
+system, N: .
+
+The collection of staves @w{@ar{}@strong{staff}}, two or more, as used for the
+writing down of keyboard, chamber, choral or orchestral music.
+
+@item temperament
+I: temperamento, F: , D: Stimmung, Temperatur, NL: temperament, DK:
+temperatur, S: temperatur, N: .
+
+Systems of tuning in which the intervals deviate from the accoustically pure
+intervals. @w{@ar{}@strong{meantone temperament}} @w{@ar{}@strong{equal
+temperament}}
+
+@item tempo indication
+I: indicazioni di tempo, F: signe de temps, D: Zeitma@ss{}, Tempobezeichnung,
+NL: tempo aanduiding, DK: tempobetegelse, S: tempobeteckning, N: .
+
+The rate of speed of a composition or a section thereof, ranging from the
+slowest to the quickest, as is indicated by tempo marks as
+@w{@ar{}@strong{largo}}, @w{@ar{}@strong{adagio}}, @w{@ar{}@strong{andante}},
+@w{@ar{}@strong{allegro}} and @w{@ar{}@strong{presto}}.
+
+@item tenor
+I: tenore, F: t@'enor, D: Tenor, NL: tenor, DK: tenor, S: tenor, N: .
+
+The highest voice of men (apart from @w{@ar{}@strong{counter tenor}})
+@item tenth
+I: decima, F: , D: Dezime, NL: deciem, DK: decim, S: decima, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item third
+I: terza, F: tierce, D: Terz, NL: terts, DK: terts, S: ters, N: .
+
+@w{@ar{}@strong{interval}}
+
+@item thirty-second note
+
+I: biscroma, F: triple croche, UK: demisemiquaver, D:
+Zweiunddrei@ss{}igstel, Zweiunddrei@ss{}igstelnote, NL: 32e noot, DK:
+toogtredivtedelsnode, S: trettiotv@aa{}ondelsnot, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item thirty-second rest
+
+I: pausa di biscroma, F: huiti@`eme de soupir, UK: demisemiquaver rest, D:
+Zweiunddrei@ss{}igstel@-pause, NL: 32e rust, DK: toogtredivtedelspause, S:
+trettiotv@aa{}ondelspaus, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item thorough bass; figured bass
+I: basso continuo, F: basse chiffr@'e, D: Generalbass, bezifferter Bass, NL:
+basso continuo, DK:@w{ }generalbas, S: generalbas, N: .
+
+A method of indicating an accompaniment part by the bass notes only, together
+with figures designating the chief @w{@ar{}@strong{interval}}s and
+@w{@ar{}@strong{chord}}s to be played above the bass notes.
+@
+
+@mudela[13pt,eps]
+\context GrandStaff <
+  \notes\relative c'' { 
+    \time 4/4;
+    \key es;
+    \clef treble; 
+    < \context Voice = rha { 
+        \stemup
+        es4 d c bes | bes } 
+      \context Voice = rhb { 
+        \stemdown
+        < bes8 g > as < as f > g < g es > f < d f > es | < g4 es > } 
+    >
+  }
+  \property Voice.textStyle = "large"
+  \property Lyrics.textStyle = "Large"
+  \property Lyrics.minVerticalAlign = 6
+  \addlyrics
+    \notes\relative c' { 
+    \clef bass;
+    \key es;
+    es8 c () c bes () bes as () as g16 f | es4 
+  }
+  \context Lyrics \lyrics { 
+    < { "" "6" "4" "6" "4" "6" "4" "6" }
+      { "" "" "2" "" "2" "" "2" "" } >
+  } 
+>
+@end mudela
+
+@item tie; bind
+I: legatura (di valore), F: liaison, D: Haltebogen, NL: overbinding, DK:
+bindebue, S: bindeb@aa{}ge, @"overbindning, N: .
+
+A curved line, identical in appearance with the @w{@ar{}@strong{slur}}, which
+connects two succesive notes of the same pitch, and which has the function of
+uniting them into a single sound equal to the combined durations.
+
+@
+
+@mudela[13pt,eps]
+\property Score.barNonAuto = "1"
+\notes\relative c'' { g2 ~ g4. }
+@end mudela
+
+@item time signature
+
+I: segni di tempo, F: chiffrage (chiffres indicateurs), signe de valeur,  D:
+Taktangabe, Angabe der Taktart, NL: maatsoort, DK: taktangivelse, S:
+taktartssignatur, N: .
+
+@w{@ar{}@strong{meter}}
+
+@item tone
+I: suono, F: ton, D: Ton, NL: toon, DK: tone, S: ton, N: .
+
+A sound of definite pitch and duration, as distinct from @emph{noise}. Tone is
+a primary building material of music. Music from the 20th century may be based
+on non tone related sounds.
+
+@item tonic
+I: tonica, F: tonique, D: Tonika, NL: tonica, DK: tonika, S: tonika, N: .
+
+The first @w{@ar{}@strong{scale degree}}@w{@ar{}@strong{functional harmony}}
+
+@item transposition
+I: trasposizione, F: transposition, D: Transposition, NL: transpositie, DK:
+transposition, S: transponering, N: .
+
+Shifting a melody up or down in pitch, while keeping the same relative pitches.
+
+@
+
+@mudela[13pt,eps]
+\context Staff {
+  \time 3/4;
+  \notes\relative c'' {
+    \key g;
+    d4 g,8 a b c | d4 g, g | e' c8 d e fis | g4 g, g \bar "|."; }
+  \transpose bes\relative c'' {
+    \key g;
+    d4 g,8 a b c | d4 g, g | e' c8 d e fis | g4 g, g \bar "|."; }
+}
+@end mudela
+
+@item treble clef
+I: chiave di violino, F: cl@'e de sol, D: Violinschl@"ussel,
+Sopranschl@"ussel, NL: viool sleutel, DK:@w{ }diskantn@o{}gle, S: diskantklav,
+N: .
+
+@w{@ar{}@strong{G clef}}
+
+@item tremolo
+I: tremolo, F: tr@`emolo, D: Tremolo, NL: tremolo, DK: tremolo, S: tremolo, N:
+.
+
+On stringed instruments (@w{@ar{}@strong{strings}}) the quick reiteration of
+the same tone, produced by a rapid up-and-down movement movement of the bow
+(a). The term is also used for the rapid alternation (b) between two notes of
+a @w{@ar{}@strong{chord}}, usually in the distance of a third
+(@w{@ar{}@strong{interval}}).
+@
+
+@mudela[13pt,eps] 
+\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = "1" 
+\property Voice.textStyle = "large"
+\notes\relative c' {
+  e2:32_"a" f:32 [ e8:16 f:16 g:16 a:16 ] s4 [:32 e1_"b" g]
+} 
+@end mudela
+
+@item triad
+I: triade, F: , D: Dreiklang, NL: drieklank, DK: treklang, S: treklang, N:
+
+@w{@ar{}@strong{chord}}
+
+@item trill; shake
+I: trillo, F: trille, tremblement, battement (cadence), D: Triller, NL:
+triller, DK:@w{ }trille, S:@w{ }drill, N:@w{ }.
+
+@w{@ar{}@strong{ornament}}
+
+@item triple meter
+I: tempo ternario, F: temps ternaire, D: dreiteiliger Takt, NL: driedelige
+maatsoort, DK: tredelt takt, S: tretakt, N: .
+
+@w{@ar{}@strong{meter}}
+
+@item triplet
+I: terzina, F: triolet,  D: Triole, NL: triool, DK: triol, S: triol, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item tritone
+I: tritono, F: triton, D: Tritonus, NL: tritoon, DK: tritonus, S: tritonus, N:
+.
+
+@w{@ar{}@strong{interval}}
+
+@item tuning fork
+I: diapason, corista, F: diapason, D: Stimmgabel, NL: stemvork, DK:
+stemmegaffel, S: st@"amgaffel, N: .
+
+A two-pronged piece of steel used to indicate absolute pitch. Tuning forks
+give the international pitch for the tone @emph{a} (440 vibrations per second.)
+@item turn; gruppetto
+I: grupetto, F: bris@`e, groupe, doubl@`e, grupetto, D: Doppelschlag, NL:
+dubbelslag, DK: dobbeltslag, S: dubbelslag, N: .
+
+@item unison
+I: unisono, F: unisson, D: Unison, unisono, NL: unisono, DK: unison, S:
+unison, N: .
+
+Playing of the same notes or the same melody by various instruments (voices)
+or by the whole orchestra (choir), either at exactly the same pitch or in a
+different octave.
+
+@item upbeat
+I: anacrusi, F: , D: Auftakt, NL: opmaat, I: , DK: optakt, S: upptakt, N:
+
+Initial note(s) of a melody occurring before the first bar
+line. @w{@ar{}@strong{measure}} @w{@ar{}@strong{meter}}
+
+@
+
+@mudela[13pt,eps]
+\key f;
+\time 4/4;
+\notes\relative c' { 
+  \partial 4; f4 | bes4. a8 bes4 c | 
+  bes () a g f | bes4. a8 bes4 c | f,2. \bar "||"; }
+@end mudela
+
+@item voice
+I: voce, F: voix, D: Stimme, NL: stem, DK: stemme, S: st@"amma, N: ,
+
+1. Human voices: @w{@ar{}@strong{soprano}}, @w{@ar{}@strong{mezzo-soprano}},
+@w{@ar{}@strong{contralto}}, @w{@ar{}@strong{tenor}},
+@w{@ar{}@strong{baritone}}, @w{@ar{}@strong{bass}}. 2. A melodic layer or part
+of a polyphonic composition.
+
+@item weak beat
+I: tempo debole, arsi, F: temps faible, D: unbetonter Taktteil oder -schlag,
+NL: arsis, DK: ubetonet taktslag, S: obetonat taktslag, N: .
+
+@w{@ar{}@strong{beat}} @w{@ar{}@strong{measure}} @w{@ar{}@strong{rhythm}}
+
+@item whole note
+I: semibreve, F: ronde, UK: semibreve, D: Ganze, Ganze Note, NL: hele noot,
+DK: helnode, S: helnot, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item whole rest
+I: pausa di semibreve, F: pause, UK: semibreve rest, D: Ganze Pause, NL: hele
+rust, DK: helnodespause, S: helnotspaus, N: .
+
+@w{@ar{}@strong{note value}}
+
+@item whole tone
+I: tono intero, F: , D: Ganzton, NL: hele toon, DK: heltone, S: helton, N: .
+
+The @w{@ar{}@strong{interval}} of a major second. The interval between two
+tones on the piano keyboard with exactly one key between them - including
+black and white keys - is a whole tone.
+
+@item woodwind
+I: legni, F: , D: Holzbl@"aser, NL: houtblazers, DK tr@ae{}bl@ae{}sere, S:
+tr@"abl@aa{}sare, N: .
+
+A family of blown wooden musical instruments. Today some of these instruments
+are actually made from metal. The woodwind instruments commonly used in a
+symphony orchestra are flute, oboe, clarinet, saxophone and bassoon.
+
+@
+
+@item ---------------------
+
+@
+
+@item Litterature used
+The Harvard Dictionary of Music, London 1944. Many more or less litteral
+quotes from its articles have been included into the item explanation texts.
+
+Hugo Riemans Musiklexicon, Berlin 1929
+
+Oxford Advanced Learner's Dictionary of Current English, Third Edition 1974.
+
+@end table
+
+@bye
index bf2e8244f7c93f566bc19b05db0ab3ff060fe0a2..987e40be36b09b65e77594425873d308e32a48da 100644 (file)
@@ -86,7 +86,6 @@ than the names being similar :-)"
 * Invoking LilyPond::   Operation.
 * Reporting Bugs::      Where to report bugs.
 * Reference Manual::    Reference Manual.
 * Invoking LilyPond::   Operation.
 * Reporting Bugs::      Where to report bugs.
 * Reference Manual::    Reference Manual.
-* Glossary::            A dictionary of musical terms.
 * More information::    Where to turn to for more help.
 * convert-mudela::      Upgrading input files.
 * Index::               Unified index.
 * More information::    Where to turn to for more help.
 * convert-mudela::      Upgrading input files.
 * Index::               Unified index.
@@ -112,8 +111,6 @@ than the names being similar :-)"
 
 @mbinclude refman.itely
 
 
 @mbinclude refman.itely
 
-@include glossary.itexi
-
 @include moreinfo.itexi
 
 @include convert-mudela.itexi
 @include moreinfo.itexi
 
 @include convert-mudela.itexi
index 9f8ab35a43a3544acd0e11eb77ea2d12baf6c5e8..0d2bafa7fccdf136722ab93b0bf5f7e4ec772b11 100644 (file)
@@ -10,7 +10,7 @@ Abstract
 you should do.  If you are going to compile and install LilyPond often,
 e.g. when doing development, you might want to check out the
 `buildscripts/set-lily.sh' script.  It sets some environment variables
 you should do.  If you are going to compile and install LilyPond often,
 e.g. when doing development, you might want to check out the
 `buildscripts/set-lily.sh' script.  It sets some environment variables
-and symlinks, which comes in handly when you have to compile LilyPond
+and symlinks, which comes in handy when you have to compile LilyPond
 more often.
 
 Obtaining
 more often.
 
 Obtaining
diff --git a/TODO b/TODO
index 9fb9933e9f8beaffd5ce9f3122c3f3d3259d7714..f5a11cecd9ea95ce20c399e01fef00a522e80f60 100644 (file)
--- a/TODO
+++ b/TODO
@@ -17,7 +17,26 @@ Grep -i for TODO, FIXME and ugh/ugr/urg.
 . * entangle ly/* paper-params papersize stuff
 . * fix tremolos.
 . * change ) c4  to c4-)
 . * entangle ly/* paper-params papersize stuff
 . * fix tremolos.
 . * change ) c4  to c4-)
+. * 
+There's insufficient leading between lines of lyrics, so risers like
+`l' and 'b' collide with the bottom of the line above.
+
+Also the lines are unevenly spaced.
+
+. * write comments in the source code
 . * internationalize GUILE msgs.
 . * internationalize GUILE msgs.
+. * roy rankin:
+1> The volta brackets are on top of the lyrics. This problem existed in
+   1.2.x which I corrected by giving the brackets a vertical size. I
+   have not had the time to check what is going on in 1.3.
+
+2> Part names are being written on top of the staff and not in the
+   left margin.
+
+3> The tag at the end is spaced out clear across the page. (new problem
+   in 1.3.27)
+
+I also get the following error messages from ly2dvi.
 . * unbroken marks.
 . * chubb:
 -- Take a piece of early music, and typeset it as closely as possible to
 . * unbroken marks.
 . * chubb:
 -- Take a piece of early music, and typeset it as closely as possible to
diff --git a/VERSION b/VERSION
index a85e0bcfadac6a154303a3fec4312215bddc3f4d..eccd0728c3044876b33f574749a1002eb194baad 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
-PATCH_LEVEL=27
-MY_PATCH_LEVEL=jcn1
+PATCH_LEVEL=28
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index be4163087bd25fb365783db9736e676364d23134..9e05102b94005f7feb55b3af7850275761c3e865 100755 (executable)
@@ -46,7 +46,7 @@ yourself."""
 # FIXME breaks on multiple strings.
 #
 def read_mudela_header (fn):
 # FIXME breaks on multiple strings.
 #
 def read_mudela_header (fn):
-       s = gulp_file(fn)
+       s = open(fn).read ()
        s = re.sub('%.*$', '', s)
        s = re.sub('\n', ' ', s)                
 
        s = re.sub('%.*$', '', s)
        s = re.sub('\n', ' ', s)                
 
@@ -77,47 +77,36 @@ def help ():
        sys.stdout.write (r"""Usage: mutopia-index [options] INFILE OUTFILE
 Generate index for mutopia\n
 Options:
        sys.stdout.write (r"""Usage: mutopia-index [options] INFILE OUTFILE
 Generate index for mutopia\n
 Options:
-  -h, --help                        print this help
-  --prefix=PRE                  specify prefix
+  -h, --help                 print this help
+  -o,-output=FILE            write output to file.
   -s, --subdirs=DIR         add subdir
   --suffix=SUF                  specify suffix"""
                                          )
        sys.exit (0)
 
 # ugh.
   -s, --subdirs=DIR         add subdir
   --suffix=SUF                  specify suffix"""
                                          )
        sys.exit (0)
 
 # ugh.
-def gen_list(inputs, subdir, filename):
-       (pre, subdirs, post)=subdir
+def gen_list(inputs, filename):
        print "generating HTML list %s\n" % filename
        print "generating HTML list %s\n" % filename
-       list = open(filename, 'w')
+       if filename:
+               list = open(filename, 'w')
+       else:
+               list = sys.stdout
        list.write ('<html><TITLE>Rendered Examples</TITLE>\n')
        list.write ('<body bgcolor=white>')
        list.write ('<html><TITLE>Rendered Examples</TITLE>\n')
        list.write ('<body bgcolor=white>')
-       if subdirs:
-               list.write  ('<h2>subdirectories</h2>')
-               list.write  ('<ul>')                
-               for ex in subdirs:
-                       print 'subdir %s ' % ex
-                       list.write ('<li><a href=%s/index.html>Subdirectory: %s</a></li>\n' % (pre + ex + post , ex))
-
-               list.write ('</ul>')
-
-
-
+       
        if inputs:
        if inputs:
-                       list.write('<h2>Contents of this directory</h2>\n');
-
                        list.write (headertext)
        else:
                        list.write (headertext_nopics)
 
 
        for ex in inputs:
                        list.write (headertext)
        else:
                        list.write (headertext_nopics)
 
 
        for ex in inputs:
-               ex_ext = '.ly'
+               (base, ext) = os.path.splitext (ex)
+               (base, ext2) = os.path.splitext (base)          
+               ext = ext2 + ext
+               
                print '%s, ' % ex
                print '%s, ' % ex
-               try:
-                       header = read_mudela_header(ex + ex_ext + '.txt')
-               except:
-                       ex_ext = '.fly'
-                       header = read_mudela_header(ex + ex_ext + '.txt')
+               header = read_mudela_header(ex)
                
                def read_dict(s, default, h =header):
                                try:
                
                def read_dict(s, default, h =header):
                                try:
@@ -125,7 +114,7 @@ def gen_list(inputs, subdir, filename):
                                except KeyError:
                                        ret = default
                                return ret
                                except KeyError:
                                        ret = default
                                return ret
-               head = read_dict('title', ex)
+               head = read_dict('title', os.path.basename (base))
                composer = read_dict('composer', '')
                desc = read_dict('description', '')
                list.write('<hr>')
                composer = read_dict('composer', '')
                desc = read_dict('description', '')
                list.write('<hr>')
@@ -142,14 +131,15 @@ def gen_list(inputs, subdir, filename):
                                l.write (' (%s %dk)' % (type, (size + 512) / 1024))
                                pictures = ['jpeg', 'png', 'xpm']
                                l.write ('\n')
                                l.write (' (%s %dk)' % (type, (size + 512) / 1024))
                                pictures = ['jpeg', 'png', 'xpm']
                                l.write ('\n')
-               list_item(ex + ex_ext + '.txt', 'The input', 'ASCII')
+
+               list_item(base + ext, 'The input', 'ASCII')
                for pageno in range(1,100):
                for pageno in range(1,100):
-                       f  = ex + '-page%d.png' % pageno
+                       f  = base + '-page%d.png' % pageno
                        if not file_exist_b (f):
                                break
                        list_item(f, 'The output, page %d' % pageno, 'png')
                        if not file_exist_b (f):
                                break
                        list_item(f, 'The output, page %d' % pageno, 'png')
-               list_item(ex + '.ps.gz', 'The output', 'gzipped PostScript')
-               list_item(ex + '.midi', 'The output', 'MIDI')
+               list_item(base + '.ps.gz', 'The output', 'gzipped PostScript')
+               list_item(base + '.midi', 'The output', 'MIDI')
                list.write ("</ul>");
 
        list.write( "</BODY></HTML>");
                list.write ("</ul>");
 
        list.write( "</BODY></HTML>");
@@ -158,23 +148,31 @@ def gen_list(inputs, subdir, filename):
 import getopt
 
 (options, files) = getopt.getopt(sys.argv[1:], 
 import getopt
 
 (options, files) = getopt.getopt(sys.argv[1:], 
-  'hp:s:', ['help', 'subdirs=', 'suffix=',  'prefix='])
-subdir_pre=''
-subdir_suf =''
+  'ho:', ['help', 'output='])
+outfile = 'examples.html'
 
 subdirs =[]
 for opt in options:
        o = opt[0]
        a = opt[1]
 
 subdirs =[]
 for opt in options:
        o = opt[0]
        a = opt[1]
-       if o == '--subdirs' or o == '-s':
-               subdirs.append (a)
-       elif o == '--prefix':
-               subdir_pre = a
-       elif o == '--suffix':
-               subdir_suf = a
+       if o == '--help' or o == '-h':
+               help()
+       elif o == '--output' or o == '-o':
+               outfile = a
 
 
-               
-allfiles = find.find ('*.ly') + find.find ('*.ly.txt')
+dirs  = []
+for f in files:
+       dirs = dirs + find.find ('out-www', f);
+
+if not dirs:
+       dirs = ['.']
+
+allfiles = []
+
+for d in dirs:
+       allfiles = allfiles + find.find ('*.ly.txt', d)
+
+print allfiles
 
 
-gen_list (files, (subdir_pre, subdirs, subdir_suf), 'index.html')
+gen_list (allfiles, outfile)
 
 
index 00cddc0806aa24194d8ef3e74561607407e45715..0923318b9973a52651f3dd0559fa0981bfddc0e7 100644 (file)
@@ -1,7 +1,7 @@
 # input/test/Makefile
 
 depth = ../..
 # input/test/Makefile
 
 depth = ../..
-examples=font20  sleur
+examples=font20  
 LOCALSTEPMAKE_TEMPLATES=mutopia
 
 include $(depth)/make/stepmake.make 
 LOCALSTEPMAKE_TEMPLATES=mutopia
 
 include $(depth)/make/stepmake.make 
index f9f6cd1d8ff9a83c05fa9309fd854db1a2c779d0..0b69da1a7b5add4fc1f467337faa624b75c25dcd 100644 (file)
@@ -1,8 +1,8 @@
 \header{
 \header{
+title = "sleur";
+subtitle = "test slurs.";
 enteredby =     "jcn";
 copyright =     "public domain";
 enteredby =     "jcn";
 copyright =     "public domain";
-TestedFeatures =        "This file tests Feta embedded slurs" +
-        "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
 \version "1.3.5";
 }
 
 \version "1.3.5";
diff --git a/input/test/slur-area.fly b/input/test/slur-area.fly
new file mode 100644 (file)
index 0000000..14705f7
--- /dev/null
@@ -0,0 +1,10 @@
+\property Voice.slurVerticalDirection = #1
+\property Voice.stemVerticalDirection = #-1
+a''(a' a,)a
+a(a a')a,
+a(d a)a
+a8(d a a a a a)a
+a(a a a a a d)a
+
+c,(g' c e f d b)g 
+c,(g' c e f d b)g 
diff --git a/input/test/slur-area.sly b/input/test/slur-area.sly
deleted file mode 100644 (file)
index 4b676c7..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-\property Voice.slurVerticalDirection = #1
-\property Voice.stemVerticalDirection = #-1
-a''(a' a,)a
diff --git a/input/test/slur-proof.ly b/input/test/slur-proof.ly
new file mode 100644 (file)
index 0000000..8853a63
--- /dev/null
@@ -0,0 +1,46 @@
+
+% :-(
+x = {
+\outputproperty #(make-type-checker 'Note_head) #'extra-offset = #'(-1 . 0)
+}
+
+\score{
+\context Staff \notes\relative c<
+\context Voice=va { \x f()f }
+\context Voice=vb { \x g(s4)g }
+\context Voice=vc { \x a(s4*2)a }
+\context Voice=vd { b(s4*3)b }
+\context Voice=ve { c(s4*4)c }
+\context Voice=vf { d(s4*5)d }
+\context Voice=vg { e(s4*6)e }
+\context Voice=vh { f(s4*7)f }
+\context Voice=vi { g(s4*8)g }
+\context Voice=vj { a(s4*9)a }
+\context Voice=vk { b(s4*10)b }
+\context Voice=vl { c(s4*11)c }
+\context Voice=vm { d(s4*12)d }
+\context Voice=vn { e(s4*13)e }
+\context Voice=vo { f(s4*14)f }
+\context Voice=vp { g(s4*15)g }
+\context Voice=vq { a(s4*16)a }
+\context Voice=vr { b(s4*17)b }
+\context Voice=vs { c(s4*18)c }
+\context Voice=vt { d(s4*19)d }
+\context Voice=vu { e(s4*20)e }
+\context Voice=vv { f(s4*21)f }
+\context Voice=vw { g(s4*22)g }
+\context Voice=vx { a(s4*23)a }
+\context Voice=vy { b(s4*24)b }
+\context Voice=vz { c(s4*25)c }
+\context Voice=wa { d(s4*26)d }
+>
+\paper{
+indent=0.0\mm;
+linewidth=-1.0\mm;
+\translator{
+\VoiceContext
+slurVerticalDirection = #1
+stemVerticalDirection = #-1
+}
+}
+}
diff --git a/input/test/tuplet-rest.ly b/input/test/tuplet-rest.ly
new file mode 100644 (file)
index 0000000..d31e4f6
--- /dev/null
@@ -0,0 +1,16 @@
+
+
+\score {
+  \context Voice \notes \relative c'' {
+    \time 2/4;
+    \times 2/3 { r c,,, c''' }
+    \times 2/3 { r c c }
+    \times 2/3 { r c r}
+    \times 2/3 { r r r}
+    \times 2/3 { r c e}
+    \times 2/3 { c r e}
+    \times 2/3 { r c g}
+    \times 2/3 { c r g}
+  }
+}
+
index cc2bde40be01f211d289b59360968f200294e2f9..9dd82bc754f88893320db90a009ea5253fb0f57a 100644 (file)
@@ -7,74 +7,49 @@
 */
 
 #include <math.h>
 */
 
 #include <math.h>
-#include "ly-smobs.icc"
 
 #include "atom.hh"
 
 #include "atom.hh"
-#include "interval.hh"
-#include "string.hh"
-#include "array.hh"
-#include "debug.hh"
-#include "dimensions.hh"
 #include "lookup.hh"
 #include "lookup.hh"
-#include "main.hh"
 #include "global-ctor.hh"
 #include "font-metric.hh"
 
 #include "global-ctor.hh"
 #include "font-metric.hh"
 
-Atom::Atom(SCM s)
+
+#if 0
+SCM translate_sym;
+
+static void init()
 {
 {
-  SCM onstack = s;             // protection. just to be sure.
-  func_ = s;
-  self_scm_ = SCM_EOL;
-  smobify_self ();
+  translate_sym = sly_symbol2scm ("translate-atom");
 }
 
 }
 
+ADD_SCM_INIT_FUNC(atom, init);
+#endif
+
 SCM
 SCM
-Atom::mark_smob (SCM s)
+translate_atom (Offset o, SCM func)
 {
 {
-  Atom*  a = SMOB_TO_TYPE(Atom, s);
-  assert (s == a->self_scm_);
-  return a->func_;
+  return gh_list (ly_symbol2scm ("translate-atom"),
+                 ly_quote_scm (ly_offset2scm (o)),
+                 func,
+                 SCM_UNDEFINED);
 }
 
 }
 
-void
-Atom::fontify (Font_metric * met)
+SCM
+translate_atom_axis (Real r, Axis a, SCM func)
 {
 {
-  SCM desc = ly_quote_scm (met->description ());
-  SCM font_switch = gh_list (ly_symbol2scm ("select-font"),
-                            desc,
-                            SCM_UNDEFINED);
-
-  SCM f =func_;
-  func_ = gh_list (ly_symbol2scm ("string-append"),
-                  font_switch , f,
-                  SCM_UNDEFINED);
+  //  off_[a] += r;
+  Offset o ;
+  o[a] = r;
+  return gh_list (ly_symbol2scm ("translate-atom"),
+                 ly_quote_scm (ly_offset2scm (o)),
+                 func,
+                 SCM_UNDEFINED);
 }
 
 }
 
-void
-Atom::do_smobify_self ()
-{
-}
 
 
-Atom::Atom (Atom const &s)
-{
-  off_ = s.off_;
-  func_ = s.func_;
-  self_scm_= SCM_EOL;
-  smobify_self ();
-}
-int
-Atom::print_smob (SCM s, SCM p, scm_print_state*)
+SCM
+fontify_atom(Font_metric * met, SCM f)
 {
 {
-  Atom * a = unsmob_atom (s);
-
-  scm_puts ("#<Atom off ",p);
-  String str(a->off_.str ());
-  scm_puts ((char *)str.ch_C(), p);
-  scm_display (a->func_, p);
-  scm_puts ("> ",p);  
-  return 1;
+  return  gh_list (ly_symbol2scm ("fontify"),
+                  ly_quote_scm (met->description ()), f, SCM_UNDEFINED);
 }
 }
-  
-IMPLEMENT_UNSMOB(Atom, atom)
-IMPLEMENT_SMOBS(Atom)
-
index 2206a6663f1c8b9385e31917c4db6b76bc8dcf6b..3565cddb31e60d7a46d058411da3fcc40f75a07e 100644 (file)
@@ -50,26 +50,60 @@ Bezier_bow::Bezier_bow (Array<Offset> points, Direction dir)
   ratio_ = 1.0;
 }
 
   ratio_ = 1.0;
 }
 
+static Real
+default_height (Real len)
+{
+  // assume 20pt staff
+  // see fonts.doc
+  Real staff_space = 5.0;
+  Real h_inf = 2.0* staff_space;
+  Real r_0 = 0.33;
+  return h_inf * 2.0 / M_PI * atan ( M_PI * r_0 / (2.0 * h_inf) * len);
+}
+
 void
 Bezier_bow::blow_fit ()
 {
 void
 Bezier_bow::blow_fit ()
 {
-  Real len = curve_.control_[3][X_AXIS] ; 
-  Real ind = curve_.control_[1][X_AXIS] / len;
+  Real len = curve_.control_[3][X_AXIS]; 
   Real h = curve_.control_[1][Y_AXIS] * fit_factor () / len;
   Real h = curve_.control_[1][Y_AXIS] * fit_factor () / len;
-
-  // ugh. Unhardcode this
-  if (h > 4 * ind)
-    {
-      h = 4* ind; 
-    }
-
-  if (h > 0.8 + -2 * ind)
-    {
-      h = 0.8 - 2  *ind; 
-    }
-  
   curve_.control_[1][Y_AXIS] = h * len;
   curve_.control_[2][Y_AXIS] = h * len;  
   curve_.control_[1][Y_AXIS] = h * len;
   curve_.control_[2][Y_AXIS] = h * len;  
+  curve_.check_sanity ();
+}
+
+void
+Bezier_bow::de_uglyfy ()
+{
+  Real len = curve_.control_[3][X_AXIS] ; 
+  Real ff = fit_factor ();
+  for (int i = 1; i < 3; i++)
+    {
+      Real ind = abs (curve_.control_[(i-1)*3][X_AXIS]
+                     - curve_.control_[i][X_AXIS]) / len;
+      Real h = curve_.control_[i][Y_AXIS] * ff / len;
+
+      // ugh. Unhardcode this
+#if 0
+      // Too crude.
+      if (h > 4 * ind)
+       {
+         h = 4* ind; 
+       }
+#else
+      Real f = default_height (len) / len;
+      if (h > 2.0 * f)
+       {
+         h = 2.0 * f; 
+       }
+#endif
+      
+      if (h > 0.8 + -2 * ind)
+       {
+         h = 0.8 - 2  *ind; 
+       }
+      
+      curve_.control_[i][Y_AXIS] = h * len;  
+    } 
 
   curve_.check_sanity ();
 }
 
   curve_.check_sanity ();
 }
@@ -83,48 +117,139 @@ Bezier_bow::calc_enclosed_area_f () const
       Interval x;
       Interval y;
       if (i == 0)
       Interval x;
       Interval y;
       if (i == 0)
-       x = Interval (0, encompass_[1][X_AXIS]/2);
+       {
+         x = Interval (0, encompass_[1][X_AXIS] / 2);
+         y = Interval (0,
+                       curve_.get_other_coordinate (X_AXIS,
+                                                    encompass_[1][X_AXIS]
+                                                    / 2));
+       }
       else if (i == encompass_.size () - 1)
       else if (i == encompass_.size () - 1)
-       x = Interval ((encompass_[i-1][X_AXIS] + encompass_[i][X_AXIS])/2, 
-                     encompass_[i][X_AXIS]);
+       {
+         x = Interval ((encompass_[i-1][X_AXIS] + encompass_[i][X_AXIS])/2, 
+                       encompass_[i][X_AXIS]);
+         y = Interval (0,
+                       (curve_.get_other_coordinate (X_AXIS,
+                                                     (x[MIN] + x[MAX]) / 2)));
+       }
       else
       else
-       x = Interval ((encompass_[i-1][X_AXIS] + encompass_[i][X_AXIS])/2, 
-                     (encompass_[i][X_AXIS] + encompass_[i+1][X_AXIS])/2);
+       {
+         x = Interval ((encompass_[i-1][X_AXIS] + encompass_[i][X_AXIS]) / 2, 
+                       (encompass_[i][X_AXIS] + encompass_[i+1][X_AXIS]) / 2);
+         y = Interval (encompass_[i][Y_AXIS],
+                       (curve_.get_other_coordinate (X_AXIS, x[MIN])
+                        + curve_.get_other_coordinate (X_AXIS,
+                                                       (x[MIN] + x[MAX]) / 2)
+                        + curve_.get_other_coordinate (X_AXIS, x[MAX])) / 3);
+       }
       
       
-      y[MIN] = encompass_[i][Y_AXIS];
-      // solve_point (X, 0|Xmax) has no solutions...
-      y[MAX] = (x[MIN] ? curve_.get_other_coordinate (X_AXIS, x[MIN]) : 0
-               + curve_.get_other_coordinate (X_AXIS, (x[MIN] + x[MAX])/2)
-               + x[MAX] != encompass_.top ()[X_AXIS] ? curve_.get_other_coordinate (X_AXIS, x[MAX]) : 0)/3;
       Real da = x.length () * y.length ();
       Real da = x.length () * y.length ();
-      if (da > 0)
-       a += da;
+      a += da;
     }
   return a;
 }
 
     }
   return a;
 }
 
-void
-Bezier_bow::minimise_enclosed_area ()
+Array<Offset>
+Bezier_bow::area_gradient_offset_arr ()
 {
 {
+  Real len = curve_.control_[3][X_AXIS]; 
   Real area = calc_enclosed_area_f ();
   
   Real area = calc_enclosed_area_f ();
   
+  Real grow = len / 10.0;
   Array<Offset> da (2);
   for (int i=1; i < 3; i++)
     {
       for (Axis a=X_AXIS; a < NO_AXES; incr (a)) 
        {
          Real r = curve_.control_[i][a];
   Array<Offset> da (2);
   for (int i=1; i < 3; i++)
     {
       for (Axis a=X_AXIS; a < NO_AXES; incr (a)) 
        {
          Real r = curve_.control_[i][a];
-         curve_.control_[i][a] += 1;
-         da[i-1][a] = (calc_enclosed_area_f () - area) / area;
+         curve_.control_[i][a] += grow;
+         da[i-1][a] = (calc_enclosed_area_f () - area) / grow;
+         
          curve_.control_[i][a] = r;
        }
     }
          curve_.control_[i][a] = r;
        }
     }
+  return da;
+}
+
+void
+Bezier_bow::minimise_enclosed_area ()
+{
+  Real len = curve_.control_[3][X_AXIS]; 
+  Real beautiful = len * default_height (len) / 2.0;
+
+  DEBUG_OUT << to_str ("Beautiful: %f\n", beautiful);
+  DEBUG_OUT << to_str ("Length: %f\n", len);
+  int steps=2;
+  for (int i=0; i < steps; i++)
+    {
+      Real ff = fit_factor ();
+      if (!ff)
+       break;
+
+      DEBUG_OUT << to_str ("FitFac: %f\n", ff);
+
+      // slur must be higher at every point
+      if (ff > 1.01)
+       {
+         blow_fit ();
+         DEBUG_OUT << to_str ("Blown area: %f\n", calc_enclosed_area_f ());
+       }
+      else
+         DEBUG_OUT << to_str ("Init area: %f\n", calc_enclosed_area_f ());
+
+      Real area = calc_enclosed_area_f ();
+      
+
+      if (area <= beautiful)
+       break;
+
+      Array<Offset> da = area_gradient_offset_arr ();
+
+      /*
+       Urg: empiric cs
+            Small slurs are easily too asymmetric,
+            while big slurs are too symmetric
+
+            This makes short slurs strictly x-bound,
+            long slurs become y-bound.
+       */
+      Real ypct = 0.50;
+      //Real xpct = (0.07 * len * len / 1000.0) <? 0.80;
+      Real xpct = (0.1 * len * len * len / 100000.0) <? 0.80;
+
+      Real yu = (abs (curve_.control_[1][Y_AXIS] / da[0][Y_AXIS])
+                <? abs (curve_.control_[2][Y_AXIS] / da[1][Y_AXIS]))
+       * ypct;
+      Real xu = (abs (curve_.control_[1][X_AXIS] / da[0][X_AXIS])
+                <? abs ((curve_.control_[3][X_AXIS]
+                            - curve_.control_[2][X_AXIS]) / da[1][X_AXIS]))
+       * xpct;
+      Real u = yu <? xu;
+      DEBUG_OUT << to_str ("u (xu, yu): %f (%f, %f)\n", u, xu, yu);
+      DEBUG_OUT << to_str ("pct (x, y): (%f, %f)\n", xpct, ypct);
+
+      DEBUG_OUT << to_str ("da1: (%f, %f)\n", da[0][X_AXIS], da[0][Y_AXIS]);
+      DEBUG_OUT << to_str ("da2: (%f, %f)\n", da[1][X_AXIS], da[1][Y_AXIS]);
+
+      curve_.control_[1] -= da[0] * u;
+      curve_.control_[2] -= da[1] * u;
+    }
   
   
-  for (int i=1; i < 3; i++)
+
+  if (fit_factor () > 1.5)
+    blow_fit ();
+
+  DEBUG_OUT << to_str ("Exarea: %f\n", calc_enclosed_area_f ());
+  Real area = calc_enclosed_area_f ();
+  /*
+    Slurs that fit beautifully are not ugly
+   */
+  if (area > beautiful)
     {
     {
-      da[i-1] *= da[i-1].length () ? 1.0 / da[i-1].length () : 1.0;
-      curve_.control_[i] -= da[i-1] * curve_.control_[i].length ();
+      DEBUG_OUT << "DE-UGLYFY\n";
+      de_uglyfy ();
     }
     }
+
 }
 
 void
 }
 
 void
@@ -134,7 +259,7 @@ Bezier_bow::calculate ()
   if (fit_factor () > 1.0)
     {
       //    calc_tangent_controls ();
   if (fit_factor () > 1.0)
     {
       //    calc_tangent_controls ();
-      blow_fit ();
+      // blow_fit ();
       minimise_enclosed_area ();
     }
 }
       minimise_enclosed_area ();
     }
 }
@@ -256,7 +381,8 @@ Bezier_bow::calc_tangent_controls ()
 }
 
 /*
 }
 
 /*
-  The maximum amount that the encompass points stick out above the bezier curve.
+  max ( encompass.y / curve.y )
+  
  */
 Real
 Bezier_bow::fit_factor () const
  */
 Real
 Bezier_bow::fit_factor () const
@@ -264,7 +390,7 @@ Bezier_bow::fit_factor () const
   Real x1 = encompass_[0][X_AXIS];
   Real x2 = encompass_.top ()[X_AXIS];
 
   Real x1 = encompass_[0][X_AXIS];
   Real x2 = encompass_.top ()[X_AXIS];
 
-  Real factor = 1.0;
+  Real factor = 0.0;
   for (int i=1; i < encompass_.size ()-1; i++)
     {
       if (encompass_[i][X_AXIS] > x1 && encompass_[i][X_AXIS] < x2)
   for (int i=1; i < encompass_.size ()-1; i++)
     {
       if (encompass_[i][X_AXIS] > x1 && encompass_[i][X_AXIS] < x2)
@@ -342,3 +468,4 @@ Bezier_bow::calc_default ()
 
 
 
 
 
 
+
index b8d1744fb4cc298209d84038f2f97b34ba127537..481d30bca713b4c7335cf3542176dfec5a55b89a 100644 (file)
@@ -83,14 +83,14 @@ Crescendo * me = (Crescendo*)this;
   m->dim_.x () = Interval (0, width);
   m->dim_.y () = Interval (-2*height, 2*height);
 
   m->dim_.x () = Interval (0, width);
   m->dim_.y () = Interval (-2*height, 2*height);
 
-  Atom *a = new Atom(gh_list (ly_symbol2scm (hairpin),
+  SCM at = gh_list (ly_symbol2scm (hairpin),
                     gh_double2scm (thick),
                     gh_double2scm (width),
                     gh_double2scm (height),
                     gh_double2scm (continued ? height/2 : 0.0),
                     gh_double2scm (thick),
                     gh_double2scm (width),
                     gh_double2scm (height),
                     gh_double2scm (continued ? height/2 : 0.0),
-                    SCM_UNDEFINED));
+                    SCM_UNDEFINED);
 
 
-  m->add_atom (a->self_scm_);
+  m->add_atom (at);
   m->translate_axis (extra_left, X_AXIS);
   return m;
 }
   m->translate_axis (extra_left, X_AXIS);
   return m;
 }
index 005499624b6a1b3f0d743dec272a63ec5bc48526..69ff282b0a929ec1f3bb13a89795bc16e600e8c8 100644 (file)
@@ -90,16 +90,16 @@ Dimension_cache::get_offset () const
 Dimension_cache *
 Dimension_cache::common_refpoint (Dimension_cache const* s) const
 {
 Dimension_cache *
 Dimension_cache::common_refpoint (Dimension_cache const* s) const
 {
-  Link_array<Dimension_cache> my_groups;
-  for (Dimension_cache const *c = this; c ; c = c->parent_l_)
-    my_groups.push ((Dimension_cache*)c);
-  
-  Dimension_cache const *common=0;
-  
-  for (Dimension_cache const * d = s; !common && d; d = d->parent_l_)
-    common = (Dimension_cache const*)my_groups.find_l (d);
-
-  return (Dimension_cache*) common;
+  /*
+    I don't like the quadratic aspect of this code. Maybe this should
+    be rewritten some time, but the largest chain of parents might be
+    10 high or so, so it shouldn't be a real issue. */
+  for (Dimension_cache const *c = this; c; c = c->parent_l_)
+    for (Dimension_cache const * d = s; d; d = d->parent_l_)
+      if (d == c)
+       return (Dimension_cache*)d;
+
+  return 0;
 }
 
 Interval
 }
 
 Interval
index 877cdd999ec19dd6bef3e5e90af5d63282a36e76..10b6fcb3645fdf377940927f0ea04fadae5b1601 100644 (file)
@@ -9,35 +9,12 @@
 #ifndef ATOM_HH
 #define ATOM_HH
 
 #ifndef ATOM_HH
 #define ATOM_HH
 
-#include "protected-scm.hh"
-#include "string.hh"
-#include "box.hh"
 #include "lily-proto.hh"
 #include "lily-proto.hh"
+#include "box.hh"
 #include "lily-guile.hh"
 #include "lily-guile.hh"
-#include "smobs.hh"
-
-/**
-   Atoms should only be created on the heap, ie. with
-   "new Atom"
- */
-class Atom {
-  Offset off_;
-
-  friend class Molecule;
-  friend class Paper_outputter;
-public:
-  Atom (SCM s);
-  Atom (Atom const&);
-  
-  DECLARE_SMOBS;
-
-  /*
-    SCM expression that (when evaluated) gives a TeX string
-representing a musical notation symbol.  */
-  SCM func_;
-  void fontify (Font_metric*);
-};
 
 
-Atom* unsmob_atom (SCM);
+SCM translate_atom (Offset, SCM);
+SCM translate_atom_axis (Real, Axis,SCM); 
+SCM fontify_atom (Font_metric*, SCM atom);
 
 #endif
 
 #endif
index 2997fa52e356f32708f7c022bc8bbebbb4785667..d442124a5c1d0f34efbdbb25bf3a42858c31d289 100644 (file)
@@ -23,11 +23,13 @@ class Bezier_bow
   Array<Offset> encompass_;
   
   void blow_fit ();
   Array<Offset> encompass_;
   
   void blow_fit ();
+  void de_uglyfy ();
   void calc_default ();
   void to_canonic_form ();
   void calc_tangent_controls ();
   Real calc_enclosed_area_f () const;
   void minimise_enclosed_area ();
   void calc_default ();
   void to_canonic_form ();
   void calc_tangent_controls ();
   Real calc_enclosed_area_f () const;
   void minimise_enclosed_area ();
+  Array<Offset> area_gradient_offset_arr ();
 
   Real fit_factor () const;
 
 
   Real fit_factor () const;
 
index e8ac64c183e68affdce2a1ff78c8663edb594e3b..c4b3dfbad3d6ca56efe42be084b1de3def0a7e2b 100644 (file)
 class Item : public virtual Score_element {
   void do_break ();
   void try_visibility_lambda ();
 class Item : public virtual Score_element {
   void do_break ();
   void try_visibility_lambda ();
+public:
+  /*
+    ugh.
+   */
   Drul_array<Item*> broken_to_drul_;
 
 
   Drul_array<Item*> broken_to_drul_;
 
 
index 28cf68fa91959506904208e434b227e91f74fb07..8d808ac4039208a140aee1bc946175836c90181f 100644 (file)
@@ -21,7 +21,7 @@ SCM ly_symbol2scm (char const *);
 String ly_symbol2string (SCM);
 
 SCM ly_offset2scm (Offset o);
 String ly_symbol2string (SCM);
 
 SCM ly_offset2scm (Offset o);
-
+Offset ly_scm2offset (SCM s);
 SCM ly_eval (SCM a);
 SCM ly_parse_scm (char const* s, int* n);
 SCM ly_quote_scm (SCM s);
 SCM ly_eval (SCM a);
 SCM ly_parse_scm (char const* s, int* n);
 SCM ly_quote_scm (SCM s);
index 52a930409ce82894e7d887e5fbf78b6721bb66eb..af8c468994ea0e53f9a7d2cdfe3d5ac72de960bd 100644 (file)
@@ -18,7 +18,6 @@ struct Adobe_font_metric;
 struct Align_element;
 struct All_font_metrics;
 struct Articulation_req;
 struct Align_element;
 struct All_font_metrics;
 struct Articulation_req;
-struct Atom;
 struct Audio_column;
 struct Audio_element;
 struct Audio_element_info;
 struct Audio_column;
 struct Audio_element;
 struct Audio_element_info;
index df5f2532541488171fba727d56be88e214155320..54696d104082ba638af328620e82c01c58a55e69 100644 (file)
@@ -9,7 +9,8 @@
 
 #ifndef TRANSLATOR_HH
 #define TRANSLATOR_HH
 
 #ifndef TRANSLATOR_HH
 #define TRANSLATOR_HH
- #include <typeinfo>
+
+#include <typeinfo>
 #include "global-ctor.hh"
 #include "string.hh"
 #include "lily-proto.hh"
 #include "global-ctor.hh"
 #include "string.hh"
 #include "lily-proto.hh"
index de429e895409b8797f4873a859e0025851e00a8e..e20141319792a79f8b16e235319141cf5b9ca7c4 100644 (file)
@@ -25,7 +25,8 @@ public:
   void add_column (Note_column*);
   void add_beam (Beam*);
 protected:
   void add_column (Note_column*);
   void add_beam (Beam*);
 protected:
-  void calc_position_and_height (Real*,Real*)const;
+  void calc_dy (Real *) const;
+  void calc_position_and_height (Real*,Real *dy)const;
   
   virtual Molecule* do_brew_molecule_p () const;
   VIRTUAL_COPY_CONS(Score_element);
   
   virtual Molecule* do_brew_molecule_p () const;
   VIRTUAL_COPY_CONS(Score_element);
index 036bd19039bfe4614ba41f1a2f6291c56d9802f8..0ed09ec2de6e83fd1b810e93a9c7e2ecddb6b2cd 100644 (file)
@@ -91,9 +91,6 @@ ly_parse_scm (char const* s, int* n)
   return answer;
 }
 
   return answer;
 }
 
-/*
-  scm_m_quote doesn't use any env, but needs one for a good signature in GUILE.
-*/
 SCM
 ly_quote_scm (SCM s)
 {
 SCM
 ly_quote_scm (SCM s)
 {
@@ -335,3 +332,10 @@ ly_offset2scm (Offset o)
 {
   return gh_cons (gh_double2scm (o[X_AXIS]), gh_double2scm(o[Y_AXIS]));
 }
 {
   return gh_cons (gh_double2scm (o[X_AXIS]), gh_double2scm(o[Y_AXIS]));
 }
+
+Offset
+ly_scm2offset (SCM s)
+{
+  return Offset (gh_scm2double (gh_car (s)),
+                gh_scm2double (gh_cdr (s)));
+}
index f074bab26a7c55b2b858ea5079339f83016898f9..28a50a073eeb96b44316f1950668ac6cc15eb218 100644 (file)
@@ -66,13 +66,13 @@ Lookup::afm_find (String s, bool warn) const
       return m;
     }
   
       return m;
     }
   
-  Atom* at = new Atom (gh_list (ly_symbol2scm ("char"),
+  SCM at =  (gh_list (ly_symbol2scm ("char"),
                    gh_int2scm (cm->code),
                    SCM_UNDEFINED));
 
                    gh_int2scm (cm->code),
                    SCM_UNDEFINED));
 
-  at->fontify (afm_l_);
+  at= fontify_atom (afm_l_,at);
   m.dim_ = afm_bbox_to_box (cm->charBBox);
   m.dim_ = afm_bbox_to_box (cm->charBBox);
-  m.add_atom (at->self_scm_);
+  m.add_atom (at);
   return m;
 }
 
   return m;
 }
 
@@ -182,14 +182,13 @@ Lookup::beam (Real slope, Real width, Real thick)
   m.dim_[Y_AXIS] = Interval (min_y, max_y);
 
   
   m.dim_[Y_AXIS] = Interval (min_y, max_y);
 
   
-  Atom *at = new Atom
-    (gh_list (ly_symbol2scm ("beam"),
+  SCM at = (gh_list (ly_symbol2scm ("beam"),
              gh_double2scm (width),
              gh_double2scm (slope),
              gh_double2scm (thick),
              SCM_UNDEFINED));
 
              gh_double2scm (width),
              gh_double2scm (slope),
              gh_double2scm (thick),
              SCM_UNDEFINED));
 
-  m.add_atom (at->self_scm_);
+  m.add_atom (at);
   return m;
 }
 
   return m;
 }
 
@@ -204,13 +203,13 @@ Lookup::dashed_slur (Bezier b, Real thick, Real dash)
       l = gh_cons (ly_offset2scm (b.control_[i]), l);
     }
 
       l = gh_cons (ly_offset2scm (b.control_[i]), l);
     }
 
-  Atom *at = new Atom(gh_list (ly_symbol2scm ("dashed-slur"),
+  SCM at = (gh_list (ly_symbol2scm ("dashed-slur"),
                               gh_double2scm (thick), 
                               gh_double2scm (dash),
                               ly_quote_scm (l),
                               SCM_UNDEFINED));
   Molecule m;
                               gh_double2scm (thick), 
                               gh_double2scm (dash),
                               ly_quote_scm (l),
                               SCM_UNDEFINED));
   Molecule m;
-  m.add_atom (at->self_scm_);
+  m.add_atom (at);
   return m;
 }
 
   return m;
 }
 
@@ -231,7 +230,7 @@ Lookup::filledbox (Box b )
 {
   Molecule m;
   
 {
   Molecule m;
   
-  Atom* at  = new Atom(gh_list (ly_symbol2scm ("filledbox"),
+  SCM  at  = (gh_list (ly_symbol2scm ("filledbox"),
                     gh_double2scm (-b[X_AXIS][LEFT]),
                     gh_double2scm (b[X_AXIS][RIGHT]),                 
                     gh_double2scm (-b[Y_AXIS][DOWN]),
                     gh_double2scm (-b[X_AXIS][LEFT]),
                     gh_double2scm (b[X_AXIS][RIGHT]),                 
                     gh_double2scm (-b[Y_AXIS][DOWN]),
@@ -239,7 +238,7 @@ Lookup::filledbox (Box b )
                     SCM_UNDEFINED));
 
   m.dim_ = b;
                     SCM_UNDEFINED));
 
   m.dim_ = b;
-  m.add_atom (at->self_scm_);
+  m.add_atom (at);
   return m;
 }
 
   return m;
 }
 
@@ -364,12 +363,12 @@ Lookup::text (String style, String text, Paper_def *paper_l)
     
   m.dim_ = metric_l->text_dimension (text);
   
     
   m.dim_ = metric_l->text_dimension (text);
   
-  Atom *at = new Atom (gh_list (ly_symbol2scm ("text"),
+  SCM at = (gh_list (ly_symbol2scm ("text"),
                     ly_str02scm (text.ch_C()),
                     SCM_UNDEFINED));
                     ly_str02scm (text.ch_C()),
                     SCM_UNDEFINED));
-  at->fontify (metric_l);
+  at = fontify_atom (metric_l,at);
   
   
-  m.add_atom (at->self_scm_);
+  m.add_atom (at);
   return m;
 }
   
   return m;
 }
   
@@ -393,13 +392,13 @@ Lookup::staff_brace (Real y, int staff_size)
     nm = ly_scm2string (gh_cdr (l));
   nm += to_str (staff_size);
   SCM e =gh_list (ly_symbol2scm ("char"), gh_int2scm (idx), SCM_UNDEFINED);
     nm = ly_scm2string (gh_cdr (l));
   nm += to_str (staff_size);
   SCM e =gh_list (ly_symbol2scm ("char"), gh_int2scm (idx), SCM_UNDEFINED);
-  Atom *at = new Atom (e);
+  SCM at = (e);
 
 
-  at->fontify (all_fonts_global_p->find_font (nm));
+  at = fontify_atom (all_fonts_global_p->find_font (nm), at);
   
   m.dim_[Y_AXIS] = Interval (-y/2,y/2);
   m.dim_[X_AXIS] = Interval (0,0);
   
   m.dim_[Y_AXIS] = Interval (-y/2,y/2);
   m.dim_[X_AXIS] = Interval (0,0);
-  m.add_atom (at->self_scm_);
+  m.add_atom (at);
   return m;
 }
  
   return m;
 }
  
@@ -434,7 +433,7 @@ Lookup::slur (Bezier curve, Real curvethick, Real linethick)
     }
   
   
     }
   
   
-  Atom *at = new Atom (gh_list (ly_symbol2scm ("bezier-sandwich"),
+  SCM at = (gh_list (ly_symbol2scm ("bezier-sandwich"),
                     ly_quote_scm (list),
                     gh_double2scm (linethick),
                     SCM_UNDEFINED));
                     ly_quote_scm (list),
                     gh_double2scm (linethick),
                     SCM_UNDEFINED));
@@ -442,7 +441,7 @@ Lookup::slur (Bezier curve, Real curvethick, Real linethick)
   Molecule m; 
   m.dim_[X_AXIS] = curve.extent (X_AXIS);
   m.dim_[Y_AXIS] = curve.extent (Y_AXIS);
   Molecule m; 
   m.dim_[X_AXIS] = curve.extent (X_AXIS);
   m.dim_[Y_AXIS] = curve.extent (Y_AXIS);
-  m.add_atom (at->self_scm_);
+  m.add_atom (at);
   return m;
 }
 
   return m;
 }
 
@@ -450,7 +449,7 @@ Molecule
 Lookup::staff_bracket (Real height, Paper_def* paper_l)
 {
   Molecule m;
 Lookup::staff_bracket (Real height, Paper_def* paper_l)
 {
   Molecule m;
-  Atom *at = new Atom  ( gh_list (ly_symbol2scm ("bracket"),
+  SCM at = ( gh_list (ly_symbol2scm ("bracket"),
                      gh_double2scm (paper_l->get_var("bracket_arch_angle")),
                      gh_double2scm (paper_l->get_var("bracket_arch_width")),
                      gh_double2scm (paper_l->get_var("bracket_arch_height")),
                      gh_double2scm (paper_l->get_var("bracket_arch_angle")),
                      gh_double2scm (paper_l->get_var("bracket_arch_width")),
                      gh_double2scm (paper_l->get_var("bracket_arch_height")),
@@ -460,7 +459,7 @@ Lookup::staff_bracket (Real height, Paper_def* paper_l)
                      gh_double2scm (paper_l->get_var("bracket_thick")),
                      SCM_UNDEFINED));
   
                      gh_double2scm (paper_l->get_var("bracket_thick")),
                      SCM_UNDEFINED));
   
-  m.add_atom (at->self_scm_);                           
+  m.add_atom (at);                              
   m.dim_[Y_AXIS] = Interval (-height/2,height/2);
   m.dim_[X_AXIS] = Interval (0,4 PT);
 
   m.dim_[Y_AXIS] = Interval (-height/2,height/2);
   m.dim_[X_AXIS] = Interval (0,4 PT);
 
index 45fa78b7ec5a5a019fd9a87d263e799beaf12ecc..f447d542d6e44738d8e117eebf5bca1addc56668 100644 (file)
@@ -5,6 +5,11 @@
 
   (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
   (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
+
+/*
+  ugh. Rewrite not finished yet. Still must copy atom lists.
+ */
+
 #include <math.h>
 
 #include "interval.hh"
 #include <math.h>
 
 #include "interval.hh"
@@ -38,7 +43,7 @@ Molecule::translate (Offset o)
     
   for (SCM ptr = gh_cdr (atom_list_);  ptr != SCM_EOL; ptr = gh_cdr(ptr))
     {
     
   for (SCM ptr = gh_cdr (atom_list_);  ptr != SCM_EOL; ptr = gh_cdr(ptr))
     {
-      unsmob_atom (gh_car (ptr))->off_ += o;
+      gh_set_car_x (ptr, translate_atom (o, gh_car (ptr)));
     }
   if (!empty_b ())
     dim_.translate (o);
     }
   if (!empty_b ())
     dim_.translate (o);
@@ -54,7 +59,7 @@ Molecule::translate_axis (Real x,Axis a)
     }
   for (SCM ptr = gh_cdr (atom_list_);  ptr != SCM_EOL; ptr = gh_cdr(ptr))
     {
     }
   for (SCM ptr = gh_cdr (atom_list_);  ptr != SCM_EOL; ptr = gh_cdr(ptr))
     {
-      unsmob_atom (gh_car (ptr))->off_[a] += x;
+      gh_set_car_x (ptr, translate_atom_axis (x, a, gh_car (ptr)));
     }
 
   if (!dim_[a].empty_b ())
     }
 
   if (!dim_[a].empty_b ())
@@ -66,8 +71,7 @@ Molecule::add_molecule (Molecule const &m)
 {
   for (SCM ptr = gh_cdr (m.atom_list_);  ptr != SCM_EOL; ptr = gh_cdr(ptr))
     {
 {
   for (SCM ptr = gh_cdr (m.atom_list_);  ptr != SCM_EOL; ptr = gh_cdr(ptr))
     {
-      Atom *a = new Atom (*unsmob_atom (gh_car (ptr)));
-      add_atom (a->self_scm_);
+      add_atom (gh_car (ptr));
     }
   dim_.unite (m.dim_);
 }
     }
   dim_.unite (m.dim_);
 }
@@ -77,8 +81,6 @@ Molecule::add_atom (SCM atomsmob)
 {
   gh_set_cdr_x (atom_list_,
                gh_cons  (atomsmob, gh_cdr (atom_list_)));
 {
   gh_set_cdr_x (atom_list_,
                gh_cons  (atomsmob, gh_cdr (atom_list_)));
-
-  scm_unprotect_object (atomsmob);
 }
 
 void
 }
 
 void
@@ -87,9 +89,8 @@ Molecule::operator=(Molecule const & src)
   if (&src == this)
     return;
 
   if (&src == this)
     return;
 
-  atom_list_ = gh_cons (SCM_EOL,SCM_EOL);
+  atom_list_ = gh_cons (SCM_EOL,scm_list_copy (gh_cdr (src.atom_list_)));
   dim_= src.dim_;
   dim_= src.dim_;
-  add_molecule (src);
 }
 
 void
 }
 
 void
@@ -118,9 +119,8 @@ Molecule::print () const
 
 Molecule::Molecule (Molecule const &s)
 {
 
 Molecule::Molecule (Molecule const &s)
 {
-  atom_list_ = gh_cons (SCM_EOL, SCM_EOL);
-  set_empty (true);
-  add_molecule (s);
+  atom_list_ = gh_cons (SCM_EOL, scm_list_copy (gh_cdr (s.atom_list_)));
+  dim_ = s.dim_;
 }
 
 Molecule::~Molecule ()
 }
 
 Molecule::~Molecule ()
index c8dbed177dcba4a0d42a4697f83ed2e736c981b6..f3863b13bd202634c9f5909d0aa7ea4d7070f904 100644 (file)
@@ -79,17 +79,30 @@ Paper_outputter::output_molecule (Molecule const*m, Offset o, char const *nm)
     {
       output_comment (nm);
     }
     {
       output_comment (nm);
     }
-      
+
+  SCM offset_sym = ly_symbol2scm ("translate-atom"); 
   for (SCM ptr = gh_cdr (m->atom_list_); ptr != SCM_EOL; ptr = gh_cdr (ptr))
     {
   for (SCM ptr = gh_cdr (m->atom_list_); ptr != SCM_EOL; ptr = gh_cdr (ptr))
     {
-      Atom * i = unsmob_atom (gh_car (ptr));
+      SCM func =  gh_car (ptr);
+      SCM funcptr = func;
 
 
-      Offset a_off = i->off_;
+      Offset a_off (0,0);
+      while (gh_pair_p (funcptr))
+       {
+         if (gh_car (funcptr) == offset_sym)
+           {
+             SCM quot = gh_cadr (funcptr);
+             a_off += ly_scm2offset (gh_cadr (quot));
+           }
+         funcptr = scm_last_pair (funcptr);
+         if (funcptr != SCM_EOL )
+           {
+             funcptr = gh_car (funcptr);
+           }
+       }
+      
       a_off += o;
       a_off += o;
-
-      if (!i->func_)
-       continue; 
-
+      
       Axis a = X_AXIS;
       while (a < NO_AXES)
        {
       Axis a = X_AXIS;
       while (a < NO_AXES)
        {
@@ -107,7 +120,7 @@ Paper_outputter::output_molecule (Molecule const*m, Offset o, char const *nm)
        = gh_list (ly_symbol2scm ("placebox"),
                   gh_double2scm (a_off[X_AXIS]),
                   gh_double2scm (a_off[Y_AXIS]),
        = gh_list (ly_symbol2scm ("placebox"),
                   gh_double2scm (a_off[X_AXIS]),
                   gh_double2scm (a_off[Y_AXIS]),
-                  SCM(i->func_),
+                  func,
                   SCM_UNDEFINED);
 
       output_scheme (box_scm);
                   SCM_UNDEFINED);
 
       output_scheme (box_scm);
@@ -133,21 +146,6 @@ Paper_outputter::output_scheme (SCM scm)
 }
 
 
 }
 
 
-int
-count_cells (SCM s)
-{
-  if (Atom * a = unsmob_atom (s))
-    {
-      return 2 + count_cells (a->func_);
-    }
-  else if (gh_pair_p (s))
-    {
-      return 2 + count_cells (gh_car (s))+ count_cells (gh_cdr (s));
-    }
-  else
-    return 1;
-}
-
 void
 Paper_outputter::dump_onto (Paper_stream *ps)
 {
 void
 Paper_outputter::dump_onto (Paper_stream *ps)
 {
index bb8cd0d4742f1823e8dc9501e9f86048127d9553..6bd6e33e0507530b68c9ffeed23e343ef72bb4ec 100644 (file)
@@ -110,7 +110,6 @@ Paper_score::calc_breaking ()
 void
 Paper_score::process ()
 {
 void
 Paper_score::process ()
 {
-
   print ();
   progress_indication (_ ("Preprocessing elements...") + " ");
   line_l_->breakable_col_processing ();
   print ();
   progress_indication (_ ("Preprocessing elements...") + " ");
   line_l_->breakable_col_processing ();
index 39d1d26c700d4914b4cacf52da07f9e9f630505e..63a89e500f630105df6ed02fc2c793eb3348399c 100644 (file)
@@ -434,7 +434,6 @@ Score_element::handle_broken_dependencies()
   if (original_l_ && s)
     return;
 
   if (original_l_ && s)
     return;
 
-
   if (s)
     {
       for (int i = 0;  i< s->broken_into_l_arr_ .size (); i++)
   if (s)
     {
       for (int i = 0;  i< s->broken_into_l_arr_ .size (); i++)
index 57a01433b34d18285a87529d7740bfda176b38a4..bc64fd20c4f35e8ad537c038ade4da51908c2f10 100644 (file)
@@ -623,3 +623,4 @@ Slur::get_curve () const
   return curve;
 }
 
   return curve;
 }
 
+       
index a91d2170c450b7d6b449b29fd7e8b1b78e82d883..547163f457979d3e93ecf56b06ff21602514edcd 100644 (file)
@@ -101,7 +101,8 @@ Staff_performer::new_instrument_str ()
   if (!gh_string_p(minstr))
     minstr = get_property (ly_symbol2scm ("instrument"), 0);
 
   if (!gh_string_p(minstr))
     minstr = get_property (ly_symbol2scm ("instrument"), 0);
 
-  if (ly_scm2string (minstr) == instrument_str_)
+  if (!gh_string_p (minstr)
+      || ly_scm2string (minstr) == instrument_str_)
     return "";
 
   instrument_str_ = ly_scm2string (minstr);
     return "";
 
   instrument_str_ = ly_scm2string (minstr);
index 989861002c8890150dc0f7ebbcaf550245691736..b96a815dfa3b6a4df8b40d7dcc5f3564d0847976 100644 (file)
@@ -241,7 +241,7 @@ Tie::get_curve () const
       Real y0 = c.control_ [0][Y_AXIS];
       c.control_[2][Y_AXIS] = 
       c.control_[1][Y_AXIS] =
       Real y0 = c.control_ [0][Y_AXIS];
       c.control_[2][Y_AXIS] = 
       c.control_[1][Y_AXIS] =
-       (c.control_[1][Y_AXIS] - y0)  * (newy / y) + y0; 
+       (c.control_[1][Y_AXIS] - y0)  * ((newy - y0) / (y - y0)) + y0; 
     }
   else
     programming_error ("Tie is nowhere horizontal");
     }
   else
     programming_error ("Tie is nowhere horizontal");
index f80b2c49de598672e9b21968e9fc269d0c48bde8..743f843cb29224c93f4dc04a353c9a49a47c4e50 100644 (file)
@@ -260,7 +260,6 @@ Translator_group::ancestor_l (int level)
 void
 Translator_group::terminate_translator (Translator*r_l)
 {
 void
 Translator_group::terminate_translator (Translator*r_l)
 {
-  DEBUG_OUT << "Removing " << classname (r_l) << " at " << now_mom () << '\n';
   r_l->removal_processing();
   Translator * trans_p =remove_translator_p (r_l);
 
   r_l->removal_processing();
   Translator * trans_p =remove_translator_p (r_l);
 
index 2a1098181386c10bccb1fbfa43f86a8255378602..766b636fe0d18317df743708365c44173ff33d53 100644 (file)
@@ -90,16 +90,16 @@ Tuplet_spanner::do_brew_molecule_p () const
        {
          Real gap = paper_l () -> get_var ("tuplet_spanner_gap");
          Real height = staff_space;
        {
          Real gap = paper_l () -> get_var ("tuplet_spanner_gap");
          Real height = staff_space;
-         Atom *at = new Atom (gh_list(ly_symbol2scm ("tuplet"),
+         SCM at =gh_list(ly_symbol2scm ("tuplet"),
                                       gh_double2scm (height),
                                       gh_double2scm (gap),
                                       gh_double2scm (w),
                                       gh_double2scm (dy),
                                       gh_double2scm (thick),
                                       gh_int2scm (dir),
                                       gh_double2scm (height),
                                       gh_double2scm (gap),
                                       gh_double2scm (w),
                                       gh_double2scm (dy),
                                       gh_double2scm (thick),
                                       gh_int2scm (dir),
-                                      SCM_UNDEFINED));
+                                      SCM_UNDEFINED);
 
 
-         mol_p->add_atom (at->self_scm_);
+         mol_p->add_atom (at);
        }
 
       mol_p->translate_axis (dir * staff_space, Y_AXIS);
        }
 
       mol_p->translate_axis (dir * staff_space, Y_AXIS);
@@ -120,6 +120,8 @@ Tuplet_spanner::do_add_processing ()
     }
 }
 
     }
 }
 
+
+
 /*
   use first -> last note for slope, and then correct for disturbing
   notes in between.  */
 /*
   use first -> last note for slope, and then correct for disturbing
   notes in between.  */
@@ -131,8 +133,26 @@ Tuplet_spanner::calc_position_and_height (Real *offset, Real * dy) const
 
  
   Direction d = directional_element (this).get ();
 
  
   Direction d = directional_element (this).get ();
-  *dy = column_arr.top ()->extent (Y_AXIS) [d]
-    - column_arr[0]->extent (Y_AXIS) [d];
+
+  /*
+    Use outer non-rest columns to determine slope
+   */
+  int l = 0;
+  while (l <column_arr.size() && column_arr[l]->rest_b())
+    l ++;
+
+  int r = column_arr.size ()- 1;
+  while (r >= l && column_arr[r]->rest_b())
+    r--;
+  
+  if (l < r)
+    {
+      *dy = column_arr[r]->extent (Y_AXIS) [d]
+       - column_arr[l]->extent (Y_AXIS) [d];
+    }
+  else
+    * dy = 0;
+
 
   *offset = - d * infinity_f;
   
 
   *offset = - d * infinity_f;
   
@@ -152,6 +172,21 @@ Tuplet_spanner::calc_position_and_height (Real *offset, Real * dy) const
     }
 }
 
     }
 }
 
+/*
+  use first -> last note for slope,
+*/
+void
+Tuplet_spanner::calc_dy (Real * dy) const
+{
+  Link_array<Note_column> column_arr=
+    Group_interface__extract_elements (this, (Note_column*)0, "columns");
+
+  Direction d = directional_element (this).get ();
+  *dy = column_arr.top ()->extent (Y_AXIS) [d]
+    - column_arr[0]->extent (Y_AXIS) [d];
+}
+
 void
 Tuplet_spanner::do_post_processing ()
 {
 void
 Tuplet_spanner::do_post_processing ()
 {
@@ -174,7 +209,9 @@ Tuplet_spanner::do_post_processing ()
     }
   Real dy, offset;
 
     }
   Real dy, offset;
 
-  calc_position_and_height (&offset, &dy);
+calc_position_and_height  (&offset,&dy);
+  // calc_position (&offset, dy);
+  
   set_elt_property ("delta-y", gh_double2scm (dy));
 
   translate_axis (offset, Y_AXIS);
   set_elt_property ("delta-y", gh_double2scm (dy));
 
   translate_axis (offset, Y_AXIS);
index 72ace70c4f1f1c30399b55cd848b790ef5de5be1..fba5da483193ee74d88c127e5311fcd35754373b 100644 (file)
@@ -70,7 +70,7 @@ Volta_spanner::do_brew_molecule_p () const
 
   Molecule volta; 
 
 
   Molecule volta; 
 
-  Atom *at = new Atom(gh_list (ly_symbol2scm ("volta"),
+  SCM at = (gh_list (ly_symbol2scm ("volta"),
                     gh_double2scm (h),
                     gh_double2scm (w),
                     gh_double2scm (t),
                     gh_double2scm (h),
                     gh_double2scm (w),
                     gh_double2scm (t),
@@ -80,7 +80,7 @@ Volta_spanner::do_brew_molecule_p () const
 
   volta.dim_[Y_AXIS] = Interval (- h/2, h/2);
   volta.dim_[X_AXIS] = Interval (0, w);
 
   volta.dim_[Y_AXIS] = Interval (- h/2, h/2);
   volta.dim_[X_AXIS] = Interval (0, w);
-  volta.add_atom (at->self_scm_);
+  volta.add_atom (at);
   
   Molecule num (lookup_l ()->text ("volta",
                                   ly_scm2string (get_elt_property("text")),
   
   Molecule num (lookup_l ()->text ("volta",
                                   ly_scm2string (get_elt_property("text")),
index 35b8afd3be33d83ec672ba1ad70543dfd6b741a3..8fd98809577ecb3999512695b462c4abaf01232a 100644 (file)
@@ -3,8 +3,8 @@
 all: $(OUT_FILES)
 
 local-WWW: $(ly_examples) $(fly_examples) $(ps_examples) $(png_examples)
 all: $(OUT_FILES)
 
 local-WWW: $(ly_examples) $(fly_examples) $(ps_examples) $(png_examples)
-       (cd $(outdir); $(PYTHON) ../$(buildscripts)/mutopia-index.py --prefix=../ --suffix=/$(outdir) $(html_subdirs) $(all_examples))
-       echo $^ > $(depth)/wwwlist
+#      (cd $(outdir); $(PYTHON) ../$(buildscripts)/mutopia-index.py --prefix=../ --suffix=/$(outdir) $(html_subdirs) $(all_examples))
+#      echo $^ > $(depth)/wwwlist
 #      $(footify) $(outdir)/index.html
 
 local-web:
 #      $(footify) $(outdir)/index.html
 
 local-web:
index 568d4527b90f49de4a46651ad78808ca86442660..682abaf587c24698ddf70cd97f062c9f17e82cb6 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
 Begin3
 Title: LilyPond
-Version: 1.3.27
-Entered-date: 24FEB00
+Version: 1.3.28
+Entered-date: 01MAR00
 Description: 
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
 Description: 
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       1000k lilypond-1.3.27.tar.gz 
+       1000k lilypond-1.3.28.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.3.27.tar.gz 
+       1000k lilypond-1.3.28.tar.gz 
 Copying-policy: GPL
 End
 Copying-policy: GPL
 End
index 06fa453754e28c3febf3a4406b03fb349a6feebf..c51ae7c22eb4a77d0fa188103ff22930f46ed118 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
 Name: lilypond
-Version: 1.3.27
+Version: 1.3.28
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.27.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.28.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 # get Packager from (undocumented?) ~/.rpmmacros!
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 # get Packager from (undocumented?) ~/.rpmmacros!
index f23ac55661de52ff97d0c692fa57a73c6c51d5ac..ed42272d1a0eea64bc30728c5b325975ed30f5ab 100644 (file)
@@ -36,6 +36,10 @@ examples:
        $(MAKE) CONFIGSUFFIX='www' -C input WWW
        $(MAKE) CONFIGSUFFIX='www' -C mutopia WWW
        $(footify-all-command)
        $(MAKE) CONFIGSUFFIX='www' -C input WWW
        $(MAKE) CONFIGSUFFIX='www' -C mutopia WWW
        $(footify-all-command)
+       $(PYTHON) $(buildscripts)/mutopia-index.py -o short-examples.html input/
+       $(PYTHON) $(buildscripts)/mutopia-index.py -o long-examples.html mutopia/
+
+
        tar --exclude='*.dvi' --exclude='*.tex' --exclude='*.ps' --exclude='*.ppm' -czf $(outdir)/examples.tar.gz  `find input mutopia -type d -name 'out-www' -print`
 
 localinstall:
        tar --exclude='*.dvi' --exclude='*.tex' --exclude='*.ps' --exclude='*.ppm' -czf $(outdir)/examples.tar.gz  `find input mutopia -type d -name 'out-www' -print`
 
 localinstall:
index a1129ad5ad55cf90162876fe7d07e2a0001e32c4..3484e938c41d16d60d8b26e884b9623895561d11 100644 (file)
@@ -2,7 +2,7 @@
 
 depth = ..
 
 
 depth = ..
 
-SUBDIRS = J.S.Bach Coriolan W.A.Mozart F.Schubert D.Zipoli Hymns L.Mozart E.Satie N.W.Gade
+SUBDIRS = J.S.Bach Coriolan F.Schubert D.Zipoli Hymns L.Mozart E.Satie N.W.Gade
 
 examples= 
 LOCALSTEPMAKE_TEMPLATES=mutopia
 
 examples= 
 LOCALSTEPMAKE_TEMPLATES=mutopia
diff --git a/mutopia/W.A.Mozart/GNUmakefile b/mutopia/W.A.Mozart/GNUmakefile
deleted file mode 100644 (file)
index bc10564..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# mutopia/W.A.Mozart
-
-depth = ../..
-
-examples=# cadenza
-SUBDIRS=horn-concerto-3
-LOCALSTEPMAKE_TEMPLATES=mutopia
-
-include $(depth)/make/stepmake.make
-
-
diff --git a/mutopia/W.A.Mozart/horn-concerto-3/GNUmakefile b/mutopia/W.A.Mozart/horn-concerto-3/GNUmakefile
deleted file mode 100644 (file)
index 13fb5e5..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-depth = ../../..
-
-examples=
-SUBDIRS=
-LOCALSTEPMAKE_TEMPLATES=mutopia
-
-include $(depth)/make/stepmake.make
-
-
diff --git a/mutopia/W.A.Mozart/horn-concerto-3/allegro.ly b/mutopia/W.A.Mozart/horn-concerto-3/allegro.ly
deleted file mode 100644 (file)
index 2352cb5..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-allegro =
-       \notes
-       \relative c'
-{
-       \time 4/4;
-       r4 |
-       R1*4
-       c'2^"tutti" g
-       c, r
-       R1*1
-       r8 [g' g g] [g g e c]
-       g'4 g, r2
-       R1*18
-       r2 r4 g'4 |
-       e'4. () c8 [f (d c )b ]
-       [b()c] g4 r8 [g-. c-. e-.]
-       g2. ( [g16-.( f e ))f]
-       dis4 () e4-- r8 [c8-. c-. c-.]
-       c4.( [d16 )e]  f4 () e
-       a,() d g,() c
-       d-. d-. \grace e16( [)d8. c16 d8. e16]
-       c4 r r2
-       R1*3
-       c,2 ~ [c8 e( g )c]
-       [c () b ] b4-. r2
-       [c,8 () e g c] [e()g e c]
-       [c()b] b4-- r2
-       c4.() g8 e'4.() c8
-       [g'()d ] d4-- r4 d
-       [d8 () c] c4.( [d16 e] [d8 )c]
-       [c8(-\trill )b] b4 r2 |
-       d2( ~  [d8 e16 d] [c8 )b] |
-       [b()a-.] a4-> r8 [a-. a-. a-.]
-       a4 cis e g
-       \grace { \longgrace g16( }
-       [ fis8 e16 )d] d4-. r2 | 
-       \mark "B";
-       R1*3
-       r2 r4 [d8 (b ]
-       [a )g d'( b] [a )g e'( c ]
-       [b8 )a] a4 r4 [a8-. a-.]
-       [a( \< b c \!cis\< ]  d4 \! )c
-       [ais8() b] r8 b [b()c] r c
-       [cis ()d] r4 r2
-       g,1 ~ g2 ~ [g8 a16 b] [c()d e c]
-       f4-. d-. b-. g-.
-       r1
-       \emptyText
-       c,2\p e4 g c_\cresc e g4. e8 |
-       d4. [e16 fis] [g () fis e d] [c() b a g]
-       a1(-\trill \grace{ [g16 a] }
-       )g4 r r2
-       R1*15
-       \mark "D";
-       bes2-\mf d4 f
-       g,2~ [g8 g'( es )c]|
-       bes4( )a4. [c8 d es]
-       cis4()d r8 [bes (c )d]
-       es2 () d4 r
-       es2\p () d4 r
-       [c8(\mf g' es )c] bes4()c-.
-       c4.( cis8 )d4 r
-       R1*2
-       es1~es1|
-       e!
-       d
-       c
-       c,
-       e'
-       e,
-       c'2 [b8( a gis )a]
-       [gis8 e gis b ] e4 r |
-       r8 [e, a c] dis4 r
-       r8 [e, a c] dis4 r
-       r8 [e, g b] e4 r
-       r8 [fis, b dis] fis4 r
-       r8 [gis, b d] f4 r
-       r8 [g, b d_"rit."] f4 r
-       \mark  "E";
-       R1*8
-       r2 r8 [g,-. g-. g-.]
-       e'4.() c8 [f( d c )b]
-       [b()c] g4 r8 [g c e] |
-       g2. ( [g16( f e ))f]
-       dis4()e r8 [c-. c-. c-.]
-       c4.( [d16 e] f4 )e
-       a, ( d g, )c
-       d d [
-           \grace { e8( }
-          d8. c16 d8. e16] 
-       c4 r r2
-       \mark "F";
-       R1*3
-       c,2~[c8( e g )c]
-       [c8()b] b4 r2
-       [c,8()e g c ] [e ()g e c]
-       [c()b] b4 r2
-       c2 (bes )a [a8(b c )cis]
-       d2( ~ [d8 e16 d] [\grace { \longgrace d16( } )c8 b16 )c]
-       \grace { \longgrace c16 }[ b8( a16 )g] g4 r2 |
-       R1*3
-       r2 r4 [g'8()e]
-       \mark "G";
-       [d()c g'()e] [d()c a'()f]
-       [e()d] d4 r [d8 d]
-       d4(~ [d16 e d )e] [g8() f e d] |
-       c4 r r2
-       r1
-       c1 ~
-       c |
-       [c8-. c-.] r c-. [cis()d] r d-. |
-       [dis()e] r e-. [e()f] r f-. |
-       g4-. e-. c-. bes-. |
-       g-.\ff e-. c-. r |
-       a'2 ~ [a8_"sempre f" b16 c] [d( e d )e]%TODO
-
-       f4. () d8 [f8 ()d f d]
-       [c (e] )g2 \grace  { \longgrace f16( }  [)e8( d16 )c]
-       \grace { \aftergrace [c16 d] }
-       d1-\trill 
-       c4 r r2
-       r1 |
-       \mark "H";
-       \times 2/3 { [ c8 ()b a ] }     \times 2/3 { [ g a b] } \times 2/3 { [ c d e] } \times 2/3 { [ f()e d] } |
-       \times 2/3 { [ c () b a ] } \times 2/3 { [ g a b] } \times 2/3 { [ c d e] } \times 2/3 { [ f()e d] }|
-       c4 \times 2/3 {  r8 [g'()e]} c4 \times 2/3 {  r8 [e () c]} |
-       g4 \times 2/3 {  r8 [c8() g] } \times 2/3 { [ e ()g e] } \times 2/3 { [c ()e c] }|
-       g4 r8 g'\f [a b c d]|
-       \grace { \aftergrace [c16 d] }
-       d1(-\trill
-       )c4 r r2
-       R1*3
-       \grace{ \aftergrace [c16 d] }
-       c1-\trill_"Cadenza ad lib." ( 
-       )c4 r r2
-       R1*2
-       r4 [c8.^"tutti"-\f c16] c4 c
-       c [c,8. c16] c4 c|
-       c2 r2 \bar "|.";
-       
-}
diff --git a/mutopia/W.A.Mozart/horn-concerto-3/cadenza.ly b/mutopia/W.A.Mozart/horn-concerto-3/cadenza.ly
deleted file mode 100644 (file)
index 414eb16..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-\header{
-  title =       "Konzert Nr. 3 Es dur";
-  subtitle = "Cadenza ad lib.";
-  enteredby =   "HWN";
-  copyright = "public domain";
-  instrument = "Horn in Es";
-
-  mutopiatitle =        "Cadenza for horn concerto no. 3";
-  mutopiacomposer = "Anon.";
-  style = "classical";
-  tagline =    "\\\\This music is part of the Mutopia project, http://sca.uwaterloo.ca/Mutopia/\\\\It has been typeset and placed in the public domain by Han-Wen Nienhuys.\\\\Unrestricted modification and redistribution is permitted and encouraged - copy this music and share it!";
-  maintainer = "hanwen@cs.uu.nl";
-  lastupdated = "1999/Oct/16";
-  source = "Breitkopf & Haertel + own modifications";
-}
-
-
-
-%{
-
-This is a cadenza to Mozart 3, as given to me by Arthur Verhofstad
-(one of my teachers). The source is unknown
-
-Lots more can be found in Uijlenspiegel 1998 no. 1, in an article by
-Herman Jeurissen.
-
-%}
-
-\version "1.3.4";
-
-
-cad = \notes  \relative c' {
-       \property Score.midiInstrument = "french horn"
-       \context Staff {
-       \emptyText
-       \cadenzaOn
-       
-
-       \clef "violin";
-       c'4.\mf g8
-
-
-       [e'^"accel" () d  c b]
-       [b() c] g-\fermata
-               \bar "empty";
-                       c, ~ [c^\turn_"rubato" e g c]
-       e4. e8 [g () f_"rit" e d]
-
-       dis4() e4
-               \bar "" ;
-               r8 [c16 d] [e f g gis]
-
-       a4-> f,() e g'
-       f-> d,() cis e'
-
-       d4^\fermata
-               \bar "" ;
-
-       r8 a [b cis]
-       \grace { e8( }
-       [d16 cis d e]
-       f4 ~ [f16 e d c]
-       b4-\turn
-       \times 2/3 { [ d8 c8 a8] }
-       g2~
-               \bar "" ;
-       [g16 c, e g] [c e, g c]
-       [e g, c e] g4^\fermata 
-               \bar "" ;
-       [g8.(_"a tempo" e16 g8. )e16]
-       a4. g8 [f8 e8 d8 c8]
-       g2 d'2-\trill
-       \grace { [c32 d] }
-        c4
-       } }
-       
-\score {
-       \notes { \cad }
-%      \midi { \tempo 4 = 90; }
-       \paper {  casting_algorithm = \Wordwrap;}
-
-}
diff --git a/mutopia/W.A.Mozart/horn-concerto-3/horn-concerto-3.ly b/mutopia/W.A.Mozart/horn-concerto-3/horn-concerto-3.ly
deleted file mode 100644 (file)
index a7c04b8..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-\header{
-  title =       "Konzert Nr. 3 Es dur";
-  subtitle = "f\\\"ur Horn und Orchester";
-  composer =    "Wolfgang Amadeus Mozart (1756-1792)";
-  enteredby =   "HWN";
-  opus = "K.V. 447";
-
-  copyright = "public domain";
-  instrument = "Horn in Es";
-  
-  mutopiatitle =        "Horn Concerto 3";
-  mutopiacomposer = "W.A.Mozart";
-  mutopiaopus = "KV447";
-  style = "classical";
-  tagline =    "\\\\This music is part of the Mutopia project, http://sca.uwaterloo.ca/Mutopia/\\\\It has been typeset and placed in the public domain by Han-Wen Nienhuys.\\\\Unrestricted modification and redistribution is permitted and encouraged - copy this music and share it!";
-  maintainer = "hanwen@cs.uu.nl";
-  lastupdated = "1999/Oct/16";
-  source = "Breitkopf & Haertel + own modifications";
-}
-
-%%%%%%% This is the main file.
-
-%{
-
-This is the Mozart 3 for horn.  It's from an old and fumbled part I
-have with lots of unidentified staccato dots, marcato's and dynamic
-markings; I left off most of them.
-
-Some of the marks are mine. Some of them are my teachers'.  Some of
-them are my teachers' teachers.  Some of them are B&H's. Some of them
-are Mozart's.
-
---hwn
-
-%}
-
-longgrace = \property Grace.stemStyle = ""
-aftergrace = \property Grace.graceAlignPosition = \right
-
-
-\version "1.3.4";
-
-\include "allegro.ly"
-\include "romanze.ly"
-\include "rondo.ly"
-
-\paper{
- \translator { \StaffContext \consists Mark_engraver;  }
- \translator { \ScoreContext
-       skipBars = ##t
-  }
-  linewidth = 180. \mm;
-}
-
-\score
-{
-       < \allegro
-         \property Score.midiInstrument = "french horn"
-       >
-       \paper{ }
-       \header { piece = "allegro"; opus = ""; }       
-       \midi{ \tempo 4=90; }
-}
-
-\score
-{
-       < \romanze
-         \property Score.midiInstrument = "french horn"
-       >
-       \header { piece = "romanze"; opus = ""; }       
-       \midi{ \tempo 4 = 70;  }
-       \paper{}
-}
-\score
-{
-       < \rondo
-         \property Score.midiInstrument = "french horn"
-       >
-       \header { piece = "rondo"; opus = ""; }
-       \paper{
-               \translator { \BarNumberingStaffContext }
-       }
-       \midi{ \tempo 4 = 100; }
-}
diff --git a/mutopia/W.A.Mozart/horn-concerto-3/romanze.ly b/mutopia/W.A.Mozart/horn-concerto-3/romanze.ly
deleted file mode 100644 (file)
index 34906bd..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-romanze = \notes \relative c' {
-       \key F;
-       \time 2/2;
-       \emptyText
-       c'4.( _\textscript "p. con molto espressione" "italic"  )
-               f8 a,4 a
-       [bes8( c d bes] )g4 r8 g
-       a r bes r c r [d()bes]
-       a2( [)g8 a( bes )b]
-       c4. () f8 a,4 a |
-       [bes8 (c d) bes] g4 r8 c,-.
-       [c8( e g )bes] [a( c f ) d]
-       c r e r f r r4
-       \mark "A";
-       R1*8
-       g4. ()f8  [e( d c) bes]
-       [bes( a d )c] c4 r
-       R1*2
-       g'4.() f8 [e( d c) bes]
-       [bes (a d ) c] c4 r
-       r1
-       [c16\mf () d c-. d-.] [e () f e-. f-.] [g()e c-. c-.] [f()d b-. b-.]
-       [c16\p () d c-. d-.] [e () f e-. f-.] [g()e c-. c-.] [f()d b-. b-.]
-       [c8 \< c, c c] [c c c \! c]     %B&H use tremolo.
-       \mark "B";
-       c1\f
-       R1*9
-       f'4.(\p )d8 b4 r8 g
-       g'4.() e8 c4 r8 cis |
-       d4(~ [d16 e d )e] [f8 () d f() d]
-       c2()b4 r
-       R1*4
-       e4. ()g8 c,4 ()cis
-       [d8( e f )d] b4 r8 g
-       [c ()e g g] [g( f e )d]
-       c4(
-       \grace { e16 }
-       [d8. )c16] [c8 c--( c-- )c--]
-       \mark "C";
-       des1\sfp
-       g,1\sfp 
-       c\sfp   
-       c,\sfp  
-       R1*3
-       r8 [c-\p c c] c2~
-       [c8 c' c c] c2~
-       [c8 \< e( g f] [e \!d \> c bes]
-       \mark "D";
-       \! )a4 r r2
-       R1*3
-       c4.-\p () f8 a,4 a |
-       [bes8 (c d) bes] g4 r8 c,-.
-       [c8( e g )bes] [a( c f ) d]
-       c-. r e-. r f4 r4
-       R1*3
-       r2 r4 r8 c,8
-       [c8( e g )bes] [a( c f ) d]
-       c-. r e-. r f4 r4       
-       g,1\pp
-       c,2~c4. c8
-       [c8( e g )bes] [a( c f ) d]
-       c r e r f4 r4                   % -. ? 
-
-       r1
-       c8-. r e-. r f4 r4
-
-       % Finish with F if played separately 
-       c8-. (  r c,-. r ) c4 r4| 
-       \bar "|.";
-}
-
diff --git a/mutopia/W.A.Mozart/horn-concerto-3/rondo.ly b/mutopia/W.A.Mozart/horn-concerto-3/rondo.ly
deleted file mode 100644 (file)
index b8b72b7..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-
-rondotheme = \notes \relative c' {
-       [c'8 c c] [c c c]
-       c4( cis8 )d r g,
-       [d'8 d d] [d d d]
-       d4( dis8 )e r c |
-       [c()d e] [f g a]
-       [g ()e c] c4 d8
-       e4()d8 e4()f8
-       e4.()d8 r r |
-}
-
-lipbreaker = \notes \relative c'
-{
-       r8 [g'-. g-.] [c()e g,-.]
-       [c()e g,-.] [c()e g,-.]
-       [c c, c] [c c c]
-       [c c c] [c c c]
-}
-
-rightsixteenth = { \property Voice.stemLeftBeamCount = 1
-  \property Voice.stemRightBeamCount = 2 }
-leftsixteenth = { \property Voice.stemLeftBeamCount = 2
-  \property Voice.stemRightBeamCount = 1 }
-bothsixteenth = { \property Voice.stemLeftBeamCount = 2
-  \property Voice.stemRightBeamCount = 2 }
-
-rondo = \notes         \relative c'
-{
-       \partial 8;
-       g'8-\p |
-       \time 6/8;
-       
-       \rondotheme
-       
-       R2.*13 |
-       r8 r-\fermata d [d e f]
-       [g ()e c-.] [d()e d-.]
-       c4 c8 [d e f]
-       [g()e c-.] [d()e d-.]
-       c4 r8 r4 r8 |
-       R2.*7
-       \mark  "A";
-       c4.\p \grace { e16( } [)d8 c d]
-       c4 r8 r4 r8
-       e4. \grace g16( [)f8 e f]
-       e4 r8 r4 r8
-       g4. e4 c8
-       g2.~
-       [g8 a b] [c d e ]
-       e4.()d8 r r
-       R2.*4
-       e2.~ |
-       [e8 d c] [c b a]
-       d2.~
-       [d8 c b] [b a g]
-       g'4()e8 b4()cis8
-       \mark "B";
-       d4 r8 r4 r8
-       R2.*3 |
-       r8 [d-. d-.] [d()g d-.]
-       [d()g d-.] [d d d]
-       [d()g] r r4 r8
-       R2.*1
-       \lipbreaker
-       c4 r8 [c' d e]
-       d4()g8 [c, d e]
-       d4 r8 r4 r8
-       R2. |
-       r4 r8 [c-. d-. e-.]
-       d4()g8 [c, d e]
-       [d()g fis] [e d c]
-       [b () e d] [c b a]
-       \mark "C";
-       g4 r8 r4 r8
-       r2. |
-       %
-       r8 [g g] [g( )b b]
-       [b()d d-.] [d()g g-.]
-       g2.~
-       [g8 a g] [f e d]
-       < \rondotheme
-         { s8-\p } >
-         
-       R2.*12
-       r4 r8 r4 c8
-       \mark "D";
-       c4 f8 c4 a8
-       a4.~a4 a8
-       bes4 c8 d4 bes8
-       g4. ~ g8 r r
-       R2.*3
-       r4 r8 r4 c8
-       a4. c
-       f ~ [f8. \rightsixteenth e16(  \bothsixteenth d )c]
-       bes4 g8 e4 g8
-       c4. ~ c8 r r
-       R2.*3| 
-       r4 r8 r4 c8
-       b4()c8 b4()c8
-       bes4. ~ bes4 g8
-       a4 c8 [f () d b]
-       d4. () c8 r r
-       \mark "E";
-       R2.*9  |
-       \lipbreaker 
-       [c8 c' c] c4.~
-       [c8 c d] [e e fis] 
-       g4 r8 r4 r8
-       r2.
-       r8 [g, g] [g g g] |
-       es'4. ~ [es8 d c]
-       b4 r8 r4 r8
-       r2. |
-       r8 [g g] [g g g]
-       es'4. ~ [es8 d c]
-       b4.\cresc  c4. d4. e4.
-       \mark "F";
-       f2.\f ~ |
-       f4 r8 r4 r8
-       r8 [g,\> g] [g g g]
-       [fis  g gis] % Edition breitkopf says a-flat (silly!)
-                [a bes \! b]
-       < \rondotheme
-         { s8-\p } >
-       R2.*7
-       \mark "G";
-       R2.*4
-       c,4.\mf c4 c8
-       c4. e4 c8
-       g'4. g4 g8
-       g4. g,4 g8
-       c4 r8 r4 r8
-       r4 r8 r4 g'8
-       [c ()e g,-.]    [c ()e g,-.]
-       [c ()e g,-.]    [c ()e g,-.]
-       \mark "H";
-       g'2._\cresc bes,2.
-       a4. [b16 c d e f g]
-       a4. f4 d8
-       [c8\f g' e] [c g e]
-       [\stemup c \stemdown e' c] \stemboth [g e c]
-       g4 r8 [g''8 e c]
-       \grace { \aftergrace [c16 d] }
-       d2.(-\trill 
-       )c4 r8 r4 r8
-       R2.*5
-       r8 r8-\fermata d8\p [d e f]
-       [g ()e c] [d()e d]
-       [c\cresc  c c] [d e f]
-       [g()e c] [d()e d]
-       c4\f r8 r4 r8
-       R2.*5
-       [c8\f c, c] [c c c]
-       c4 r8 c4 r8
-       c4 r8 r4 \bar "|.";             % B&H do another r8.
-}
-
-
index b6ea62e1df2dc049d3cb04cef482195e7b286f93..582c55e24be4b06338f12212a772ebdde8450925 100644 (file)
         (map (lambda (x)
                (font-load-command (car x) (cdr x))) font-name-alist)
   ))
         (map (lambda (x)
                (font-load-command (car x) (cdr x))) font-name-alist)
   ))
-  
+
+(define (fontify name exp)
+  (string-append (select-font name)
+                exp)
+  )
+
 ;;;;;;;;;;;;;;;;;;;;
 
 
 ;;;;;;;;;;;;;;;;;;;;
 
 
 
 
 
 
 
 
+;;;;;;;;;;;;;;;;;;; generic output
 
 
+(define (translate-atom offset exp)
+  exp)
 
 
 ;;;;;;;;;;;;;;;;;;; TeX output
 
 
 ;;;;;;;;;;;;;;;;;;; TeX output
index 6c27cae35ff88abd31817e386450d1ba22bb40f9..a07fef4d7a6a434eea9c69302b1375a8e512b6b3 100644 (file)
@@ -341,7 +341,7 @@ class TeXOutput:
         this.write(r"""
 %% \vfill\hfill{\mudelatagline}
 \makeatletter
         this.write(r"""
 %% \vfill\hfill{\mudelatagline}
 \makeatletter
-\renewcommand{\@oddfoot}{\mudelatagline}%
+\renewcommand{\@oddfoot}{\hfil\mudelatagline}%
 \makeatother
 \end{document}
 """)
 \makeatother
 \end{document}
 """)