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-
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]
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.
-
+++ /dev/null
-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)
-)
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@@@@@
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@@@@@
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)@@
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@@
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/)
-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
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.
--- /dev/null
+c''4 \p c \ff c^\ff
+c \p \< \! c \ff\> c \!c-\p
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;
- }
}
}
{
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);
}
}
}
}
+/*
+ Some interesting item came across. Lets attach the text and the
+ positioner to the item.
+
+*/
+
void
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);
/*
#include "break-align-item.hh"
#include "dimensions.hh"
+#include "p-score.hh"
void
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);
+
+
+}
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.
/*
- commandrequest.cc -- implement Nonmusical reqs
+ command-request.cc -- implement non-musical reqs
source file of the GNU LilyPond music typesetter
DOUT << length_mom_;
}
-
-
-
void
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_;
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;
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;
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;
}
-
{
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_;
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;
}
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 =
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)
{
{
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;
}
}
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));
}
}
}
{
::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;
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;
}
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_);
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_);
}
}
/*
- 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
#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;
void
-G_staff_side_item::do_pre_processing ()
+G_staff_side_element::do_pre_processing ()
{
if (!dir_)
dir_ = get_default_direction ();
}
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;
}
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);
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_)
}
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)
{
Score_element * e = support_l_arr_ [i];
Real coord = e->relative_coordinate (common, axis_);
+
dim.unite (coord + e->extent (axis_));
}
}
}
void
-G_staff_side_item::do_post_processing ()
+G_staff_side_element::do_post_processing ()
{
if (axis_ == Y_AXIS)
position_self ();
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 ())
}
Interval
-G_staff_side_item::do_height () const
+G_staff_side_element::do_height () const
{
Interval i;
if (to_position_l_)
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
{
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 ();
}
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 ();
}
{
return classname (this);
}
+
+void
+Graphical_element::print () const
+{
+#ifndef NPRINT
+ DOUT << classname (this) << "{\n";
+ do_print ();
+ DOUT << "}\n";
+#endif
+}
/// 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);
#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_;
protected:
VIRTUAL_COPY_CONS(Score_element);
virtual Molecule*do_brew_molecule_p() const;
- virtual Interval symbol_height() const;
-
private:
Molecule get_symbol() const;
#ifndef G_STAFF_SIDE_HH
#define G_STAFF_SIDE_HH
+#include "spanner.hh"
#include "item.hh"
#include "staff-symbol-referencer.hh"
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 ();
//junkme.
bool staff_support_b_;
- G_staff_side_item ();
+ G_staff_side_element ();
void set_victim (Score_element*);
void add_support (Score_element*);
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*);
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 */
Graphical_element *parent_l (Axis a) const;
virtual void do_print () const;
+ virtual void print () const;
};
#endif // GRAPHICAL_ELEMENT_HH
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);
String style_str_;
protected:
VIRTUAL_COPY_CONS(Music);
+ virtual bool do_equal_b (Request*)const;
virtual void do_print () const;
};
+++ /dev/null
-/*
- 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
<< ", 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
{
#include "request.hh"
#include "debug.hh"
-
-
-
void
Request::do_print() const
{
}
-
-
-
bool
Request::equal_b (Request *r) const
{
Request::do_equal_b (Request*) const
{
return true;
-
}
(c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
-
#include "axis-group-item.hh"
#include "score-priority-engraver.hh"
#include "item.hh"
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)
{
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);
}
}
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*/
}
+++ /dev/null
-/*
- 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 ());
-}
-
\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;
% 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;
\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
}
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
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
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
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>
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 |
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 |
g2 \f ~ |
g4 r |
g r |
-g' ~ fis8 r |
+g' () fis8 r |
R2 |
d'4 r |
R2 |
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 |
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
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 |
textstyle = "italic";
textScriptPadding = 5.0;
textEmptyDimension = 1;
- oldTieBehavior = 1;
+% oldTieBehavior = 1;
}
\translator { \VoiceContext
oldTieBehavior = 1;
\! 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 ] |
\! 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 |
\! 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 |
[ 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 |
[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. ~ |
<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 ( |
<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 ] |
g4:16 \> a4:16 |
g4:16 \! a4:16 |
gis2 \fz ~ |
-gis ~ |
-f \p \> |
+gis ( |
+) f \p \> |
\! e_"dim." |
d |
e |
e2 \> ~ |
\! e4 r |
e2 \fz ~ |
-e ~ |
-f \p ~ |
-e |
+e ( |
+) f \p ( |
+) e |
d \> ( |
e |
\! f \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 |
\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 |
[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-. ] |
[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] |
) 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 ] |
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
}
[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 |
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 |
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 ~ |
\! 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 ~ |
[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 |
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 |
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' {
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 |
[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 |
\! 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' \> ~ |
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 |
[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 |
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'' {
# (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):
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)
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)
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
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 = ''
slur_begin = 1
str = str[1:]
- acc = None
+ acc = 0
if str[0] in '^=_':
c = str[0]
str = str[1:]
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!
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
def identify():
- print '%s %s' % (name, version)
+ print '%s %s' % (program_name, version)
def help ():
print r"""
-h, --help this help.
"""
+
+
identify()
(options, files) = getopt.getopt (sys.argv[1:], 'h', ['help'])
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' )