]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.1.45 release/1.1.45
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 28 May 1999 11:59:44 +0000 (13:59 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 28 May 1999 11:59:44 +0000 (13:59 +0200)
43 files changed:
AUTHORS.txt
Documentation/gnu-music.yo
Documentation/mutopia.yo [deleted file]
Documentation/tex/glossary-table.data
Documentation/topdocs/AUTHORS.yo
NEWS
VERSION
input/test/dynamics.fly [new file with mode: 0644]
input/test/orchestscore.ly
lily/align-element.cc
lily/bar-script-engraver.cc
lily/break-align-item.cc
lily/collision.cc
lily/command-request.cc
lily/crescendo.cc
lily/dynamic-engraver.cc
lily/g-staff-side.cc
lily/g-stem-staff-side.cc
lily/graphical-element.cc
lily/include/break-align-item.hh
lily/include/crescendo.hh
lily/include/g-staff-side.hh
lily/include/graphical-element.hh
lily/include/ly-symbols.hh
lily/include/musical-request.hh
lily/include/staff-side.hh [deleted file]
lily/musical-request.cc
lily/request.cc
lily/score-priority-engraver.cc
lily/single-malt-grouping-item.cc
lily/staff-side.cc [deleted file]
ly/engraver.ly
ly/params.ly
ly/property.ly
make/out/lelievijver.lsm
make/out/lilypond.lsm
make/out/lilypond.spec
mutopia/N.W.Gade/brass.ly
mutopia/N.W.Gade/score.ly
mutopia/N.W.Gade/strings.ly
mutopia/N.W.Gade/wood.ly
scripts/abc-2-ly.py
scripts/ly2dvi.py

index bfbc050244bec07f9754ba7124a12a526b104964..9ca7d95ce59cbc6d328144b2d8bda31c80def5f2 100644 (file)
@@ -21,35 +21,38 @@ o    Jan  Arne  Fagertun  <Jan.A.Fagertun@energy.sintef.no>,
 
 o    Anthony Fok <foka@debian.org>, debian package: debian/*
 
+o    Bjoern  Jacke  <bjoern.jacke@gmx.de>  german   glossary
+     stuff.
+
 o    Neil Jerram <nj104@cus.cam.ac.uk>.  parts of Documenta-
      tion/Vocab*
 
 o    Donald    Ervin    Knuth,     http://www-cs-staff.stan-
-     ford.edu/~knuth/ mf/ital-*.mf (these  were  taken  from
+     ford.edu/~knuth/  mf/ital-*.mf  (these  were taken from
      the CM fonts)
 
-o    Werner  Lemberg <xlwy01@uxp1.hrz.uni-dortmund.de>, misc
+o    Werner Lemberg <xlwy01@uxp1.hrz.uni-dortmund.de>,  misc
      bugfixes, some Beam and Stem code.
 
-o    David R. Linn <drl@vuse.vanderbilt.edu>,  Mailing  list
+o    David  R.  Linn <drl@vuse.vanderbilt.edu>, Mailing list
      maintenance.
 
-o    Adrian  Mariano  <>  Reference  manual, tutorial fixes,
+o    Adrian Mariano <>  Reference  manual,  tutorial  fixes,
      glossary.
 
 o    Han-Wen           Nienhuys           <hanwen@cs.uu.nl>,
-     http://www.cs.uu.nl/~hanwen/   Main  author  (initials:
+     http://www.cs.uu.nl/~hanwen/  Main  author   (initials:
      HWN).
 
-o    Jan          Nieuwenhuizen           <janneke@gnu.org>,
-     http://www.xs4all.nl/~jantien/  Main  author (initials:
+o    Jan           Nieuwenhuizen          <janneke@gnu.org>,
+     http://www.xs4all.nl/~jantien/ Main  author  (initials:
      JCN).
 
-o    Alexandre  Oliva  <oliva@dcc.unicamp.br>,   http://sun-
+o    Alexandre   Oliva  <oliva@dcc.unicamp.br>,  http://sun-
      site.unicamp.br/~oliva/ testing
 
-o    Franc,ois  Pinard  <pinard@iro.umontreal.ca>,  parts of
-     Documentation/Vocab*,   started    internationalization
+o    Franc,ois Pinard  <pinard@iro.umontreal.ca>,  parts  of
+     Documentation/Vocab*,    started   internationalization
      stuff
 
 o    Jeffrey B. Reed <daboys@austin.rr.com>, Windows-NT sup-
@@ -57,9 +60,9 @@ o    Jeffrey B. Reed <daboys@austin.rr.com>, Windows-NT sup-
 
 o    Shay Rojanski Some mudela source.
 
-Your name could be here! If you want to help,  then  take  a
-look  at  the SMALLISH PROJECTS section of in the file TODO.
+Your  name  could  be here! If you want to help, then take a
+look at the SMALLISH PROJECTS section of in the  file  TODO.
 Some do not involve coding C++
 
-[And of course we sincerely thank J.S.Bach,  F.Schubert,  T.
+[And  of  course we sincerely thank J.S.Bach, F.Schubert, T.
 Merula and W.A.Mozart for their beautiful music]
index 4e6e3148edc81eef93b454eb2a07484c100a21f4..e37331dcd54c72403b307ab7f36f77ca4f4a251e 100644 (file)
@@ -86,8 +86,3 @@ it()Libraries for reading and writing various audio/music/notation
     formats.
 )
 
-Find sponsors. This project will take a long time, and in its infant
-stages, having a hard and small core which does a lot of work, is more
-efficient than lots of people doing small subprojects. Finanicial
-support would be desirable.
-
diff --git a/Documentation/mutopia.yo b/Documentation/mutopia.yo
deleted file mode 100644 (file)
index e3f5c55..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-article(Mutopia project - manifesto)(HWN and JCN)()
-
-This is some random ranting about the Mutopia project, aka "Music To
-the People," the ultimate goal which I want to accomplish using
-LilyPond and mudela.
-
-sect(Why)
-
-Music publishers make lots of money out of selling sheet music which
-is in the public domain (the composers died a long time ago). It is
-usually prohibited to xerox the sheet music.  Publishers have two
-arguments to justify this policy: the high prices are there to
-guarantee diversity (keeping lots of it in stock is expensive), and to
-encourage new work being composed.
-
-This is bad. Storing a Mudela file takes almost no space at all, and
-if sheet music could be had for free, then it would be much easier
-obtain less famous music.  These composers have died long ago, and not
-having their music available only discourages people from
-experimenting with it.  You deserve to get public domain music for
-free (zero cents)
-
-sect(What )
-
-For literature, the project Gutenberg has an archive of public domain
-literary works. For music, this does not exist yet.
-
-We also need an archive of public domain sheet music; this is what we
-call The Mutopia Project.
-
-
-sect(Status)
-
-This project is still in its infancy:  we have very little amount of
-music available.  The music is partly downloadable from the website.
-All of it is included in the source archive of LilyPond.
-
-itemize(
-it()J.S. Bach, Das Wohltemperierte Clavier I: C major Prelude & Fugue, C
-    minor fugue.  Solo cello suites: suite II.  Six small preludes: some
-    preludes.
-it()W. A. Mozart,  Horn concerto 3, solo part + cadenza.
-it()F. Schubert, St\"andchen (Serenade) "Leise flehen meine Lieder"
-it()Tarquinio Merula, La Gallina a 2 violini
-it()Paul Lacome d'Estalenx, La Feria, Los Toros (oboe 1)
-)
index 981de9bf6712b4d85e0ed09e9c18f9f710f1a4f3..978e5bf2165ae8a114f2861cb29d03815a653b6b 100644 (file)
@@ -7,9 +7,9 @@ A@la@@@@@
 accent@accent@Akzent@@accent@accento@
 accidental@altération accidentelle@Vorzeichen@@toevallig teken@accidento@
 adjacent keys@tons voisins@@@@@
-alto@alto@@@alt@@
+alto@alto@Alt@@alt@@
 ancient form??? (diatonic minor scale)@forme du mode mineur ancien@@@@@
-appoggiatura@appogiature, ports de voix, notes d'agr\'ement@langer Vorschl\"age@@lange voorslag@appogiature@
+appoggiatura@appogiature, ports de voix, notes d'agrèment@langer Vorschlag@@lange voorslag@appogiature@
 arbitrary number of bars' rest)@bâton de pause@@@meermaats rust@@
 arpeggio@arpège, arpègement@Brechungen@@gebroken akoord@arpeggio@
 artificial measure@mesure artificielle@@@@@
@@ -19,99 +19,99 @@ augmented (interval)@augment
 B@si@@@@@
 backfall, forefall@accent, chute, port de voix@Vorschlag@@korte voorslag@appogiature@
 bar line@barre (de mesure)@Taktstrich@@maatstreep@stanghetta@
-bar; measure@mesure@@@maat, maatstreep@@
-baritone@bariton@@@bariton@@
-bass clef@clé de fa@F Schl\"ussel@@F sleutel, bas sleutel@chiave di basso@
-bass@basse@@@bas@@
+bar; measure@mesure@Takt@@maat, maatstreep@@
+baritone@bariton@Bariton@@bariton@@
+bass clef@clé de fa@Bass-Schlüssel, F-Schlüssel@@F sleutel, bas sleutel@chiave di basso@
+bass@basse@Bass@@bas@@
 beam@barre@Balken@@waardestreep/balk@barra@
-beat@temps@@@tel@@
+beat@temps@Takt(-schlag)@@tel@@
 brace@accolade@Klammer@@accolade, haak@accolada@Symbol at the start of a system that connects staffs.
-brass@@@@koper (blazers)@@
-C clef@clé d'ut@@@C sleutel, alt sleutel@chiave di tenore@
+brass@@Blechbläser@@koper (blazers)@@
+C clef@clé d'ut@Altschlüssel, C-Schlüssel@@C sleutel, alt sleutel@chiave di tenore@
 C@do@@@C@@
 C@ut@@@@@
-cadence@cadence@@@cadens@@
+cadence@cadence@Kadenz@@cadens@@
 cadenza@fioriture@@@cadens@cadenza@
 cent@@@@cent@@1/1200 of an octave (1/100 of an equally tempered semitone)
 chain of trills@chaîne de trilles@@@triller@@
 character@caractère@@@@@
 chevron@chevron@@@@@
-chord@accord@@@akkoord@@
-chromatic scale@gamme chromatique@@@chromatische toonladder@@
+chord@accord@Akkord@@akkoord@@
+chromatic scale@gamme chromatique@Chromatische Tonleiter@@chromatische toonladder@@
 chromatic semitone@demi-ton chromatique@@@chromatische halve toon@@
 chromatic transposition@transposition chromatique@@@@@
 chromatic type@genre chromatique@@@@@
-church mode, ecclesiastical mode@mode ecclésiastique@@@kerk toonladder@@
-clef@clé@Schl\"ussel@@sleutel@la chiave (pl. le chiavi)@
-comma@comma@@@komma@@Difference in pitch of a note when the note is derived from a different tuning system.
-compound interval@intervalle composé@@@@@
+church mode, ecclesiastical mode@mode ecclésiastique@Kirchentonart@@kerk toonladder@@
+clef@clé@Notenschlüssel@@sleutel@la chiave (pl. le chiavi)@
+comma@comma@Komma@@komma@@Difference in pitch of a note when the note is derived from a different tuning system.
+compound interval@intervalle composé@Komplementärintervall@@@@
 compound measure@mesure composée@@@samengestelde maat@@
 conjunct movement@mouvement conjoint@@@@@
-consonant interval; consonance@consonance@@@consonant@@
-contralto@contralto@@@@@
+consonant interval; consonance@consonance@Konsonanz@@consonant@@
+contralto@contralto@Alt(-stimme), alt-@@@@
 contro-time@contre-temps@@@@@
-crescendo@crescendo@@@@crescendo@written with an extended opening angular bracket, indicates increasing volume
+crescendo@crescendo@Crescendo@@@crescendo@written with an extended opening angular bracket, indicates increasing volume
 cue-notes@@Stichnoten@@stichnoten@@In an orchestral part, notes for a different instrument that hint when to\rstart playing.  Usually printed in smaller type.
 D@ré@@@@@
 dash over/below@@@@@pizzicato@With plucked strings
-decrescendo@@@@@decrescendo@written with an extended closing angular bracket, indicates decreasing volume
-degree [of the scale]@degré [de la gamme]@@@trap [van de toonladder]@@
+decrescendo@@Decrecendo@@@decrescendo@written with an extended closing angular bracket, indicates decreasing volume
+degree [of the scale]@degré [de la gamme]@Stufe [der Tonleiter]@@trap [van de toonladder]@@
 descending interval@intervalle descendant@@@dalend interval@@
-diatonic major scale@gamme diatonique majeure@@@diatonische majeur toonladder@@
-diatonic minor scale@gamme diatonique mineure@@@@@
+diatonic major scale@gamme diatonique majeure@Diatonische Durtonleiter@@diatonische majeur toonladder@@
+diatonic minor scale@gamme diatonique mineure@Diatonische Molltonleiter@@@@
 diatonic semitone@demi-ton diatonique@@@diatonische halve toon@@
-diatonic type@genre diatonique@@@@@
+diatonic type@genre diatonique@diatonisch@@@@
 diatonic@diatonique@@@diatonisch@@A diatonic scale is a scale consisting of whole and half tones.
-diminished (interval)@diminué (intervalle)@@@verminderd (interval)@@
+diminished (interval)@diminué (intervalle)@vermindertes (Intervall)@@verminderd (interval)@@
 disjunct movement@mouvement disjoint@@@@@
-dissonant interval; dissonance@dissonance@@@dissonant interval; dissonant@@
+dissonant interval; dissonance@dissonance@Dissonanz@@dissonant interval; dissonant@@
 dominant ninth chord@accord de neuvième dominante@@@dominant noon akkoord@@
-dominant seventh chord@accord de septième dominante@@@dominant septiem akkoord@@
-dominant@dominante@@@dominant@@A tone that creates tension;the fifth degree of the scale.
-dorian mode@@@@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.
+dominant seventh chord@accord de septième dominante@Dominantseptakkord@@dominant septiem akkoord@@
+dominant@dominante@Dominante@@dominant@@A tone that creates tension;the fifth degree of the scale.
+dorian mode@@Dorische Tonart@@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.
 dot (augmentation dot) @point@Punkt@@punt@punto@An augmentation dot after note adds multiplies the duration by one and a half.
 dot and curved line combined@point et liaison combinés@@@@@
-dot over/below@@@@staccato@staccato@Play each note short.
-dot@point@@@punt@@
-dotted note@note pointée@@@@@
+dot over/below@@Staccato@@staccato@staccato@Play each note short.
+dot@point@Punkt@@punt@@
+dotted note@note pointée@punktierte Note@@@@
 double appoggiatura@appogiature double@@@@@
 double bar line@double barre@Doppeltaktstrich@@dubbele streep@doppia barra@Indicates the end of a section within a movement.
-double dotted note@note doublement pointée@@@@@
+double dotted note@note doublement pointée@doppel-punktierte Note@@@@
 double flat@double bémol@Doppel-Be@@dubbelmol@doppio bemolle@
 double sharp@double dièse@Doppelkreuz@@dubbelkruis@doppio diesis@Raise pitch by two semitones
 double trill@trille double@@@@@A trill on a chord
-double triplet@double triolet@@@dubbele triool@@
+double triplet@double triolet@Doppeltriole@@dubbele triool@@
 double whole note@@@breve@brevis@breve@Note during twice as long as a whole note. Mainly used in pre-1650 music.
 duple meter@temps binaire@@@tweedelige maatsoort@@
 duplet@duolet@@@duool@@
-duration@durée@@@duur, lengte@@
+duration@durée@Dauer, Länge@@duur, lengte@@
 E@mi@@@@@
-eighth note@croche@@quaver@achtste noot@@
-eighth rest@demi-soupir@@quaver rest@achtste rust@@
-engraving@@notenstechen@@steken@@The traditional process of music printing: cutting in a plate of metal.\rNow also the term for the art of music typography.
-enharmonic@enharmonique@@@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
+eighth note@croche@achtel Note@quaver@achtste noot@@
+eighth rest@demi-soupir@achtel Pause@quaver rest@achtste rust@@
+engraving@@Notenstechen@@steken@@The traditional process of music printing: cutting in a plate of metal. Now also the term for the art of music typography.
+enharmonic@enharmonique@Enharmonisch@@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
 equal temperament@tempérament égal@@@getempereerde stemming@@Tuning system in which each semitone is precisely 100 cents.
 essential alteration@altération essentielle@@@@@
 expression mark@signe d'expressoin@Vortragszeichen@@voordrachtsteken@segno d'espressione@
 extension of interval@extension d'intervalle@@@@@
 F@fa@@@@@
 fermata@pauses@Fermate@@fermate@fermata@Prolonged sound or silence of indefinite duration
-fifth@quinte@@@kwint@@
-flag, hook, tail, pennant@crochet@F\"anchen@@vlaggetje@coda uncinata@Ornament at the end of the stem of a note. The number of flags\rdetermines the lengths of notes shorter than a quarter note.
+fifth@quinte@Quinte@@kwint@@
+flag, hook, tail, pennant@crochet@Fänchen@@vlaggetje@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.
 flat@bémol@Be@@mol@bemolle@Lower pitch by a semitone
 four-bar rest@bâton de pause@@@@@
-fourth@quarte@@@kwart@@
+fourth@quarte@Quarte@@kwart@@
 G@sol@@@@@
 glissando@glissement@Glissando@@glissando@glissando@Letting the pitch  slide fluently from one note to the other
-graces@petites notes@kurz Vorschl\"age, Manieren (?)@@versieringen@appogiature@
-grand staff@@@@piano systeem@@A combination of two staffs with a brace.  Usually used for piano music.
-half note@blanche@@minim@halve noot@@
-half rest@demi-pause@@minim rest@halve rust@@
+graces@petites notes@Verzierungen, Manieren@@versieringen@appogiature@
+grand staff@@Klavieraszug@@piano systeem@@A combination of two staffs with a brace.  Usually used for piano music.
+half note@blanche@halbe Note@minim@halve noot@@
+half rest@demi-pause@halbe Pause@minim rest@halve rust@@
 harmonic cadence@cadence harmonique@@@harmonische cadens@@Sequence of chords that terminate a musical phrase or section.
 harmonic form (diatonic minor scale)@forme harmonique@@@@@
-harmonic interval@intervalle harmonique@@@@@
+harmonic interval@intervalle harmonique@Harmonisches Intervall@@@@
 incomplete measure@mesure incomplète@@@@@
-interval@intervalle@@@interval@@Difference in pitch between two notes
+interval@intervalle@Intervall@@interval@@Difference in pitch between two notes
 inversion of interval@renversement d'intervalle@@@interval inversie@@
 irregular contro-time@contre-temps irrégulier@@@@@
 irregular group@groupe irrégulier@@@@@
@@ -124,8 +124,8 @@ kind of rest@figure de silence@@@@@
 leading note@sensible@@@@@
 ledger line, leger line@ligne supplémentaire@Hilfslinien, Kopfstriche (?)@@hulplijntje@lineette@A ledger line is an extension of the staff.  
 legato curve@liaison rythmique@@@legato boog@@
-lilypond@étang de lis@lilyteich@lily pond@lelievijver@stagno del giglio@A pond with  lilies floating in it, also the name of a music typesetter.
-line@ligne@@@lijn@@
+lilypond@étang de lis@Lilienteich@lily pond@lelievijver@stagno del giglio@A pond with  lilies floating in it, also the name of a music typesetter.
+line@ligne@Linie@@lijn@@
 long appoggiatura@appogiature longue@@@@@
 lower number@chiffre inférieur@@@@@
 major (interval)@majeur (intervalle)@@@groot (interval)@@
@@ -134,118 +134,119 @@ meantone temperament@temp
 mediant@médiante@@@mediant@@The third degree of a scale
 melodic cadence@cadence mélodique@@@cadens@@A free-form section at the end of a solo-concerto, where the soloist\rcan demonstrate his/her virtuosity.
 melodic form (diatonic minor scale)@forme mélodique@@@@@
-meter, time@m\`etre@Takt, Metrum@@maatsoort@@A recurring pattern of stress
-metronome@métronome@@@metronoom@@Device which sounds a steady beat
-metronomic indication@indication métronomique@@@@@Exact tempo indication (in beats per minute).  Also denoted by M.M. (M\"azels Metronom)
-mezzo-soprano@mezzo-soprano@@@@@
+meter, time@mètre@Takt, Metrum@@maatsoort@@A recurring pattern of stress
+metronome@métronome@Metronom@@metronoom@@Device which sounds a steady beat
+metronomic indication@indication métronomique@@@@@Exact tempo indication (in beats per minute).  Also denoted by M.M. (Mäzlel's Metronom)
+mezzo-soprano@mezzo-soprano@Mezzosopran@@@@
 middle C@do central@@@centrale C@@First C below the 440 Hz A.
 minor (interval)@mineur (intervalle)@@@@@
 minor mode@mode mineur@@@@@
 modal note@note modale@@@@@
 mode@mode@@@@@
-modulation@modulation@@@modulatie@@
-mordent@mordant, pinc\'e@Pralltriller, Mordent@@mordent@mordente@
-motive@incise@@@motief@@
+modulation@modulation@Modulation@@modulatie@@
+mordent@mordant, pincè@Pralltriller, Mordent@@mordent@mordente@
+motive@incise@Motiv@@motief@@
 musical ladder@échelle musicale@@@@@
-mixolydian mode@@@@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.
-natural sign@bécarre@Aufl\"osungszeichen@@herstellingsteken@bequadro@Do not play the following note flat or sharp.
-ninth@@@@noon@@
+mixolydian mode@@Mixolydische Tonart@@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.
+natural sign@bécarre@Auflösungszeichen@@herstellingsteken@bequadro@Do not play the following note flat or sharp.
+ninth@@None@@noon@@
 note head@@Notenkopf@@noot balletje@@
 note@note@Note@@noot@nota@
 octave line@échelle d'octave@@@@@
 octave line@clé d'octave@@@@@
 octave sign@octave@Oktave@@@ottava@
-octave@octave@@@octaaf@@
-ornament, embellishment; accessory@agr\'ement, ornement@Verzierungen@@@fiorette, fioriture, abbellimenti@
+octave@octave@Oktave@@octaaf@@
+ornament, embellishment; accessory@agrèment, ornement@Verzierungen@@@fiorette, fioriture, abbellimenti@
 part@@@@partij@@
 pause@pause@Luftpause@@@@
 pause@point d'orgue@@@@@
-perfect (interval)@juste (intervalle)@@@rein (interval)@@
+perfect (interval)@juste (intervalle)@reines (Intervall)@@rein (interval)@@
 perfect major chord@accord parfait majeur@@@@@
 perfect minor chord@accord parfait mineur@@@@@
 phrase member@membre de phrase@@@@@
-phrase@phrase@@@frase, zin@@
+phrase@phrase@Phrase@@frase, zin@@
 phrasing@phrasé@@@@@
-pitch pipe; tuning fork@diapason@@@stemfluitje; stemvork@@
-pitch@hauteur@@@toonhoogte@@
+pitch pipe; tuning fork@diapason@Stimmgabel@@stemfluitje; stemvork@@
+pitch@hauteur@Tonhöhe@@toonhoogte@@
 Pythagorean comma@comma pythagoricien@@@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.  
 quadruplet@quartolet@@@kwartool@@
-quarter note@noire@@crotchet@kwartnoot@@
-quarter rest@soupir@@crotchet rest@kwart rust@@
-register@registre@@@register@@
+quarter note@noire@viertel Note@crotchet@kwartnoot@@
+quarter rest@soupir@viertel Pause@crotchet rest@kwart rust@@
+register@registre@Register@@register@@
 regular contro-time@contre-temps régulier@@@@@
 regular syncopation@syncope régulière@@@@@
 relative scales@gammes relatives, tons relatifs@@@@@
-repeat@barre de reprise@@@herhaling@@
+repeat@barre de reprise@Wiederholung@@herhaling@@
 rest@silence@@@@@
 rest@soupir@Pause@@rust@pausa@
 return sign@renvoi@@@herstellingsteken@@
 rhythm@rythme@Rhythmus@@ritme@@
 rhythmic curve@courbe rythmique@@@@@
-scale@gamme@@@toonladder@@
-score@partition@@@partituur@@
-second@seconde@@@@secunde@
-semitone@demi-ton@@@halve toon@@
-seventh@septième@@@septiem@septime@
+scale@gamme@Tonleiter@@toonladder@@
+score@partition@Partitur@@partituur@@
+second@seconde@Sekunde@@@secunde@
+semitone@demi-ton@Halbton@@halve toon@@
+seventh@septième@Septime@@septiem@septime@
 sextuplet@sextolet@@@sextool@@
 sextuplet@sixain@@@sextool@@
 shading signs@signes indicateurs de nuance@@@@@
-shading@nuance@@@@@
-sharp@dièse@@@kruis@@
+shading@nuance@Nuance@@@@
+sharp@dièse@Kreuz (um Halbton erhöht)@@kruis@@
 short appoggiatura@appogiature brève@@@@@
 simple appoggiatura@appogiature simple@@@@@
 simple interval@intervalle simple@@@@@
 simple measure@mesure simple@@@@@
-sixteenth note@double croche@@semiquaver@zestiende noot@@
-sixteenth rest@quart de soupir@@semiquaver rest@zestiende rust@@
-sixth@sixte@@@sext@@
-sixty-fourth note@quadruple croche@@hemidemisemiquaver@vierenzestigste noot@@
-sixty-fourth rest@seizième de soupir@@hemidemisemiquaver rest@@@
+sixteenth note@double croche@sechzehntel Note@semiquaver@zestiende noot@@
+sixteenth rest@quart de soupir@sechzehntel Pause@semiquaver rest@zestiende rust@@
+sixth@sixte@Sexte@@sext@@
+sixty-fourth note@quadruple croche@vierundsechzigstel Note@hemidemisemiquaver@vierenzestigste noot@@
+sixty-fourth rest@seizième de soupir@vierundsechzigstel Pause@hemidemisemiquaver rest@@@
 slur@liason, coulé@Bindungzeichen, Bindebogen@@binding, bindingsboog@legatura@
-soprano@soprano@@@sopraan@@
+soprano@soprano@Sopran@@sopraan@@
 space@espace@@@@@
-staff@portée@@@(noten)balk; partij@@pl staves or staffs
+staff@portée@Noten(linien)system@@(noten)balk; partij@@pl staves or staffs
 stem@queue@Stiel, Hals@@stok@asta, gamba@
-strings@@@@strijkers@@
+strings@@Streicher@@strijkers@@
 strong beat@temps fort@@@thesis@@
-subdominant@sous-dominante@@@@@The fourth degree of the scale
+subdominant@sous-dominante@Subdominante@@@@The fourth degree of the scale
 submediant@@@@@@The sixth scale degree
-subtonic@sous-tonique@@@@@The seventh degree of the scale
+subtonic@sous-tonique@Subtonika@@@@The seventh degree of the scale
 superdominant@sus-dominante@@@@@The sixth scale degree
 supertonic@sus-tonique@@@@@The second scale degree
 syncopation; upbeat@syncope@@@syncope@@
 syntonic comma@comma syntonique@@@komma van Didymos, syntonische komma@@Difference between the natural third and the third obtained by Pythagorean tuning, euqal to 22 cents. 
-system@syst\`eme@System@@systeem@sitema@
-tempo indication@signes de  temps@Zeitmasse, Tempobezeichnung@@tempo aanduiding@segno di tempo@
-tempo; movement@mouvement@@@@@
-tenor@ténor@@@@@
-tenth@@@@deciem@decime@
-tetrachord@tétracorde@@@@@
-third@tierce@@@terts@@
-thirty-second note@triple croche@@demisemiquaver@32e noot@@
-thirty-second rest@huitième de soupir@@demisemiquaver rest@32e rust@@
+system@système@System@@systeem@sitema@
+tempo indication@signes de temps@Zeitmaß, Tempobezeichnung@@tempo aanduiding@segno di tempo@
+tempo; movement@mouvement@Tempo@@@@
+tenor@ténor@Tenor@@@@
+tenth@@Dezime@@deciem@decime@
+tetrachord@tétracorde@Dreiklang@@@@
+third@tierce@Terz@@terts@@
+thirty-second note@triple croche@zweiunddreißigstel Note@demisemiquaver@32e noot@@
+thirty-second rest@huitième de soupir@zweiunddreißigstel Pause@demisemiquaver rest@32e rust@@
 tie@liaison@Bindung@@overbinding@legatura@A curve that shows the prolongation (as opposed to the repetition fo a note)
 time signature@chiffrage (chiffres indicateurs), signe de valeur@Taktvorzeichnung, Taktvorzeichen@@maatsoort@segni di tempo@
 tonal note@note tonale@@@@@
 tonality@tonalité@@@tonaliteit@@
-tone@ton@@@toon@@
+tone@ton@Ton@@toon@@
 tonic@tonique@@@tonica@@
-transposition@transposition@@@transpositie@@Shifting a melody up or down in pitch, while keeping the same relative pitches.
-treble clef@clé de sol@G Schl\"ussel@@G sleutel, viool sleutel@chiave di violino@
-tremolo@tr\'emolo@Tremolo@@tremolo@tremolo@
+transposition@transposition@Transposition@@transpositie@@Shifting a melody up or down in pitch, while keeping the same relative pitches.
+treble clef@clé de sol@Violinschlüssel, G-Schlüssel@@G sleutel, viool sleutel@chiave di violino@
+tremolo@trèmolo@Tremolo@@tremolo@tremolo@
 trill; shake@trille, tremblement, battement (cadence)@Triller@@triller@trillo@
 triple meter@temps ternaire@@@driedelige maatsoort@@
-triplet@triolet@@@@@
+triplet@triolet@Triole@@@@
 tritone@triton@@@@@
-turn; gruppetto@bris\'e, groupe, doubl\'e, grupetto@Doppelschlag@@dubbelslag@grupetto@
+turn; gruppetto@brisè, groupe, doublè, grupetto@Doppelschlag@@dubbelslag@grupetto@
 two-bar rest@bâton de pause@@@@@
 underline over/below@portamento@@@@@
 unison@unisson@@@@unisono@Different instruments playing exactly the same melody.
 unit of beat@unité de temps@@@@@
 unit of measure@unité de mesure@@@@@
+upbeat, arsis@@Auftakt@@@@
 upper number@chiffre supérieur@@@@@
-voice@voix@@@stem@@
+voice@voix@Stimme@@stem@@
 weak beat@temps faible@@@arsis@@
-whole note@ronde@@semibreve@hele noot@@
-whole rest@pause@@semibreve rest@@@
-woodwind@@@@houtblazers@@
+whole note@ronde@ganze Note@semibreve@hele noot@@
+whole rest@pause@ganze Pause@semibreve rest@@@
+woodwind@@Holzbläser@@houtblazers@@
index 2822ed5b91165dabd401535acdbb3db877cf07a2..cce65cd0ac15e0df5418351a7d1c971e9a206198 100644 (file)
@@ -16,6 +16,8 @@ it()nemail(Jan Arne Fagertun)(Jan.A.Fagertun@energy.sintef.no),
     TeX titling and lytodvi.sh
 it()nemail(Anthony Fok)(foka@debian.org), 
     debian package: debian/*
+it()nemail(Bjoern Jacke)(bjoern.jacke@gmx.de)
+    german glossary stuff.
 it()nemail(Neil Jerram)(nj104@cus.cam.ac.uk). 
     parts of Documentation/Vocab*
 it()Donald Ervin Knuth,  lurl(http://www-cs-staff.stanford.edu/~knuth/)
diff --git a/NEWS b/NEWS
index 1c4b2a0c7b6d76fdb9f1abdb33d1dadb3db9ce39..7f62b956849dcf41f012c5f20774b1b37e40f7af 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,22 @@
-pl 44.jcn1
-       - bf: twinke repeats
+pl 45 (may 28)
 
+       - german vocab.
+
+
+pl 43.hwn2
+       - split G_staff_side_item into G_staff_side_element and G_staff_side_item.
+       - junked old Staff_side
+       - Crescendo also uses G_staff_side_element
+       - crescendo_shorten paper var.
+       - create horizontal groups for break_aligment inside Break_align_item.
+       - more abc-2-ly fudging
+pl 44.mb1
+       - bf, property.ly: change fontsize->fontSize
+       - N.W.Gade: removed old tie behaviour
+       - bf, ly2dvi: expand .sly extensions
+
+*********
 pl 44
 pl 43.jcn2
        - bf: repeat :| placement + core dump
diff --git a/VERSION b/VERSION
index ab235e0efa086dd622805b16fa7fc5c441cd11f8..22250ed8d2cb62a77d07926b865796db023b2bdf 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=1
-PATCH_LEVEL=44
-MY_PATCH_LEVEL=jcn1
+PATCH_LEVEL=45
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
diff --git a/input/test/dynamics.fly b/input/test/dynamics.fly
new file mode 100644 (file)
index 0000000..4b586d5
--- /dev/null
@@ -0,0 +1,2 @@
+c''4 \p c \ff  c^\ff 
+c \p \<  \! c \ff\> c \!c-\p 
index eb7d152550a9abf4563a7021c7a5458c972d09a9..411d7beb9525db933c5ff9df5290ea67e01cbf5a 100644 (file)
@@ -88,18 +88,12 @@ c1 | c2 c | c c | c c | c c | c c | c c | c c |
     textheight = 260.\mm;
     \translator {
        \OrchestralScoreContext
-        minVerticalAlign = 3.5*\staffheight; % No effect!!??
+        minVerticalAlign = 2.2*\staffheight; 
     }
     \translator { \StaffContext
        \consists "Staff_margin_engraver";
         marginScriptPadding = 15.0;
     }
-    \translator { \StaffGroupContext
-        minVerticalAlign = 2.5*\staffheight;
-    }
-    \translator { \GrandStaffContext
-        minVerticalAlign = 2.5*\staffheight;
-    }
   }
 }
 
index 82111b9e2ef0c6b20bbff485d4bd9b4822a3ecc8..0e0b5a5605a5ad652c858f3a3196f3a4879109af 100644 (file)
@@ -97,6 +97,15 @@ Align_element::do_side_processing ()
        {
          dims.push (y);
          Score_element *e =dynamic_cast<Score_element*>(elem_l_arr_[i]);
+
+         SCM extra_dims = e->get_elt_property (extra_space_scm_sym);
+         if (extra_dims != SCM_BOOL_F)
+           {
+             extra_dims = SCM_CDR (extra_dims);
+             dims.top ()[LEFT] -= gh_scm2double (SCM_CAR (extra_dims));
+             dims.top ()[RIGHT] += gh_scm2double (SCM_CAR (extra_dims));
+           }
+
          elems.push (e);
        }
     }
index a0e33d0d8ee6375636f684fdba1958acc53ab32c..a7f59dea8ec236ba8cdeb0f05e285785fb181664 100644 (file)
@@ -36,6 +36,12 @@ Bar_script_engraver::do_creation_processing ()
     }
 }
 
+/*
+  Some interesting item came across.  Lets attach the text and the
+  positioner to the item.
+
+*/
 void
 Bar_script_engraver::do_acknowledge_element (Item *i)
 {
@@ -47,6 +53,8 @@ Bar_script_engraver::do_acknowledge_element (Item *i)
       staff_side_p_->dim_cache_[axis_]->parent_l_
        =  i->dim_cache_[axis_];          
 
+      if (!text_p_->dim_cache_[other_axis]->parent_l_)
+       text_p_->dim_cache_[other_axis]->parent_l_ = i->dim_cache_[other_axis];
       staff_side_p_->add_support (i);
 
       /*
index 8fd12ab3b6096355aa32aace57a436cf52a588d3..ab9c8058243a383dce31c5561fe132b0b249fe5b 100644 (file)
@@ -8,6 +8,7 @@
 
 #include "break-align-item.hh"
 #include "dimensions.hh"
+#include "p-score.hh"
 
 void
 Break_align_item::do_pre_processing()
@@ -17,9 +18,56 @@ Break_align_item::do_pre_processing()
   Axis_align_item::do_pre_processing();
 }
 
+
+
+
 Break_align_item::Break_align_item ()
 {
   stacking_dir_ = RIGHT;
   threshold_interval_[SMALLER] = 1.5 PT;
   set_axis (X_AXIS);
 }
+
+void
+Break_align_item::add_breakable_item (Item *it)
+{
+  SCM pr = it->remove_elt_property (break_priority_scm_sym); 
+
+  if (pr == SCM_BOOL_F)
+    return;
+
+  int priority = gh_scm2int (SCM_CDR (pr));
+
+  Score_element * column_l = get_elt_by_priority (priority);
+  Axis_group_item * hg=0;
+  if (column_l)
+    {
+      hg = dynamic_cast<Axis_group_item*> (column_l);
+    }
+  else
+    {
+      hg = new Axis_group_item;
+      hg->set_axes (X_AXIS,X_AXIS);
+
+      /*
+       this is quite ridiculous, but we do this anyway, to ensure that no
+       warning bells about missing Y refpoints go off later on.
+      */
+      hg->dim_cache_[Y_AXIS]->parent_l_ = dim_cache_[Y_AXIS];
+      hg->set_elt_property (ly_symbol("origin"),
+                           SCM_EOL);
+
+      pscore_l_->typeset_element (hg);
+      add_element_priority (hg, priority);
+
+      if (priority == 0)
+       center_l_ = hg;
+    }
+      
+  hg->set_elt_property (ly_symbol("origin"),
+                       scm_cons (gh_str02scm (it->name()),
+                                 hg->get_elt_property (ly_symbol ("origin"))));
+  hg->add_element (it);
+
+
+}
index b4136ae520efe85490c286bde43bad70aebd5b11..1b1f1be105dce769a71d0232ffe80bcf34f14a3e 100644 (file)
@@ -36,8 +36,8 @@ int idx (int dir, bool h_shift_b)
   return j;
 }
 
-/** This complicated routine moves note columns around horizontally
-  (and rests vertically) to ensure that notes don't clash.
+/** This complicated routine moves note columns around horizontally to
+  ensure that notes don't clash.
 
   This should be done better, probably.
 
index 335c92904251d2de49e8a0dbf46790dda6e176cb..6cbd2bc92fc13983d4f5bbd8658d361c25698e5c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  commandrequest.cc -- implement Nonmusical reqs
+  command-request.cc -- implement non-musical reqs
 
   source file of the GNU LilyPond music typesetter
 
@@ -91,9 +91,6 @@ Partial_measure_req::do_print() const
   DOUT << length_mom_;
 }
 
-
-
-
 void
 Time_signature_change_req::do_print() const
 {
@@ -105,7 +102,8 @@ Time_signature_change_req::do_print() const
 bool
 Time_signature_change_req::do_equal_b (Request * r) const
 {
-  Time_signature_change_req * m = dynamic_cast <Time_signature_change_req *> (r);
+  Time_signature_change_req * m
+    = dynamic_cast <Time_signature_change_req *> (r);
 
   return m && m->beats_i_ == beats_i_
     && one_beat_i_ == m->one_beat_i_;
index 409e29a4b89e33ed1f793e56c66c1c2f55a723b0..b499af90b69e42b964283ac9660e1f50368ef561 100644 (file)
 Crescendo::Crescendo ()
 {
   grow_dir_ =0;
-  dir_ = DOWN;
   dyn_b_drul_[LEFT] = dyn_b_drul_[RIGHT] =false;
 }
 
-Interval
-Crescendo::symbol_height () const
-{
-  return get_symbol ().dim_[Y_AXIS];
-}
 
-static Real absdyn_dim = 10 PT;        // ugh
+
 
 Molecule
 Crescendo::get_symbol () const
 {
   Real w_dim = extent (X_AXIS).length ();
+  Real absdyn_dim = paper_l ()-> get_realvar (ly_symbol ("crescendo_shorten"));
   if (dyn_b_drul_[LEFT])
     {
       w_dim -= absdyn_dim;
@@ -64,6 +59,7 @@ Molecule*
 Crescendo::do_brew_molecule_p () const
 {
   Molecule* m_p =0;
+  Real absdyn_dim = paper_l ()-> get_realvar (ly_symbol ("crescendo_shorten"));
   Real x_off_dim=0.0;
   if (dyn_b_drul_[LEFT])
     x_off_dim += absdyn_dim;
@@ -71,9 +67,8 @@ Crescendo::do_brew_molecule_p () const
   m_p = new Molecule;
   Molecule s (get_symbol ());
   m_p->add_molecule (s);
-  m_p->translate (Offset (x_off_dim, coordinate_offset_f_));
+  m_p->translate_axis (x_off_dim, X_AXIS);
   return m_p;
 }
 
 
-
index b5d5d37906e97f6ecf75605916f526c94d1668ff..b0670d523631731b106123a0a309bcd77a9b1227 100644 (file)
@@ -27,6 +27,9 @@ class Dynamic_engraver : public Engraver
 {
   G_text_item * text_p_;
   G_staff_side_item * staff_side_p_;
+  G_staff_side_spanner * ss_span_p_;
+  G_staff_side_spanner * to_end_ss_span_p_;
+  
   
   Crescendo * to_end_cresc_p_;
   Crescendo * cresc_p_;
@@ -54,6 +57,7 @@ Dynamic_engraver::Dynamic_engraver()
   text_p_ =0;
   staff_side_p_ =0;
   to_end_cresc_p_ = cresc_p_ = 0;
+  ss_span_p_ = to_end_ss_span_p_=0;
   cresc_req_l_ = 0;
 }
 
@@ -95,6 +99,7 @@ void
 Dynamic_engraver::do_process_requests()
 {
   Crescendo*  new_cresc_p=0;
+  G_staff_side_spanner * new_sss_p =0;
   for (int i=0; i < dynamic_req_l_arr_.size(); i++)
     {
       if (Text_script_req *absd =
@@ -133,7 +138,7 @@ Dynamic_engraver::do_process_requests()
          announce_element (Score_element_info (staff_side_p_, absd));
        }
       else if (Span_req *span_l
-              = dynamic_cast <Span_req *> (dynamic_req_l_arr_[i]))
+                      = dynamic_cast <Span_req *> (dynamic_req_l_arr_[i]))
        {
          if (span_l->span_dir_ == STOP)
            {
@@ -145,11 +150,14 @@ Dynamic_engraver::do_process_requests()
                {
                  assert (!to_end_cresc_p_);
                  to_end_cresc_p_ =cresc_p_;
+                 to_end_ss_span_p_ = ss_span_p_ ;
+                 
                  cresc_p_ = 0;
+                 ss_span_p_ =0;
                  Scalar prop = get_property ("dynamicDir", 0);
                  if (prop.isnum_b ())
                    {
-                     to_end_cresc_p_->dir_ = (Direction) (int) prop;
+                     to_end_ss_span_p_->dir_ = (Direction) (int) prop;
                    }
                  
                }
@@ -161,6 +169,11 @@ Dynamic_engraver::do_process_requests()
              new_cresc_p  = new Crescendo;
              new_cresc_p->grow_dir_ = (span_l->span_type_str_ == "crescendo")  ? BIGGER : SMALLER;
              announce_element (Score_element_info (new_cresc_p, span_l));
+
+             new_sss_p = new G_staff_side_spanner;
+             new_sss_p->set_victim (new_cresc_p);
+             new_sss_p->axis_ = Y_AXIS;
+             announce_element (Score_element_info (new_sss_p, span_l));
            }
        }
     }
@@ -171,11 +184,15 @@ Dynamic_engraver::do_process_requests()
        {
          ::warning (_ ("Too many crescendi here"));
          typeset_element (cresc_p_);
+         typeset_element (ss_span_p_);
          cresc_p_ = 0;
+         ss_span_p_ =0;
        }
       
       cresc_p_ = new_cresc_p;
+      ss_span_p_ = new_sss_p;
       cresc_p_->set_bounds(LEFT,get_staff_info().musical_pcol_l ());
+      ss_span_p_->set_bounds (LEFT,get_staff_info().musical_pcol_l ());
       if (text_p_)
        {
          cresc_p_->dyn_b_drul_[LEFT] = true;
@@ -201,6 +218,8 @@ Dynamic_engraver::do_removal_processing ()
   if (cresc_p_)
     {
       typeset_element (cresc_p_ );
+      typeset_element (ss_span_p_);
+      ss_span_p_ =0;
       cresc_req_l_->warning (_ ("unended crescendo"));
       cresc_p_ =0;
     }
@@ -214,9 +233,13 @@ Dynamic_engraver::typeset_all ()
   if (to_end_cresc_p_)
     {
       to_end_cresc_p_->set_bounds(RIGHT,get_staff_info().musical_pcol_l ());
+      to_end_ss_span_p_->set_bounds(RIGHT,get_staff_info().musical_pcol_l ());
       typeset_element (to_end_cresc_p_);
+      typeset_element (to_end_ss_span_p_);
       to_end_cresc_p_ =0;
+      to_end_ss_span_p_ =0;
     }
+  
   if (text_p_)
     {
       typeset_element (text_p_);
@@ -237,10 +260,10 @@ Dynamic_engraver::acknowledge_element (Score_element_info i)
       if (staff_side_p_)
        staff_side_p_->add_support (i.elem_l_);
 
-      if (to_end_cresc_p_)
-       to_end_cresc_p_->add_support (i.elem_l_);
+      if (to_end_ss_span_p_)
+       to_end_ss_span_p_->add_support (i.elem_l_);
 
-      if (cresc_p_)
-       cresc_p_->add_support (i.elem_l_);
+      if (ss_span_p_)
+       ss_span_p_->add_support (i.elem_l_);
     }
 }
index 91a6a18195e9ae9eec64f6eb7ae2141066e126ed..437f34fe21ce386ec48afb014cc147d664ee0792 100644 (file)
@@ -1,5 +1,5 @@
 /*   
-  g-staff-side.cc --  implement G_staff_side_item
+  g-staff-side.cc --  implement G_staff_side_element
   
   source file of the GNU LilyPond music typesetter
   
@@ -13,7 +13,7 @@
 #include "warn.hh"
 #include "dimensions.hh"
 
-G_staff_side_item::G_staff_side_item ()
+G_staff_side_element::G_staff_side_element ()
 {
   dir_ = CENTER;
   to_position_l_ = 0;
@@ -25,7 +25,7 @@ G_staff_side_item::G_staff_side_item ()
 
 
 void
-G_staff_side_item::do_pre_processing ()
+G_staff_side_element::do_pre_processing ()
 {
   if (!dir_)
     dir_ = get_default_direction ();
@@ -35,14 +35,14 @@ G_staff_side_item::do_pre_processing ()
 }
 
 Direction
-G_staff_side_item::get_default_direction () const
+G_staff_side_element::get_default_direction () const
 {
   return DOWN;
 }
 
 
 void
-G_staff_side_item::set_victim (Score_element *e)
+G_staff_side_element::set_victim (Score_element *e)
 {
   add_dependency (e);
   to_position_l_ = e;
@@ -50,7 +50,7 @@ G_staff_side_item::set_victim (Score_element *e)
 }
 
 void
-G_staff_side_item::add_support (Score_element*e)
+G_staff_side_element::add_support (Score_element*e)
 {
   add_dependency (e);
   support_l_arr_.push (e);
@@ -58,7 +58,7 @@ G_staff_side_item::add_support (Score_element*e)
 
 
 void
-G_staff_side_item::do_substitute_element_pointer (Score_element*o, Score_element*n)
+G_staff_side_element::do_substitute_element_pointer (Score_element*o, Score_element*n)
 {
   Staff_symbol_referencer::do_substitute_element_pointer (o,n);
   if (o == to_position_l_)
@@ -68,7 +68,7 @@ G_staff_side_item::do_substitute_element_pointer (Score_element*o, Score_element
 }
 
 void
-G_staff_side_item::position_self ()
+G_staff_side_element::position_self ()
 {
   if (to_position_l_ &&
       to_position_l_->get_elt_property (transparent_scm_sym) != SCM_BOOL_F)
@@ -85,6 +85,7 @@ G_staff_side_item::position_self ()
        {
          Score_element * e = support_l_arr_ [i];
          Real coord = e->relative_coordinate (common, axis_);
+
          dim.unite (coord + e->extent (axis_));
        }
     }
@@ -116,7 +117,7 @@ G_staff_side_item::position_self ()
 }
 
 void
-G_staff_side_item::do_post_processing ()
+G_staff_side_element::do_post_processing ()
 {
   if (axis_ == Y_AXIS)
     position_self ();
@@ -124,7 +125,7 @@ G_staff_side_item::do_post_processing ()
 
 
 void
-G_staff_side_item::do_add_processing ()
+G_staff_side_element::do_add_processing ()
 {
   if (staff_support_b_
       && axis_ == Y_AXIS && staff_symbol_l ())
@@ -134,7 +135,7 @@ G_staff_side_item::do_add_processing ()
 }
 
 Interval
-G_staff_side_item::do_height () const
+G_staff_side_element::do_height () const
 {
   Interval i;
   if (to_position_l_)
@@ -142,6 +143,19 @@ G_staff_side_item::do_height () const
   return i;
 }
 
+void
+G_staff_side_element::do_print () const
+{
+#ifndef NPRINT
+  if (to_position_l_)
+    DOUT << "positioning " << to_position_l_->name();
+
+  DOUT << "axis == " << axis_name_str (axis_)
+       << ", dir == " << to_str (dir_ );
+#endif
+}
+
+
 Interval
 G_staff_side_item::do_width () const
 {
@@ -150,14 +164,15 @@ G_staff_side_item::do_width () const
     return to_position_l_->extent (X_AXIS);
   return i;
 }
+
 void
 G_staff_side_item::do_print () const
 {
-#ifndef NPRINT
-  if (to_position_l_)
-    DOUT << "positioning " << to_position_l_->name();
+  G_staff_side_element::do_print ();
+}
 
-  DOUT << "axis == " << axis_name_str (axis_)
-       << ", dir == " << to_str (dir_ );
-#endif
+void
+G_staff_side_spanner::do_print () const
+{
+  G_staff_side_element::do_print ();
 }
index 446e0649a6fda32562589d594990934d85226c95..4d96f2ff52add8f4c066fcc8acb1f4c55fdba0ce 100644 (file)
@@ -51,5 +51,5 @@ G_stem_staff_side_item::do_pre_processing ()
                        gh_double2scm(stem_l_->staff_line_leading_f ()
                                      * gh_scm2double (p)));
     }
-  G_staff_side_item :: do_pre_processing ();
+  G_staff_side_item::do_pre_processing ();
 }
index 10daaef6c1909723034c7d5fe1b59ca8362fe3ef..89bdd3b95aa4c7536f43fad4d1fa53282d1ec5d0 100644 (file)
@@ -130,3 +130,13 @@ Graphical_element::name () const
 {
   return classname (this);
 }
+
+void
+Graphical_element::print () const
+{
+#ifndef NPRINT
+  DOUT << classname (this) << "{\n";
+  do_print ();
+  DOUT << "}\n";
+#endif
+}  
index d2b98fa7ce4f97d62bcaeffaf916f0b0f9e96f1f..120f14920da0cc2ec072518e672af11e1ede142a 100644 (file)
 /// align breakable items (clef, bar, etc.)
 class Break_align_item : public Axis_align_item {
 
+
 protected:
   virtual void do_pre_processing();
 public:
+  void add_breakable_item (Item *it);
+
   Break_align_item ();
   VIRTUAL_COPY_CONS(Score_element);
        
index f054deb541efdf0519e6f7586a8bac1db00bedcb..f0364a2c037126c366d77722c38b52cd650ab838 100644 (file)
 #ifndef CRESCENDO_HH
 #define CRESCENDO_HH
 
-#include "staff-side.hh"
 #include "spanner.hh"
 /**
   The hairpin symbol. (cresc)
  */
-class Crescendo : public Spanner , public Staff_side {
+class Crescendo : public Spanner {
 public:
   int grow_dir_;
     
@@ -26,8 +25,6 @@ public:
 protected:
   VIRTUAL_COPY_CONS(Score_element);
   virtual Molecule*do_brew_molecule_p() const;
-  virtual Interval symbol_height() const;
-  
     
 private:
   Molecule get_symbol() const;
index e6808863a6eee45ca0590ed6641a3e30048d6ad4..9acdbca344a5e9a35de315eb9645f7b066d1bdbe 100644 (file)
@@ -10,6 +10,7 @@
 #ifndef G_STAFF_SIDE_HH
 #define G_STAFF_SIDE_HH
 
+#include "spanner.hh"
 #include "item.hh"
 #include "staff-symbol-referencer.hh"
 
@@ -23,7 +24,7 @@
 
     Amount of extra space to add.
 */
-class G_staff_side_item : public Item, public Staff_symbol_referencer
+class G_staff_side_element :  public Staff_symbol_referencer
 {
   void position_self ();
 
@@ -35,7 +36,7 @@ public:
   //junkme.
   bool staff_support_b_;
   
-  G_staff_side_item ();
+  G_staff_side_element ();
   void set_victim (Score_element*);
   void add_support (Score_element*);
 
@@ -43,7 +44,6 @@ public:
   virtual Direction get_default_direction () const;
 protected:
   virtual Interval do_height () const;
-  virtual Interval do_width () const;
   virtual void do_print () const;
   virtual void do_add_processing ();
   virtual void do_substitute_element_pointer (Score_element*,Score_element*);
@@ -51,5 +51,22 @@ protected:
   virtual void do_post_processing ();
 };
 
+class G_staff_side_item : public G_staff_side_element, public Item
+{
+public:
+  VIRTUAL_COPY_CONS(Score_element);
+protected:
+  virtual Interval do_width () const;
+  virtual void do_print () const;
+};
+
+class G_staff_side_spanner : public G_staff_side_element, public Spanner
+{
+public:
+  VIRTUAL_COPY_CONS(Score_element);
+protected:
+  virtual void do_print () const;
+};
+
 #endif /* G_STAFF_SIDE_HH */
 
index c84a21f7177b0b095ddeb3968606288c164f8bf6..819a0ea31fba6dbab0ebe4e2bc0583cb51eb9c59 100644 (file)
@@ -62,6 +62,7 @@ public:
   Graphical_element *parent_l (Axis a) const;
   
   virtual void do_print () const;
+  virtual void print () const;  
 };
 
 #endif // GRAPHICAL_ELEMENT_HH
index 7d94aa2cebb360bad96b51daad30dad256aa2ae9..dc99b23c714e971019ff446ea30e8f73797d3f0c 100644 (file)
@@ -28,6 +28,7 @@ DECLARE_LY_SYMBOL(change);
 DECLARE_LY_SYMBOL(damping);
 DECLARE_LY_SYMBOL(dashed);
 DECLARE_LY_SYMBOL(extremal);
+DECLARE_LY_SYMBOL(extra_space);
 DECLARE_LY_SYMBOL(dir_forced);
 DECLARE_LY_SYMBOL(extender_height);
 DECLARE_LY_SYMBOL(filledbox);
index a8f51ab6e8e11ffa4f955ddf53a6812fa617e766..16aee2493e37d4f95b6160f93f0fd32cb9988e34 100644 (file)
@@ -73,6 +73,7 @@ public:
   String style_str_;
 protected:
   VIRTUAL_COPY_CONS(Music);
+  virtual bool do_equal_b (Request*)const;
   virtual void do_print () const;
 };
 
diff --git a/lily/include/staff-side.hh b/lily/include/staff-side.hh
deleted file mode 100644 (file)
index da73a3c..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-  staff-side.hh -- declare Staff_side
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef STAFF_SIDE_HH
-#define STAFF_SIDE_HH
-
-#include "score-element.hh"
-#include "interval.hh"
-#include "direction.hh"
-#include "staff-symbol-referencer.hh"
-
-/**
-
-   A symbol which sits either below or above "something" (usually, a
-   staff).
-
-*/
-class Staff_side : public  Staff_symbol_referencer 
-{
-public:
-
-  /**
-    Vertical dir of symbol relative to staff. -1 = below staff?
-    */
-  Direction dir_;
-  Axis axis_;
-  Interval sym_int_;
-    
-  Real coordinate_offset_f_;
-
-  /**
-     Add extra vertical space to the support symbols.
-   */
-  Real padding_f_;
-
-  Staff_side ();
-  void add_support (Score_element*);
-  
-    
-protected:
-  virtual Interval symbol_height () const;
-  Interval symbol_extent () const;
-  virtual Real get_position_f () const;
-  virtual void do_substitute_element_pointer (Score_element *, Score_element*);
-  virtual void do_pre_processing ();
-  virtual void do_post_processing ();
-  virtual void do_add_processing ();
-  Interval support_extent () const;
-private:
-  void do_side_processing ();
-  Link_array<Score_element> support_l_arr_;
-};
-
-#endif // STAFF_SIDE_HH
index 59512ca5e17e6fe6766b741d06f772a17dc922cd..cb81818d3d701b23740f5a9af127f19d79bdfa9e 100644 (file)
@@ -171,6 +171,13 @@ Text_script_req::do_print () const
        << ", style = " << style_str_;
 }
 
+bool
+Text_script_req::do_equal_b (Request *r) const
+{
+  Text_script_req * t  = dynamic_cast<Text_script_req*>(r);
+  return t && t->text_str_ == text_str_ && t->style_str_ == style_str_;
+}
+
 void
 Articulation_req::do_print () const
 {
index 1cb84c94817034d6508eb88147affae5e4144f29..7c833def052075f8e4fbc2e2b0d4397e8560797b 100644 (file)
@@ -9,17 +9,11 @@
 #include "request.hh"
 #include "debug.hh"
 
-
-
-
 void
 Request::do_print() const
 {
 }
 
-
-
-
 bool
 Request::equal_b (Request *r) const
 {
@@ -30,6 +24,5 @@ bool
 Request::do_equal_b (Request*) const
 {
   return true;
-
 }
   
index 463cff1ca15b27e6fa04355b73b444b5376f9e98..0948bc753751ae7f68598c05f5c56bdfe66d56e3 100644 (file)
@@ -6,7 +6,6 @@
   (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
-
 #include "axis-group-item.hh"
 #include "score-priority-engraver.hh"
 #include "item.hh"
@@ -31,27 +30,11 @@ Score_priority_engraver::do_pre_move_processing()
       typeset_element (halign_p_);
       halign_p_ =0;
     }
-  
-}
-
-void
-Score_priority_engraver::add_horizontal_group (Item* it, int priority)
-{
-  if (!halign_p_)
-    {
-      halign_p_ = new Break_align_item;
-      halign_p_->set_elt_property (breakable_scm_sym, SCM_BOOL_T);
-      announce_element (Score_element_info (halign_p_,0));
-    }
-
-  if (priority == 0)
-    halign_p_->center_l_ = it;
-
-  halign_p_->add_element_priority (it, priority);
-
-  column_p_arr_.push (it);
 }
 
+/*
+  TODO: move this logic into Break_align_item
+ */
 void
 Score_priority_engraver::acknowledge_element (Score_element_info inf)
 {
@@ -61,40 +44,20 @@ Score_priority_engraver::acknowledge_element (Score_element_info inf)
       if (c->empty_b () || c->parent_l_)
        return;
 
-      SCM pr = item_l->remove_elt_property (break_priority_scm_sym); 
-
-      if (pr == SCM_BOOL_F)
-       return;
-
-      bool breakable = (item_l->remove_elt_property (breakable_scm_sym) != SCM_BOOL_F);
+      bool breakable
+       = (item_l->remove_elt_property (breakable_scm_sym) != SCM_BOOL_F);
       if (!breakable)
        return ;
-      
-      int priority = gh_scm2int (SCM_CDR (pr));
-      
-      Score_element * column_l = 0;
-      if (halign_p_)
-       column_l = halign_p_->get_elt_by_priority (priority);
-      Axis_group_item * hg=0;
-      if (column_l)
-       {
-         hg = dynamic_cast<Axis_group_item*> (column_l);
-       }
-      else
+
+
+      if (!halign_p_)
        {
-         hg = new Axis_group_item;
-         hg->set_axes (X_AXIS,X_AXIS);
-         hg->set_elt_property (ly_symbol("origin"),
-                               SCM_EOL);
-         announce_element (Score_element_info (hg,0));
-         add_horizontal_group (hg, priority);
+         halign_p_ = new Break_align_item;
+         halign_p_->set_elt_property (breakable_scm_sym, SCM_BOOL_T);
+         announce_element (Score_element_info (halign_p_,0));
        }
-      
-      hg->set_elt_property (ly_symbol("origin"),
-                           scm_cons (gh_str02scm (item_l->name()),
-                                     hg->get_elt_property (ly_symbol ("origin"))));
-      hg->add_element (item_l);
-      
+
+      halign_p_->add_breakable_item (item_l);
     }
 }
 
index 6d5e2e1767cc326e0b6c2642ceef5ce4946f34bf..77848e79faec7f323b472c56f5d2499611f6c3d7 100644 (file)
@@ -39,7 +39,7 @@ Single_malt_grouping_item::my_width () const
       if (pc != il->column_l ())
        {
          /* this shouldn't happen, but let's continue anyway. */
-         warning (_("Single_malt_grouping_item: I've been drinking too much (fixme)"));
+         programming_error (_("Single_malt_grouping_item: I've been drinking too much"));
          continue;             /*UGH UGH*/ 
        }
 
diff --git a/lily/staff-side.cc b/lily/staff-side.cc
deleted file mode 100644 (file)
index d223a73..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
-  staff-side.cc -- implement Staff_side
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include "interval.hh"
-#include "paper-def.hh"
-#include "staff-side.hh"
-#include "staff-symbol.hh"
-#include "debug.hh"
-#include "dimensions.hh"
-
-
-Staff_side::Staff_side()
-{
-  coordinate_offset_f_=0;
-  sym_int_ = Interval (0,0);
-  padding_f_ = 0.0;
-  dir_ = CENTER;
-  axis_ = Y_AXIS;
-}
-
-
-Interval
-Staff_side::support_extent() const
-{
-  Interval y_int;
-  for (int i=0; i < support_l_arr_.size(); i++) 
-    {
-      Dimension_cache *common = 
-       common_group (support_l_arr_[i], axis_);
-       
-      Real y = support_l_arr_[i]->relative_coordinate (common, axis_)  
-       -relative_coordinate (common,axis_);
-
-      y_int.unite (y + support_l_arr_[i]->extent(axis_));
-    }
-
-  if (y_int.empty_b())
-    {
-      y_int = Interval (0,0);
-    }
-  return Interval(y_int[LEFT] - padding_f_, y_int[RIGHT] + padding_f_);
-}
-
-void
-Staff_side::add_support (Score_element*i)
-{
-  support_l_arr_.push (i);
-  add_dependency (i);
-}
-
-Real
-Staff_side::get_position_f () const
-{
-  if (!dir_)
-    {
-      warning (_ ("Staff_side::get_position_f(): "
-                "somebody forgot to set my direction, returning -20"));
-      return -20;
-    }
-
-
-  Real y = 0;
-  Real inter_f = staff_line_leading_f () /2;
-
-  Interval v = support_extent();
-
-  // ugh, dim[y] = PT over here
-  y = v[dir_] + 1 * dir_ * inter_f;
-
-  int coordinate_offset_f_i = (int)rint (y / inter_f);
-  if (axis_ == Y_AXIS && abs (coordinate_offset_f_i) < lines_i ())
-    {
-      if (!(abs (coordinate_offset_f_i) % 2))
-       y += (Real)dir_ * inter_f;
-    }
-
-  return y;
-}
-
-Interval
-Staff_side::symbol_height() const
-{
-  return Interval (0,0);
-}
-
-void
-Staff_side::do_pre_processing ()
-{
-  if (axis_== X_AXIS)
-    do_side_processing ();
-}
-
-void
-Staff_side::do_side_processing ()
-{
-  sym_int_ = symbol_extent();
-  coordinate_offset_f_ = get_position_f();
-  if (dir_)
-    coordinate_offset_f_ += - sym_int_[-dir_];
-
-}
-
-/*
-  ugh should use do_width (), do_height (), get_extent ()
- */
-Interval
-Staff_side::symbol_extent () const
-{
-  if (axis_ == Y_AXIS)
-    return symbol_height ();
-  else
-    {
-      assert (false);
-    }
-}
-
-
-void
-Staff_side::do_post_processing()
-{
-  if (axis_ == Y_AXIS)
-    do_side_processing ();
-}
-
-void
-Staff_side::do_substitute_element_pointer (Score_element*o, Score_element*n)
-{
-  Staff_symbol_referencer::do_substitute_element_pointer (o,n);
-  support_l_arr_.unordered_substitute (o,n);
-}
-
-void
-Staff_side::do_add_processing ()
-{
-  if (axis_ == Y_AXIS && staff_symbol_l ())
-    add_support (staff_symbol_l ());
-}
-
index a12244d0c7345a5c25a3456bf781421ef5ec8701..492d6b981b5314ea227c461255991318ee6c0018 100644 (file)
@@ -114,12 +114,19 @@ VoiceContext = \translator {
        \consists "Slur_engraver";
        \consists "Tie_engraver";
        \consists "Tuplet_engraver";    
-       \consists "Note_heads_engraver" ;       
        \consists "Skip_req_swallow_translator";
+       \accepts Thread; % bug if you leave out this!
 };
 
 \translator {\VoiceContext}
 
+ThreadContext = \translator{
+       \type Engraver_group_engraver;
+       \consists "Note_heads_engraver" ;       
+       \name Thread;
+};
+
+\translator{\ThreadContext}
 GrandStaffContext=\translator{
        \type "Engraver_group_engraver";
        \name GrandStaff;
index c18c9a85f4ded64b42fae358bb8f19ecf58ed6f5..845417014aca099d662f6185ec1e93921396b9fe 100644 (file)
@@ -135,6 +135,10 @@ extender_height = 0.8*\staffline;
 % Multi-measure rests
 mmrest_x_minimum = 2.0*\staffheight;
 
+
+% chop off this much when next to pp / ff sign.
+crescendo_shorten = 4.0 * \interline;
+
 % in internote.
 restcollision_minimum_dist = 3.0;
 restcollision_minimum_beamdist = 1.5;
index f0f0ddf6c48f51454e466adcb22a359dc227806f..ede2be764d2ccc63cefaf0aad3353366c142114b 100644 (file)
@@ -139,16 +139,16 @@ pleton = {
        \property Voice.pletvisibility = 3
 }
 tiny  = {
-       \property Voice.fontsize= "-2"
+       \property Voice.fontSize= "-2"
        \pletoff %urg
 }
 
 small  = {
-       \property Voice.fontsize= "-1"
+       \property Voice.fontSize= "-1"
 }
 
 normalsize = {
-       \property Voice.fontsize= "0"
+       \property Voice.fontSize= "0"
        \pleton %urg
 }
 
index a785c8213cb05e1f5aaabcebd8dad76dc361163d..552cb9c4e1f6206bafc5f9eac2641cc1194e6ea9 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Titel: LilyPond
-Versie: 1.1.44
-Inschrijf datum: 25MAY99
+Versie: 1.1.45
+Inschrijf datum: 28MAY99
 Beschrijving: @FLAPTEKST@
 Trefwoorden: muziek typezetten midi notatie
 Auteur: hanwen@stack.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Onderhouden door: hanwen@cs.ruu.nl (Han-Wen Nienhuys)
 Voornaamste plek: sunsite.unc.edu /pub/Linux/apps
-       770k lilypond-1.1.44.tar.gz 
+       770k lilypond-1.1.45.tar.gz 
 Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       770k lilypond-1.1.44.tar.gz 
+       770k lilypond-1.1.45.tar.gz 
 Copi-eer voorwaarden: GPL
 End
index 66b18d3008dbbda8305edbe5dccc1271eebd80c7..d2add6d79886ca58fffd133acad2f3818bb35e1a 100644 (file)
@@ -1,7 +1,7 @@
 Begin3
 Title: LilyPond
-Version: 1.1.44
-Entered-date: 25MAY99
+Version: 1.1.45
+Entered-date: 28MAY99
 Description: 
 LilyPond is the GNU Project music typesetter.  This program can print
 beautiful sheet music from a music definition file.  It can also play
@@ -14,8 +14,8 @@ Author: hanwen@cs.ruu.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
-       770k lilypond-1.1.44.tar.gz 
+       770k lilypond-1.1.45.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       770k lilypond-1.1.44.tar.gz 
+       770k lilypond-1.1.45.tar.gz 
 Copying-policy: GPL
 End
index 2f7efa761194cd04defde08f58b9058d6ec55385..e6d7b1f5afa79027908323f4523af0655c4eac0e 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.1.44
+Version: 1.1.45
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.44.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.45.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 Packager: Han-Wen Nienhuys <hanwen@cs.uu.nl>
index 5624bd37e154cdb4f44ea0ca04ba5b57ce006809..a4439356a1860c4bdd9c20bd21c66b1fcdce7c46 100644 (file)
@@ -437,17 +437,17 @@ c4. r8 |
 R2*8 |
 e4. \f r8 |
 e4. r8 |
-r4 e-> ~ |
-d8 r e4-> ~ |
-d8 r d4 ~ |
-e8 r r4 |
-r e ~ |
-d8 r e4 ~ |
-d8 r d4 ~ |
-e8 r r4 |
-r e_"dim." |
-d8 r e4 ~ |
-d8 r r4 |
+r4 e-> ( |
+) d8 r e4-> ( |
+) d8 r d4 ( |
+e8 r r4 |
+r e ( |
+) d8 r e4 ( |
+) d8 r d4 ( |
+e8 r r4 |
+r e_"dim." |
+) d8 r e4 ( |
+d8 r r4 |
 R2*47 |
 g,2 \f ~ |
 g4 r |
@@ -497,9 +497,9 @@ e r |
 d r |
 d r |
 g, r |
-e' ~ d8 r |
+e' () d8 r |
 g,4 r |
-e' ~ d8 r |
+e' () d8 r |
 e4-. r |
 d-. r |
 d8-. r d-. r |
@@ -583,7 +583,7 @@ R2*12 |
 g2 \f ~ |
 g4 r |
 g r |
-g' ~ fis8 r |
+g' () fis8 r |
 R2 |
 d'4 r |
 R2 |
@@ -599,17 +599,17 @@ c4. r8 |
 R2*8 |
 e4. \f r8 |
 e4. r8 |
-r4 g4 ~ |
-fis8 r g4 ~ |
-fis8 r d'4 ~ |
-e8 r r4 |
-r g, ~ |
-fis8  r g4 ~ |
-fis8  r d'4 ~ |
-e8 r r4 |
-r g, ~ |
-fis8_"dim." r g4 ~ |
-fis8 r r4 |
+r4 g4 ( |
+) fis8 r g4 ( |
+) fis8 r d'4 ( |
+e8 r r4 |
+r g, ( |
+) fis8  r g4 ( |
+) fis8  r d'4 ( |
+e8 r r4 |
+r g, ( |
+) fis8_"dim." r g4 ( |
+fis8 r r4 |
 R2*47 |
 g,2 \f ~ |
 g4. r8 |
@@ -654,9 +654,9 @@ e r |
 d' r |
 d r |
 g,, r |
-c' ~ g8 r |
+c' () g8 r |
 g,4 r |
-c' ~ g8 r |
+c' () g8 r |
 g4 r |
 fis r |
 g8-. r g-. r | % Staccato copied from trp. I
@@ -684,8 +684,8 @@ R2.*5 |
 f2.:32 \pp ~ |
 f2.:32 ~ |
 f2.:32 ~ |
-f2.:32 ~ |
-c'4 r r |
+f2.:32 ( |
+c'4 r r |
 R2.*3 |
 c2.:32 \pp |
 c2.:32 |
index ec55e58ff8e605af466f94294aff25718f565d7c..25902f259e9bf9f4a267065ef829dc6c36be42f3 100644 (file)
@@ -123,7 +123,7 @@ copyright = "Mats Bengtsson, 1999. Free circulation permitted and " +
        textstyle = "italic";
        textScriptPadding = 5.0;
         textEmptyDimension = 1;
-        oldTieBehavior = 1;
+%        oldTieBehavior = 1;
     }
     \translator { \VoiceContext
         oldTieBehavior = 1;
index af2739b0ada99fcc377ce375cf150a0c2ec2daa6..373cacafdedc830b7266385617d51e6233a6cb0d 100644 (file)
@@ -118,8 +118,8 @@ b2 \p | % \p added
 \! e ) b |
 \tiny d8*1/2 \normalsize f2 \fz ( *7/8 |
 b,4 [c8 ) b] |
-a2-> ~ |
-gis4 e |
+a2-> ( |
+gis4 e |
 a ( ) e' |
 e-.  \< () \! e-. |
 e ( \fz \> [ d8 \! c ] |
@@ -130,8 +130,8 @@ e ( \fz \> [ d8 \! c ] |
 \! e ) b |
 \tiny d8*1/2 \normalsize f2 \fz ( *7/8 |
 b,4 [c8 ) b] |
-a2 \p ~ |
-gis |
+a2 \p ( |
+gis |
 \tiny a8*1/2 \normalsize d2 ( \> *7/8 |
 b4 [ c8 \! b ] |
 a2 \p |
@@ -213,8 +213,8 @@ e^\trill \tiny [d16*1/2 e*1/2] \normalsize [f8 *1/2 ) es' \f ( ] |
 \! f2 ( ~ |
 f4 g |
 f ) e |
-es2 ~ |
-d4 r |
+es2 ( |
+d4 r |
 \tiny f'8*1/2 \normalsize a4 \fz ( *3/4 e |
 f b, |
 ) c r |
@@ -413,10 +413,10 @@ f2 ( \> |
 [ a,16 ( d a d ][a d a d] |
 [ b16 d b d ][b d b ) d] |
 R2 |
-r8 [e16^"solo" ( f] ) e4 ~ |
-d2_"dim." ~ |
-d ~ |
-c4 r |
+r8 [e16^"solo" ( f] ) e4 ( |
+d2_"dim." ~ |
+d ( |
+c4 r |
 r r8 d' ( |
 [ ) a bes () g d' ( ] |
 [ a ) bes g ] r |
@@ -595,9 +595,9 @@ c, ~ c' r |
 [c,8 ( g' ][ c g c a ] |
 [bes c ] ) a4 r |
 R2. |
-r4 r dis, \< ~ |
-\! e r dis' \pp ~ |
-e r r |
+r4 r dis, \< ( |
+) \! e r dis' \pp ( |
+e r r |
 R2. |
 r4 r c, \pp ~ |
 c2. ~ |
@@ -770,8 +770,8 @@ r r8 <f \p c'> |
 <f2:8 c'2:8> |
 <f2:8 \< c'2:8> |
 <f2:8 \! c'2:8> |
-<{[f8 f f fis \f ~ ]}{[c'8 c c s]}> |
-<a4. fis'4.> fis'8 |
+<{[f8 f f fis \f (( ]}{[c'8 c c s]}> |
+< ) a4. ) fis'4.> fis'8 |
 [g d g <g, ( c,> ] |
 <c4. \fz ) g'> <g8 ( c,> |
 <c4. \fz ) g'> c,8 ( |
@@ -813,10 +813,10 @@ g f4 \f f8 ( |
 <bes4._> ) f' > g8 ( |
 <d'4._> ) bes' > e,!8 ( |
 <c'4._> ) g' > <g8 ( c, > |
-<c4._> ) g' > c,8 ~ |
-f4. a8 ( |
-[d f ) a ] c,,8 ~ |
-f4. a8 ( |
+<c4._> ) g' > c,8 ( |
+f4. a8 ( |
+[d f ) a ] c,,8 ( |
+f4. a8 ( |
 [d f ) a ] [f16 ( g ] |
 [f g f d ][ ) b8 bes'!16 ( c ] |
 [bes c bes g][ ) e8 c'16 ( d ] |
@@ -970,8 +970,8 @@ g4:16 \< \! a4:16 |
 g4:16 \> a4:16 |
 g4:16 \! a4:16 |
 gis2 \fz ~ |
-gis ~ |
-f \p \> |
+gis ( |
+f \p \> |
 \! e_"dim." |
 d |
 e |
@@ -1218,9 +1218,9 @@ e2 \> ~ |
 e2 \> ~ |
 \! e4 r |
 e2 \fz ~ |
-e ~ |
-f \p ~ |
-e |
+e ( |
+) f \p ( |
+e |
 d \> ( |
 e |
 \! f \p |
index 25f85920b790e071d06cdde288df6e2f18ea5f80..17ee1524563edc244d4a101955102a7bd2d8894f 100644 (file)
@@ -411,10 +411,10 @@ fis r g d'-. \p |
 [g8 e ) d ] g, ( |
 [g' e ) d ] b ( |
 [b' g ) fis] b |
-f2 ~ |
-fis!4 r8 b ( |
-) f2 ~ |
-fis!4 r8 b |
+f2 ( |
+fis!4 r8 b ( |
+) f2 ( |
+fis!4 r8 b |
 f r e r |
 d r d r |
 cis r r4 |
@@ -432,12 +432,12 @@ b2 ~ |
   \context Voice = x {s8.. \tiny cis8 } >
 [fis''-. f-. f-. e-. ] |
 [e-. \< dis-. dis-. \! d-. ] |
-d r b4 \f ~ |
-cis8 [a'16-> ( b] ) a8 fis-. \p | % \p added
+d r b4 \f ( |
+cis8 [a'16-> ( b] ) a8 fis-. \p | % \p added
 [fis-. f-. f-. e-. ] |
 [e-. dis-. dis-. d-. ] |
-d r b4 \f ~ |
-cis8 [a'16-> ( b] ) a8 r |
+d r b4 \f ( |
+cis8 [a'16-> ( b] ) a8 r |
 d,4. r8 |
 d4.-> r8 |
 R2*2 |
@@ -448,56 +448,56 @@ cis4.-> fis8-. \p | % \p added
 [fis-. \< f-. f-. e-. ] |
 [\! e-. d-. d-. ] [fis16 \mf ( g ] |
 ) fis8 [f16 ( g] ) f8-. [e16 \< ( fis ] |
-) e8 [\! d16 ( e ] ) d8-. c! \f ~ |
-c'4.-> b8 |
-[g-. fis-. e-.] g,8 ~ |
-b'4. \fz a,8 ~ |
-a'4. \fz a,8 ~ |
-fis' r a4-> ~ | % -> added
-fis8 r a4-> ~ |
-fis8 r f4 ~ |
-e8 [a,16 ( b ] ) a8 a ~ |
-fis' r a4-> ~ |
-fis8 r a4-> ~ |
-fis8 r f4 ~ |
-e8 [a,16 ( b ] ) a8 a ~ |
-fis' r a4_"dim." ~ |
-fis8 r e4 ~ |
-fis8 r a4 ~ |
-fis8 r e4 \p ~ |
-fis8 r r4 |
+) e8 [\! d16 ( e ] ) d8-. c! \f ( |
+c'4.-> b8 |
+[g-. fis-. e-.] g,8 ( |
+) b'4. \fz a,8 ( |
+) a'4. \fz a,8 ( |
+) fis' r a4-> ( | % -> added
+) fis8 r a4-> ( |
+) fis8 r f4 ( |
+) e8 [a,16 ( b ] ) a8 a ( |
+) fis' r a4-> ( |
+) fis8 r a4-> ( |
+) fis8 r f4 ( |
+) e8 [a,16 ( b ] ) a8 a ( |
+) fis' r a4_"dim." ( |
+) fis8 r e4 ( |
+) fis8 r a4 ( |
+) fis8 r e4 \p ( |
+fis8 r r4 |
 R2*3 |
 fis,2 \pp ~ |
 fis ~ |
 fis ~ |
 fis4 r |
 R2*4 |
-e'2 \fz \> ~ |
-\! fis,4 r |
-b2 \> ~ |
-\! ais4 r |
+e'2 \fz \> ( |
+\! fis,4 r |
+b2 \> ( |
+\! ais4 r |
 fis2 \pp \< ~ |
 \! fis ~ |
 fis \> ~ |
 \! fis4 r |
 R2*4 |
-e'2 \fz \> ~ |
-\! fis,4 r |
-e'2 \p ~ |
-ais, |
+e'2 \fz \> ( |
+\! fis,4 r |
+e'2 \p ( |
+ais, |
 R2*2 |
-e'2 \p ~ |
-ais, |
-b ~ |
-ais |
-b_"dim." ~ |
-ais ~ |
+e'2 \p ( |
+) ais, |
 b ( |
+) ais |
+b_"dim." ( |
+) ais ( |
+) b ( |
 c4 ) b8 r |
 e-. r e-. r |
 e-. r e-. r |
-c2 ( ~ |
-d4 ) c8 r |
+c2 ( ( |
+d4 ) c8 r |
 d-. r d-. r |
 d-. r [d-. d-. ] |
 [c-. \< b-. a-. g-. ] |
@@ -509,11 +509,11 @@ d-. r [d-. d-. ] |
 [g a g e][c e g a] |
 [c8 a ) g ] c, ( |
 [c' a ) g] r |
-[e ( c ) b ] e ~ |
-ais,2 ~ |
-b4 r8 e ~ |
-ais,2 ~ |
-b4 r8 e |
+[e ( c ) b ] e ( |
+) ais,2 ( |
+) b4 r8 e ( |
+) ais,2 ( |
+b4 r8 e |
 bes r a r |
 g r e' r |
 d [a16 ( b ][c! d c b] |
@@ -530,41 +530,41 @@ e2 ~ |
 ) fis r r [d'16 \p ( e] |
 ) d8-. [cis16 ( d] ) cis8-. [c16 ( d] |
 ) c8-. [ b16 ( c] ) b8-. [bes16 ( c ] |
-) bes8-. r e4 \f ~ |
-[fis8 d16 ( e] ) d8 [d16 \p ( e] |
+) bes8-. r e4 \f ( |
+[ ) fis8 d16 ( e] ) d8 [d16 \p ( e] |
 ) d8-. \< [cis16 ( d] ) cis8-. [c16 ( d] |
 ) c8-. [ b16 ( c] ) b8-. [bes16 ( \! c ] |
-) bes8-. r e4 \f ~ |
-[fis8 d16 ( e] ) d8 f ~ |
-b4.-> f8 ~ |
-b4.-> r8 |
+) bes8-. r e4 \f ( |
+[ ) fis8 d16 ( e] ) d8 f ( |
+) b4.-> f8 ( |
+b4.-> r8 |
 R2 |
-r4 r8 f \f ~ |
-b4.-> f8 ~ |
-b4.-> r8 |
+r4 r8 f \f ( |
+) b4.-> f8 ( |
+b4.-> r8 |
 R2 |
 r4 r8 [d,16 \p ( e] |
 ) d8-. [cis16 ( d] ) cis8-. [c16 ( d] |
 ) c8-. \< [ b16 ( c] ) \! b8-. [b'16 ( c ] |
 ) b8-. [bes16 ( c ] ) bes8-. [a16 ( b ] |
-) a8-. [g16 ( as ] ) g8 b, \f ~ |
-f'4.-> r8 |
-r4 r8 c ~ |
-e'4. \fz d,8 ~ |
-d'4. d,8 ~ |
-b' r a4-> ~ |
-g8 r a4-> ~ |
-g8 r g4 ~ |
-fis8 [d16 ( e] ) d8 d ~ |
-g r a4 ~ |
-g8 r a4 ~ |
-g8 r g4 ~ |
-fis8 [d16 ( e] ) d8 c ~ |
-b r c4 ~ |
-b8 r c4_"dim." ~ |
-b8 r c4 ~ |
-b8 r a4 \p ~ |
-g8 r r4 |
+) a8-. [g16 ( as ] ) g8 b, \f ( |
+f'4.-> r8 |
+r4 r8 c ( |
+) e'4. \fz d,8 ( |
+) d'4. d,8 ( |
+) b' r a4-> ( |
+) g8 r a4-> ( |
+) g8 r g4 ( |
+) fis8 [d16 ( e] ) d8 d ( |
+) g r a4 ( |
+) g8 r a4 ( |
+) g8 r g4 ( |
+) fis8 [d16 ( e] ) d8 c ( |
+) b r c4 ( |
+) b8 r c4_"dim." ( |
+) b8 r c4 ( |
+) b8 r a4 \p ( |
+g8 r r4 |
 R2 |
 b'4^"solo" \p ( fis \> |
 g [d8. \! e16 ] |
@@ -583,30 +583,30 @@ R2*2 |
 d4. \fz d8 \> |
 [d d \! d] r |
 R2*3 |
-r4 r8 c \f ~ |
-c'4. e,8 ~ |
-e'4. d,8 ~ |
-d'4. d,8 ~ |
-a'4. fis8 ~ |
-g4 r8 g ~ |
-c4 ~ b8 fis ~ |
-g4 r8 g ~ |
-c4 ~ b8 cis, ~ |
-g'4. c,!8 ~ |
-fis4. fis8 |
+r4 r8 c \f ( |
+) c'4. e,8 ( |
+) e'4. d,8 ( |
+) d'4. d,8 ( |
+) a'4. fis8 ( |
+) g4 r8 g ( |
+) c4 () b8 fis ( |
+) g4 r8 g ( |
+) c4 () b8 cis, ( |
+) g'4. c,!8 ( |
+fis4. fis8 |
 [g-. fis-. g-. fis-. ] |
 [g-. fis-. g-. fis-. ] |
 g-. r fis-. r |
 g r d r |
 [d16 ( e d e][d e d e] |
 [d e d e] [d e d e] |
-) d4 r8 d ~ |
-b'4 r8 d, ~ |
-g4 r8 d ~ |
-b'4 r8 d, ~ |
-g,2 ~ |
-g ~ |
-g'4-. \fz r^\fermata
+) d4 r8 d ( |
+) b'4 r8 d, ( |
+) g4 r8 d ( |
+) b'4 r8 d, ( |
+g,2 ~ |
+g ( |
+g'4-. \fz r^\fermata
 }
 
 
@@ -642,11 +642,11 @@ r4 r8 d-. \p |
 [d e d b][g b d e] |
 [g8 e ) d ] g, ( |
 [g' e ) d ] g, ( |
-[g' e ) d ] b' ~ |
-f2 ~ |
-fis!4 r8 b ( |
-) f2 ~ |
-fis!4 r8 b, ~ |
+[g' e ) d ] b' ( |
+) f2 ( |
+fis!4 r8 b ( |
+) f2 ( |
+fis!4 r8 b, ~ |
 b r b r |
 b r b r |
 a r r4 |
@@ -661,11 +661,11 @@ b4 \> a |
 g2 ~ |
 \! ) g4 r |
 R2*3 |
-r4 gis \f ~ | 
-[ g!8 a16-> ( b ] ) a8 r |
+r4 gis \f ( | 
+[ g!8 a16-> ( b ] ) a8 r |
 R2*2 |
-r4 gis \f ~ | 
-[ g!8 a16 ( b ] ) a8 r |
+r4 gis \f ( | 
+[ g!8 a16 ( b ] ) a8 r |
 fis4. r8 |
 fis4. r8 |
 R2*2 |
@@ -676,20 +676,20 @@ g4. -> r8 |
 R2 |
 r4 r8 a-. \mf |
 [a-. gis-. gis-. g-. ] |
-g [ fis-. fis-. ] fis \f ~ | % \f added
-dis'4.-> r8 |
-r4 r8 g,8 ~ |
-e'4. \fz g,8 ~ |
-e'4. \fz g,8 ~ |
-fis r a4-> ~ |
+g [ fis-. fis-. ] fis \f ( | % \f added
+dis'4.-> r8 |
+r4 r8 g,8 ( |
+) e'4. \fz g,8 ( |
+) e'4. \fz g,8 ( |
+fis r a4-> ~ |
 a8 r a4-> ~ |
-a8 r gis4 ~ |
-[g!8 g-. g-. g~ ] |
-fis! r a4 ~ |
+a8 r gis4 ( |
+[ ) g!8 g-. g-. g ( ] |
+fis! r a4 ~ |
 a8 r a4-> ~ |
-a8 r gis4 ~ |
-g!8 [g-. g-.] g~ |
-fis! r a4_"dim." ~ | % dim. added
+a8 r gis4 ( |
+) g!8 [g-. g-.] g ( |
+fis! r a4_"dim." ~ | % dim. added
 a8 r a4 ~ |
 a8 r a4 ~ |
 a8 r a4 \p ~ |
@@ -700,17 +700,17 @@ fis ~ |
 \! fis \>~ |
 \! fis4 r |
 R2*4 |
-g2 \f \> ~ |
-\! fis4 r |
-b2 \> ~ |
-\! ais4 r |
+g2 \f \> ( |
+\! fis4 r |
+b2 \> ( |
+\! ais4 r |
 fis2 \pp \< ~ |
 fis ~ |
 \! fis \>~ |
 \! fis4 r |
 R2*16 |
-f2 \pp ~ |
-g4. r8 |
+f2 \pp ( |
+g4. r8 |
 b-. r a-. r |
 b-. r a-. r |
 a2 ~ |
@@ -726,12 +726,12 @@ a r [g-. \p d'-. ] |
 [g a g e][c e g a] |
 [c8 a ) g ] c, ( |
 [c' a ) g] r |
-[c, ( a ) g ] e' ~ |
-ais,2 ~ |
-b4 r8 e ~ |
-ais,2 ~ |
-b4 r8 e ~ |
-bes r a r |
+[c, ( a ) g ] e' ( |
+) ais,2 ( |
+) b4 r8 e ( |
+) ais,2 ( |
+) b4 r8 e ( |
+bes r a r |
 g r g r |
 [fis ( a16 b ][c! d c b] |
 [a b a g] ) fis8 r |
@@ -747,62 +747,62 @@ fis4  \> g_"dim." ( |
 r r8 b-. \p |
 b [ais-. \< ais-. a-. ] |
 [a-. gis-. \! gis-. g-. ] |
-g r cis4 \f ~ |
-c! r8 b!-. \p |
+g r cis4 \f ( |
+c! r8 b!-. \p |
 b [ais-. \< ais-. a-. ] |
 [a-. gis-. \! gis-. g-. ] |
-g r cis4 \f ~ |
-c! r8 b ~ |
-f'4.-> b,8 ~ |
-f'4.-> r8 |
+g r cis4 \f ( |
+) c! r8 b ( |
+) f'4.-> b,8 ( |
+f'4.-> r8 |
 R2 |
-r4 r8 b,8 \f ~ |
-f'4.-> b,8 ~ |
-f'4.-> r8 |
+r4 r8 b,8 \f ( |
+) f'4.-> b,8 ( |
+f'4.-> r8 |
 R2 |
 r4 r8 b,8-. \p |
 b-. [ais-. ais-. a-. ] |
 [a-. g-. g-. ]  [b16 ( c ] |
 ) b8-. \< [bes16 ( c ] ) bes8-. [a16 ( b ] |
-) \! a8-. [g16 ( as ] ) g8 f \f ~ |
-b4.-> r8 |
-r4 r8 c ~ |
-a'4. \fz c,8 ~ |
-a'4. \fz c,8 ~ |
-b r c4-> ~ |
-b8 r c4-> ~ |
-b8 r bes4 ~ |
-[a8 d16 ( e ] [) d8 c ~ ] |
-b! r c4 ~ |
-b8 r c4 ~ |
-b8 r bes4-> ~ |
-[a8 d16 ( e ] ) d8 a ~ |
-g r a4 ~ |
-g8_"dim." r a4 ~ |
-g8 r a4 ~ |
-g8 r fis4 ~ |
-g8 \p r r4 |
+) \! a8-. [g16 ( as ] ) g8 f \f ( |
+b4.-> r8 |
+r4 r8 c ( |
+) a'4. \fz c,8 ( |
+) a'4. \fz c,8 ( |
+) b r c4-> ( |
+) b8 r c4-> ( |
+) b8 r bes4 ( |
+[ ) a8 d16 ( e ] [) d8 c ( ] |
+) b! r c4 ( |
+) b8 r c4 ( |
+) b8 r bes4-> ( |
+[ ) a8 d16 ( e ] ) d8 a ( |
+) g r a4 ( |
+) g8_"dim." r a4 ( |
+) g8 r a4 ( |
+) g8 r fis4 ( |
+g8 \p r r4 |
 R2*6 |
 r4 [g8. ( \f a16 ] |
-) g2 ~ |
-d_"dim." ~ |
+) g2 ( |
+d_"dim." ~ |
 d ~ |
 d4. r8 |
 R2*6 |
 fis4. \fz \> \! g8 |
 [a-. b-. c-. ] r |
 R2*3 |
-r4 r8 e, \f ~ |
-e'4. a,8 ~ |
-a'4. a,8 ~ |
-a'4. fis,8 ~ |
-d'4. c8 ~ |
-b4 r8 g ( |
+r4 r8 e, \f ( |
+) e'4. a,8 ( |
+) a'4. a,8 ( |
+) a'4. fis,8 ( |
+) d'4. c8 ( |
+b4 r8 g ( |
 e'4 [d8 ) c ] |
 b4 r8 g ( |
-e'4~ ) d8 g, |
-cis4. fis,8 ~ |
-c'!4. c8 |
+e'4 () ) d8 g, |
+cis4. fis,8 ( |
+c'!4. c8 |
 [b-. c-. b-. c-. ] |
 [b-. c-. b-. c-. ] |
 b r a r |
@@ -812,10 +812,10 @@ b r c r |
 d4 r |
 d4 r |
 b4 r |
-d4 r8 d, ~ |
-g2 ~ |
-g ~ |
-b4-. \fz r^\fermata 
+d4 r8 d, ( |
+g2 ~ |
+g ( |
+b4-. \fz r^\fermata 
 }
 
 fagotto=\notes\relative c' {
@@ -833,16 +833,16 @@ R2*2 |
 bes8-. r a-. r |
 bes8-. r [a-. c-.] |
 [bes-. \< a-. g-. f-. ] |
-[e-. \! d-. c-. ] c \f ~ |
-c'4. r8 |
-d4 ~ c8 r |
-d4 ~ c8 r |
-d4 ~ [c8 a16 ( b ] |
-[c d c b] ) a8 f-> ~ |
-e4 r8 [ a16 ( b ] |
-[c d c b] ) a8 f-> ~ |
-e4 r8 a ~ |
-c r d r |
+[e-. \! d-. c-. ] c \f ( |
+c'4. r8 |
+d4 () c8 r |
+d4 () c8 r |
+d4 ( [ ) c8 a16 ( b ] |
+[c d c b] ) a8 f-> ( |
+e4 r8 [ a16 ( b ] |
+[c d c b] ) a8 f-> ( |
+) e4 r8 a ( |
+c r d r |
 es r d r |
 d4 \fz r |
 R2*2 |
@@ -862,36 +862,36 @@ g \f [c16 ( d] [es8 d16 c ] |
 [g g g g] |
 [g g g g] |
 g [c16 ( d] [es8 d16 c ] |
-) d4 r8 c ~ |
-g4.-> c8 ~ |
-g4.-> r8 |
-r4 r8 a ~ |
-b4. g8 \f ~ |
-c4.-> g8 ~ |
-c4.-> r8 |
-r4 r8 a \f ~ |
-d4. \clef "tenor"; [g16 \p ( a] |
+) d4 r8 c ( |
+) g4.-> c8 ( |
+g4.-> r8 |
+r4 r8 a ( |
+) b4. g8 \f ( |
+) c4.-> g8 ( |
+c4.-> r8 |
+r4 r8 a \f ( |
+d4. \clef "tenor"; [g16 \p ( a] |
 ) g8 [fis16 ( g] ) fis8-. \< [f16 ( g ] |
 ) f8-. [e16 ( \! f ] ) e8 g-. \mf |
 [g-. fis-. \< fis-. f-. ] |
-[f-. e-. \! e-. ] \clef "bass"; cis \f ~ |
-e4. a,8 |
-[d,-. e-. f-. ] f' ~ |
-d4. d8 |
-b4.  b8 ~ |
-c r f4-> ~ |
-e8 r f4-> ~ |
-e8 r c4 ~ |
-[d8-. f-. d-. b ~ ] |
-c r f4-> ~ |
-e8 r f4-> ~ |
-e8 r c4 ~ |
-[d8-. f-. d-. b ~ ] |
-c r f4 ~ |
-e8 r f4_"dim." ~ |
-e8 r f4 ~ |
-e8 r f4 \p ~ |
-e8 r r4 |
+[f-. e-. \! e-. ] \clef "bass"; cis \f ( |
+e4. a,8 |
+[d,-. e-. f-. ] f' ( |
+d4. d8 |
+b4.  b8 ( |
+) c r f4-> ( |
+) e8 r f4-> ( |
+) e8 r c4 ( |
+[ ) d8-. f-. d-. b ( ] |
+) c r f4-> ( |
+) e8 r f4-> ( |
+) e8 r c4 ( |
+[ ) d8-. f-. d-. b ( ] |
+) c r f4 ( |
+) e8 r f4_"dim." ( |
+) e8 r f4 ( |
+) e8 r f4 \p ( |
+e8 r r4 |
 r8 [g,-.^"solo" \p a-. b-. ] |
 c r r4 |
 R2 |
@@ -903,10 +903,10 @@ e2 \p \< ~ |
 \! e \> ~ |
 \! e \< ~ |
 \! e \> |
-\tiny \! d'8 \fz *1/2 ~ \normalsize f2 \> *7/8 ~ |
-\! e4. r8 |
-f,2 \> ( ~ |
-[ \! e8 d c ) b ] | 
+\tiny \! d'8 \fz ( *1/2 \normalsize ) f2 \> ( *7/8 |
+\! e4. r8 |
+f,2 \> ( ( |
+[ \! e8 d c ) b ] | 
 a2 \pp \< ~ |
 \! a |
 e' \> ~ |
@@ -915,41 +915,41 @@ e2 \p ~
 e ~ |
 e ~ |
 e |
-\tiny d'8 \fz *1/2 ~ \normalsize f2 \> *7/8 ~ |
-\! e4. r8 |
-f,2 \p ~ |
-e4 r |
-f'2-> ~ |
-e4. r8 |
-f,2 ~ |
-e |
+\tiny d'8 \fz ( *1/2 \normalsize ) f2 \> ( *7/8 |
+\! e4. r8 |
+f,2 \p ( |
+e4 r |
+f'2-> ( |
+e4. r8 |
+f,2 ( |
+e |
 d' \p ~ |
 d ~ |
 d_"dim." ~ |
-d ~ |
-c \pp ~ |
-d4 ~ c8 r |
+d ( |
+) c \pp ( |
+) d4 () c8 r |
 c r bes r |
 c r bes r |
-d2 ~ |
-es4 ~ d8 r |
+d2 ( |
+) es4 () d8 r |
 e! r f-. r |
 bes,-.  r [a-. c-.] |
 [bes-. a-. g-. f-. ] |
-[e-. d-. c-. ] c ~ |
-c'4. \f r8 |
-d4 ~ c8 r |
-d4 ~ c8 a-. |
+[e-. d-. c-. ] c ( |
+c'4. \f r8 |
+d4 () c8 r |
+d4 () c8 a-. |
 [bes-. c-. d-. es-. ] |
 d4.-> r8 |
-es4 ~ d8 r |
-es4 ~ d8 r |
+es4 () d8 r |
+es4 () d8 r |
 d4 ~ d8 [d16 ( e! ] |
-[f g f e] ) d8 bes ~ |
-a4 r8 [d16 ( e ] |
-[f g f e] ) d8 bes ~ |
-a4 r8 d ~ |
-f r g r |
+[f g f e] ) d8 bes ( |
+a4 r8 [d16 ( e ] |
+[f g f e] ) d8 bes ( |
+) a4 r8 d ( |
+f r g r |
 as r g r |
 c,4 \fz r |
 R2*6 |
@@ -965,37 +965,37 @@ r r8 c' |
 [c \< c c c] |
 [c c c c] |
 [\! c \f c c c] |
-[c c c ] f ~ |
-c4.-> f8 ~ |
-c4.-> r8 |
-r4 r8 f8 ~ |
-e!4. c8 \f ~ |
-f4.-> c8 ~ | % slur added
-f4.-> r8 |
-r4 r8 d ~ |
-e4. r8 |
+[c c c ] f ( |
+) c4.-> f8 ( |
+c4.-> r8 |
+r4 r8 f8 ( |
+) e!4. c8 \f ( |
+) f4.-> c8 ( | % slur added
+f4.-> r8 |
+r4 r8 d ( |
+e4. r8 |
 R2 |
 r4 r8 c \p |
 [c-. \< d-. d-. e-. ] |
 [ \! e-. f-. f-. ] r |
 fis4. \f d,8-. |
-[g-. a-. bes-. ] e! ~ |
-g4. \f g8 ~ |
-e4. e8 ~ |
-f r c4-> ~ |
+[g-. a-. bes-. ] e! ( |
+) g4. \f g8 ( |
+) e4. e8 ( |
+f r c4-> ~ |
 c c-> ~ |
-c d ~ |
-e r8 c ~ |
-f4 c~ |
+c d ( |
+) e r8 c ( |
+f4 c~ |
 c c~ |
-c d ~ |
-e r8 c ~ |
-f4 c~ |
+c d ( |
+) e r8 c ( |
+f4 c~ |
 c c~ |
 c r |
 R2*5 |
-es2 \p \> ( ~ |
-\! d4 \< \! ) des |
+es2 \p \> ( ( |
+\! d4 \< \! ) des |
 c \f ( bes |
 a b |
 ) c r |
@@ -1004,35 +1004,35 @@ a8-. \p r r4 |
 g8-. r r4 |
 R2*4 |
 a2 \p \< ~ |
-a4 ~ \! gis8 g ~ |
-c4. \fz c8 \> |
+a4 () \! gis8 g ( |
+c4. \fz c8 \> |
 [c c \! c ] r8 |
 R2*2 |
 es2 \p \< ~ |
-\! es4. d8 \f ~ |
-f,4. bes8 ~ |
-d,4. c'8 ~ |
-c,4. c'8 ~ |
-c,4. bes'8 ~ |
-a4 r8 c~ |
-d4 ~ c8 bes ~ |
-a4 r8 c~ |
-d4 ~ c8 d ~ |
-g,4. g'8 ~ |
-c,4.  c,8 |
+\! es4. d8 \f ( |
+) f,4. bes8 ( |
+) d,4. c'8 ( |
+) c,4. c'8 ( |
+) c,4. bes'8 ( |
+) a4 r8 c( |
+) d4 () c8 bes ( |
+) a4 r8 c( |
+) d4 () c8 d ( |
+) g,4. g'8 ( |
+c,4.  c,8 |
 [f-. c-. f-. c-. ] |
 [f-. c-. f-. c-. ] |
 f-. r c'-. r |
 c-. r c-. r |
 [c16 ( d c d][c d c d] |
 [c16 d c d][c d c d] |
-) c4 r8 c ~ |
-f4 r8 c ~ |
-f,4 r8 c' ~ |
-f4 r8 c ~ |
-f,2 ~ |
-f ~ |
-c'4 \fz r^\fermata
+) c4 r8 c ( |
+) f4 r8 c ( |
+) f,4 r8 c' ( |
+) f4 r8 c ( |
+f,2 ~ |
+f ( |
+c'4 \fz r^\fermata
 }
 
 oboehelp=\notes\relative c'' {
index f1e5dd9ab799a8aedae817078a4d20884e7e416b..6d3af3a519d1db15715f9657f4c703ef07106adc 100644 (file)
@@ -7,16 +7,20 @@
 # (not finished.)
 # 
 
-name = 'abc-to-ly'
+program_name = 'abc-to-ly'
 version = '0.1'
-
+import __main__
 import getopt
 import sys
 import re
 import string
+
+
 header = {}
 global_voice_stuff = []
 default_len = 4
+global_key = [0] * 7                   # UGH
+
 
 
 def dump_header (hdr):
@@ -26,20 +30,10 @@ def dump_header (hdr):
        print '};'
 
 def set_default_length (s):
-       m =  re.match ('1/(.*)$', s)
+       m =  re.search ('1/([0-9]+)', s)
        if m:
-               default_len = string.atoi ( m.group (1))
+               __main__.default_len = string.atoi ( m.group (1))
 
-def parse_timesig (s):
-       m =  re.match ('^M: *(.*)$', s)
-       if m:
-               print '\meter %s; ' % m.group (1)
-
-def parse_key (s):
-       m =  re.match ('^K: *(.*)$', s)
-       if m:
-               print '\key %s; ' % m.group (1)
-       
 def gulp_file(f):
        try:
                i = open(f)
@@ -56,6 +50,104 @@ def gulp_file(f):
        return s
 
 
+# pitch manipulation. Tuples are (name, alteration).
+# 0 is (central) C. Alteration -1 is a flat, Alteration +1 is a sharp
+# pitch in semitones. 
+def semitone_pitch  (tup):
+       p =0
+
+       t = tup[0]
+       p = p + 12 * (t / 7)
+       t = t % 7
+       
+       if t > 2:
+               p = p- 1
+               
+       p = p + t* 2 + tup[1]
+       return p
+
+def fifth_above_pitch (tup):
+       (n, a)  = (tup[0] + 4, tup[1])
+
+       difference = 7 - (semitone_pitch ((n,a)) - semitone_pitch (tup))
+       a = a + difference
+       
+       return (n,a)
+
+def sharp_keys ():
+       p = (0,0)
+       l = []
+       k = 0
+       while 1:
+               l.append (p)
+               (t,a) = fifth_above_pitch (p)
+               if semitone_pitch((t,a)) % 12 == 0:
+                       break
+
+               p = (t % 7, a)
+       return l
+
+def flat_keys ():
+       p = (0,0)
+       l = []
+       k = 0
+       while 1:
+               l.append (p)
+               (t,a) = quart_above_pitch (p)
+               if semitone_pitch((t,a)) % 12 == 0:
+                       break
+
+               p = (t % 7, a)
+       return l
+
+def quart_above_pitch (tup):
+       (n, a)  = (tup[0] + 3, tup[1])
+
+       difference = 5 - (semitone_pitch ((n,a)) - semitone_pitch (tup))
+       a = a + difference
+       
+       return (n,a)
+
+
+def compute_key (k):
+       k = string.lower (k)
+       intkey = (ord (k[0]) - ord('a') + 5) % 7
+       intkeyacc =0
+       k = k[1:]
+       
+       if k and k[0] == 'b':
+               intkeyacc = -1
+               k = k[1:]
+       elif  k and k[0] == '#':
+               intkeyacc = 1
+               k = k[1:]
+
+       keytup = (intkey, intkeyacc)
+       
+       sharp_key_seq = sharp_keys ()
+       flat_key_seq = flat_keys ()
+
+       accseq = None
+       accsign = 0
+       if keytup in sharp_key_seq:
+               accsign = 1
+               key_count = sharp_key_seq.index (keytup)
+               accseq = map (lambda x: (4*x -1 ) % 7, range (1, key_count + 1))
+
+       elif keytup in flat_key_seq:
+               accsign = -1
+               key_count = flat_key_seq.index (keytup)
+               accseq = map (lambda x: (3*x + 3 ) % 7, range (1, key_count + 1))
+       else:
+               raise "Huh"
+       
+       key_table = [0] * 7
+       for a in accseq:
+                key_table[a] = key_table[a] + accsign
+               
+
+       return key_table
+
 def try_parse_header_line (ln):
        m = re.match ('^(.): *(.*)$', ln)
 
@@ -67,6 +159,8 @@ def try_parse_header_line (ln):
                if g == 'M':
                        global_voice_stuff.append ('\\time %s;' % a)
                if g == 'K':
+                       __main__.global_key  =compute_key (a)# ugh.
+
                        global_voice_stuff.append ('\\key %s;' % a)
                if g == 'O': 
                        header ['origin'] = a
@@ -87,9 +181,44 @@ def try_parse_header_line (ln):
 
        return m
 
+def pitch_to_mudela_name (name, acc):
+       s = ''
+       if acc < 0:
+               s = 'es'
+               acc = -acc
+       elif acc > 0:
+               s = 'is'
+
+       if name > 4:
+               name = name -7
+       return chr (name  + ord('c'))  + s * acc
+
+def octave_to_mudela_quotes (o):
+       s =''
+       if o < 0:
+               o = -o
+               s=','
+       else:
+               s ='\''
 
-# WAT IS ABC EEN ONTZETTENDE PROGRAMMEERPOEP  !
+       return s * o
+
+def parse_num (str):
+       durstr = ''
+       while str[0] in "1234567890":
+               durstr = durstr + str[0]
+               str = str[1:]
+
+       n = None
+       if durstr:
+               n  =string.atoi (durstr) 
+       return (str,n)
 
+
+def duration_to_mudela_duration  (multiply_tup, defaultlen):
+       base = 1
+
+# WAT IS ABC EEN ONTZETTENDE PROGRAMMEERPOEP  !
 def try_parse_note (str):
        mud = ''
 
@@ -98,7 +227,7 @@ def try_parse_note (str):
                slur_begin = 1
                str = str[1:]
 
-       acc = None
+       acc = 0
        if str[0] in '^=_':
                c = str[0]
                str = str[1:]
@@ -117,7 +246,7 @@ def try_parse_note (str):
 
        notename = 0
        if str[0] in "abcdefg":
-               notename = ord(str[0]) - ord('a')
+               notename = (ord(str[0]) - ord('a') + 5)%7
                str = str[1:]
        else:
                return str              # failed; not a note!
@@ -128,20 +257,24 @@ def try_parse_note (str):
        while str[0] == '\'':
                 octave = octave + 1
                 str = str[1:]
-       divide =0
+
+       num = 0
+       den = 0
+
+       (str, num) = parse_num (str)
+       if not num:
+               num = 1
+       
        if str[0] == '/':
                divide =1
                str = str[1:]
-       durstr = ''
-       while str[0] in "1234567890":
-               durstr = durstr + str[0]
-               str = str[1:]
+               (str, den) =parse_num (str)
 
-       duration_mult = 1
-       if durstr:
-               duration_mult = string.atoi (durstr)
+       if not den: den = 1
+               
+       print duration_to_mudela_duration ((num,den), default_len)
+       print '%s%s%d' %  (pitch_to_mudela_name(notename, acc + global_key[notename]) , octave_to_mudela_quotes (octave), duration_mult)
 
-       
        slur_end =0
        if str[0] == ')':
                slur_begin = 1
@@ -191,7 +324,7 @@ def parse_file (fn):
 
 
 def identify():
-       print '%s %s' % (name, version)
+       print '%s %s' % (program_name, version)
 
 def help ():
        print r"""
@@ -201,6 +334,8 @@ says huh when confused.  Does not do chords.  Go ahead and fix me.
 -h, --help   this help.
 """
 
+
+
 identify()
 (options, files) = getopt.getopt (sys.argv[1:], 'h', ['help'])
 
index 53e020c5bb60dd2ea95986704566e4b7e38f9505..e3b42ffa8ea1934ca98a6d39d0830d3426479715 100644 (file)
@@ -63,7 +63,7 @@ class Input:
 
         for i in [''] + Props.get('include')[0:]:
             ifile = os.path.join(i,file)
-            for j in ['','.ly','.fly', 'sly']:
+            for j in ['','.ly','.fly', '.sly']:
                 jfile = ifile+j
                 try:
                     this.__fd = open( jfile, 'r' )