]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.1.49 release/1.1.49
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 21 Jun 1999 09:40:38 +0000 (11:40 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 21 Jun 1999 09:40:38 +0000 (11:40 +0200)
246 files changed:
Documentation/mail.yo
Documentation/tex/lilypond-overview-0.2.7.tex [new file with mode: 0644]
Documentation/tex/lilypond-overview-0.2.8.tex [new file with mode: 0644]
Documentation/tex/lilypond-overview-0.2.9.tex [new file with mode: 0644]
Documentation/tex/lilypond-overview.doc
Documentation/tex/lilypond-regtest.doc
Documentation/tex/refman.yo
NEWS
TASKS
TODO
VERSION
buildscripts/mf-to-table.py
input/bugs/Overture.ly
input/bugs/bar-space.ly [deleted file]
input/bugs/hari-number.ly [deleted file]
input/bugs/nobreak.ly [new file with mode: 0644]
input/bugs/rcol.fly [new file with mode: 0644]
input/bugs/spacing.ly [new file with mode: 0644]
input/example-3.ly
input/just-friends.ly
input/keys.ly
input/kortjakje.ly
input/opus-130.ly
input/part.ly
input/pedal.ly
input/praeludium-fuga-E.ly
input/rhythm.ly
input/scales.ly
input/scripts.ly
input/star-spangled-banner.ly
input/test/alphabet.ly
input/test/auto-staff-switch.ly
input/test/bar-scripts.ly
input/test/beam-chord.ly
input/test/beam-interstaff.ly
input/test/beam-isknee.ly
input/test/beam-pos.ly
input/test/beams.ly
input/test/broken.ly
input/test/chord-inversion.ly
input/test/chord-table.ly
input/test/chords.ly
input/test/clefs.ly
input/test/collisions.ly
input/test/defaultbars.ly
input/test/denneboom.ly
input/test/dotted-slur.ly
input/test/extender.ly
input/test/extra-staff.ly
input/test/find-quarts.ly
input/test/font-body.ly
input/test/font.ly
input/test/font16.ly
input/test/font20.ly
input/test/gourlay.ly
input/test/grace.ly
input/test/hara-kiri.ly
input/test/incipit.ly
input/test/keys.ly
input/test/knee.ly
input/test/mark.ly
input/test/memory.ly
input/test/multi-rest.ly
input/test/noteheadstyle.ly
input/test/notemode-chords.ly
input/test/orchestscore.ly
input/test/ossia.ly
input/test/rest-collision.ly
input/test/score-bar-scripts.ly
input/test/sleur.ly
input/test/slur-bug.ly
input/test/slur-damping.ly
input/test/slur-interstaff.ly
input/test/slur-swap.ly
input/test/slurs.ly
input/test/spacing-2.ly
input/test/spacing.ly
input/test/span-bars.ly
input/test/staff-margin.ly
input/test/staff-side-slur.ly
input/test/staff-size.ly
input/test/stem-spacing.sly [new file with mode: 0644]
input/test/stem-tremolo.ly
input/test/stem.ly
input/test/tchaikovsky.ly
input/test/test-lyrics.ly
input/test/thumb.ly
input/test/tie-bug.ly
input/test/tie.ly
input/test/title.ly
input/test/transposition.ly
input/test/tup.ly
input/test/updown.fly
input/test/vertical-align.ly
input/test/vertical-text.ly
input/test/wtk-huh.ly
input/tril.ly
input/twinkle-pop.ly
input/twinkle.ly
lily/bar.cc
lily/break.cc
lily/collision.cc
lily/crescendo.cc
lily/g-script.cc
lily/g-text-item.cc
lily/include/lookup.hh
lily/include/ly-symbols.hh
lily/include/note-column.hh
lily/include/p-score.hh
lily/include/score-element.hh
lily/include/spacing-spanner.hh
lily/include/stem.hh
lily/ineq-constrained-qp.cc
lily/local-key-engraver.cc
lily/lookup.cc
lily/multi-measure-rest.cc
lily/note-column.cc
lily/p-score.cc
lily/paper-def.cc
lily/parser.yy
lily/rhythmic-column-engraver.cc
lily/score-element.cc
lily/score-engraver.cc
lily/slur.cc
lily/spacing-spanner.cc
lily/span-bar.cc
lily/spring-spacer.cc
lily/stem.cc
lily/time-signature.cc
lily/tuplet-spanner.cc
lily/volta-spanner.cc
lily/word-wrap.cc
ly/book-fragment.ly
ly/book-init.ly
ly/center-fragment.ly
ly/center.ly
ly/fragment.ly
ly/init.fly
ly/init.ly
ly/init.sly
ly/paper16.ly
ly/paper20.ly
ly/params.ly
ly/property.ly
make/out/lelievijver.lsm
make/out/lilypond.lsm
make/out/lilypond.spec
mf/GNUmakefile
mf/TODO [deleted file]
mutopia/Coriolan/bassi-part.ly
mutopia/Coriolan/clarinetti-part.ly
mutopia/Coriolan/clarinetti.ly
mutopia/Coriolan/clarinetto-1.ly
mutopia/Coriolan/clarinetto-2.ly
mutopia/Coriolan/contrabasso-part.ly
mutopia/Coriolan/contrabasso.ly
mutopia/Coriolan/coriolan.ly
mutopia/Coriolan/corni-part.ly
mutopia/Coriolan/corni.ly
mutopia/Coriolan/corno-1.ly
mutopia/Coriolan/corno-2.ly
mutopia/Coriolan/fagotti-part.ly
mutopia/Coriolan/fagotti.ly
mutopia/Coriolan/fagotto-1.ly
mutopia/Coriolan/fagotto-2.ly
mutopia/Coriolan/flauti-part.ly
mutopia/Coriolan/flauti.ly
mutopia/Coriolan/flauto-1.ly
mutopia/Coriolan/flauto-2.ly
mutopia/Coriolan/global.ly
mutopia/Coriolan/oboe-1.ly
mutopia/Coriolan/oboe-2.ly
mutopia/Coriolan/oboi-part.ly
mutopia/Coriolan/oboi.ly
mutopia/Coriolan/timpani.ly
mutopia/Coriolan/trombe-part.ly
mutopia/Coriolan/trombe.ly
mutopia/Coriolan/trombo-1.ly
mutopia/Coriolan/trombo-2.ly
mutopia/Coriolan/viola-1.ly
mutopia/Coriolan/viola-2.ly
mutopia/Coriolan/viola-part.ly
mutopia/Coriolan/violino-1-part.ly
mutopia/Coriolan/violino-1.ly
mutopia/Coriolan/violino-2-part.ly
mutopia/Coriolan/violino-2.ly
mutopia/Coriolan/violoncello-part.ly
mutopia/Coriolan/violoncello.ly
mutopia/D.Scarlatti/progress.ly
mutopia/D.Scarlatti/sonata-k1-l366.ly
mutopia/D.Scarlatti/sonata-k2-l388.ly
mutopia/D.Scarlatti/sonata-k3-l378.ly
mutopia/D.Scarlatti/sonata-k4-l390.ly
mutopia/D.Zipoli/verso_2.ly
mutopia/E.Satie/gnossienne-4.ly
mutopia/E.Satie/petite-ouverture-a-danser.ly
mutopia/F.Schubert/standchen-16.ly
mutopia/F.Schubert/standchen-20.ly
mutopia/F.Schubert/standchen.ly
mutopia/GNUmakefile
mutopia/Hymns/diademata.ly
mutopia/Hymns/laudatedom.ly
mutopia/Hymns/maccabaeus.ly
mutopia/Hymns/ode.ly
mutopia/Hymns/stille.ly
mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Allemande.ly
mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Capriccio.ly
mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Sinfonia.ly
mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly
mutopia/J.S.Bach/Petites-Preludes/preludes-2.ly
mutopia/J.S.Bach/Petites-Preludes/preludes-4.ly
mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly
mutopia/J.S.Bach/Petites-Preludes/preludes-6.ly
mutopia/J.S.Bach/Solo-Cello-Suites/allemande-cello.ly
mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly
mutopia/J.S.Bach/Solo-Cello-Suites/courante-urtext.ly
mutopia/J.S.Bach/Solo-Cello-Suites/gigue-urtext.ly
mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly
mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-urtext.ly
mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly
mutopia/J.S.Bach/Solo-Cello-Suites/prelude-urtext.ly
mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly
mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-urtext.ly
mutopia/J.S.Bach/viola-i.ly
mutopia/J.S.Bach/violino-i.ly
mutopia/J.S.Bach/violino-viola.ly
mutopia/J.S.Bach/violino-violoncello.ly
mutopia/J.S.Bach/violoncello-i.ly
mutopia/J.S.Bach/wtk1-fugue1.ly
mutopia/J.S.Bach/wtk1-fugue2.ly
mutopia/J.S.Bach/wtk1-prelude1.ly
mutopia/L.Mozart/sinfonia.ly
mutopia/N.W.Gade/brass.ly
mutopia/N.W.Gade/global.ly
mutopia/N.W.Gade/parts.ly
mutopia/N.W.Gade/score.ly
mutopia/N.W.Gade/strings.ly
mutopia/N.W.Gade/wood.ly
mutopia/TODO [deleted file]
mutopia/W.A.Mozart/cadenza.ly
mutopia/W.A.Mozart/horn-concerto-3.ly
mutopia/gallina.ly
mutopia/los-toros-oboe.ly
scm/lily.scm
scripts/abc-2-ly.py
scripts/convert-mudela.py

index 69e3dd12deef67590ced3b4cec5e1d0461ff5dc7..c3d4e894a9cf3f3d640ed360bd20a3cdbec57dfd 100644 (file)
@@ -35,7 +35,7 @@ dit(gnu-music-discuss@gnu.org,)
     mail with subject "subscribe" to
     email(gnu-music-discuss-request@gnu.org)
     This list is archived at
-    lurl(http://www.jab.org/mail/gnu-music-discuss@gnu.org)
+    lurl(http://www.mail-archive.org/gnu-music-discuss@gnu.org)
 )
 
 Announces of new versions will be sent to info-gnu-music and
diff --git a/Documentation/tex/lilypond-overview-0.2.7.tex b/Documentation/tex/lilypond-overview-0.2.7.tex
new file mode 100644 (file)
index 0000000..6ba1a58
--- /dev/null
@@ -0,0 +1,225 @@
+%created by: GNU LilyPond 1.1.48.uu1, at Fri Jun 18 14:13:33 1999
+%
+% outputting Score, defined at: 
+% out-www/lilypond-overview-0.2.7.ly:3:7
+\def\mudelatagline{Lily was here, 1.1.48.uu1}%
+\def\LilyPondVersion{1.1.48.uu1}%
+\def\mudelapaperbeam_steep_slope{0.200000}%
+\def\mudelapaperstem_max{3.000000}%
+\def\mudelapaperfont_number-1{8.000000}%
+\def\mudelapapermmrest_x_minimum{32.000000}%
+\def\mudelapaperhsize{597.507874}%
+\def\mudelapaperforced_stem_shorten2{2.000000}%
+\def\mudelapaperslur_clip_ratio{1.200000}%
+\def\mudelapaperminimum_stem_length3{4.000000}%
+\def\mudelapaperlinewidth{-28.452756}%
+\def\mudelapaperminimum_stem_length0{0.000000}%
+\def\mudelapaperfont_normal{8.000000}%
+\def\mudelapapernotewidth{6.600000}%
+\def\mudelapaperrestcollision_minimum_dist{3.000000}%
+\def\mudelapaperbeam_lengthened{0.800000}%
+\def\mudelapaperfont_number{8.000000}%
+\def\mudelapaperDOWN{-1.000000}%
+\def\mudelapaperslur_clip_angle{100.000000}%
+\def\mudelapaperwholewidth{7.920000}%
+\def\mudelapaperbarthick_thick{2.400000}%
+\def\mudelapapercastingalgorithm{1.000000}%
+\def\mudelapaperslur_slope_follow_music_factor{0.800000}%
+\def\mudelapaperpostBreakPadding{4.000000}%
+\def\mudelapaperscmsetting{(display "\\input lilyponddefs \\musixsixteendefs");%
+ }%
+\def\mudelapaperstemthickness{0.320000}%
+\def\mudelapaperinterline{4.000000}%
+\def\mudelapaperslur_height_limit{16.000000}%
+\def\mudelapapertextheight{611.809858}%
+\def\mudelapaperfont_large{12.000000}%
+\def\mudelapaperfont_finger{4.000000}%
+\def\mudelapaperrulethickness{0.400000}%
+\def\mudelapaperstem_length1{10.000000}%
+\def\mudelapaperslur_x_minimum{12.000000}%
+\def\mudelapaperlinewidth20{557.507874}%
+\def\mudelapaperfont_number+1{12.000000}%
+\def\mudelapaperMEAN{3.000000}%
+\def\mudelapaperpaperfile{a4.ly}%
+\def\mudelapapertexsetting{\input lilyponddefs \musixsixteendefs }%
+\def\mudelapaperforced_stem_shorten1{2.000000}%
+\def\mudelapaperinterbeam4{3.376000}%
+\def\mudelapaperminimum_stem_length2{5.000000}%
+\def\mudelapapergourlay_maxmeasures{10.000000}%
+\def\mudelapaperbeam_dir_algorithm{2.000000}%
+\def\mudelapapervsize{844.762323}%
+\def\mudelapaperstaffheight{16.000000}%
+\def\mudelapapertuplet_thick{0.400000}%
+\def\mudelapaperbarthick_score{0.640000}%
+\def\mudelapaperbar_thinkern{1.200000}%
+\def\mudelapapertie_x_gap{0.800000}%
+\def\mudelapapervolta_thick{0.640000}%
+\def\mudelapaperrestcollision_minimum_beamdist{1.500000}%
+\def\mudelapapertextheight20{764.762323}%
+\def\mudelapaperUP{1.000000}%
+\def\mudelapaperslur_rc_factor{2.400000}%
+\def\mudelapaperarithmetic_basicspace{2.000000}%
+\def\mudelapaperslur_thickness{0.560000}%
+\def\mudelapaperinterbeam{3.264000}%
+\def\mudelapaperindent{31.857593}%
+\def\mudelapaperfont_mark{10.000000}%
+\def\mudelapaperslur_ratio{0.250000}%
+\def\mudelapaperstem_length3{6.000000}%
+\def\mudelapaperslur_x_gap{0.800000}%
+\def\mudelapaperstem_length0{14.000000}%
+\def\mudelapaperfont_Large{10.000000}%
+\def\mudelapaperextender_height{0.320000}%
+\def\mudelapapercrescendo_shorten{16.000000}%
+\def\mudelapaperfont_volta{5.000000}%
+\def\mudelapaperforced_stem_shorten3{2.000000}%
+\def\mudelapaperslur_clip_height{48.000000}%
+\def\mudelapaperquartwidth{5.280000}%
+\def\mudelapaperforced_stem_shorten0{2.000000}%
+\def\mudelapaperminimum_stem_length1{6.000000}%
+\def\mudelapaperslur_slope_damping{0.600000}%
+\def\mudelapapermagnification_dynamic{2.000000}%
+\def\mudelapaperMEDIAN{4.000000}%
+\def\mudelapaperpssetting{(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec}%
+  { /undefinedfilename signalerror }%
+  ifelse%
+ }%
+\def\mudelapaperbarthick_thin{0.640000}%
+\def\mudelapaperbar_kern{1.200000}%
+\def\mudelapapertie_x_minimum{12.000000}%
+\def\mudelapaperbeam_thickness{1.872000}%
+\def\mudelapapertie_slope_damping{0.800000}%
+\def\mudelapaperfont_dynamic{10.000000}%
+\def\mudelapapergourlay_energybound{100000.000000}%
+\def\mudelapaperMAJORITY{2.000000}%
+\def\mudelapaperarithmetic_multiplier{4.800000}%
+\def\mudelapaperstaffline{0.400000}%
+\def\mudelapaperstem_length2{8.000000}%
+\def\mudelapaperbarsize{16.000000}%
+\input lilyponddefs \musixsixteendefs \turnOnExperimentalFeatures\turnOnPostScript\vbox to 32.0 pt {\hbox{%
+\placebox{-24.0 pt }%
+  {31.8575928008999 pt }%
+  {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt  }%
+  \placebox{-20.0 pt }%
+  {31.8575928008999 pt }%
+  {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt  }%
+  \placebox{-16.0 pt }%
+  {31.8575928008999 pt }%
+  {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt  }%
+  \placebox{-12.0 pt }%
+  {31.8575928008999 pt }%
+  {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt  }%
+  \placebox{-8.0 pt }%
+  {31.8575928008999 pt }%
+  {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt  }%
+  \font\lilyfontA=feta16\lilyfontA\placebox{-20.0 pt }%
+  {35.8575928008999 pt }%
+  {\show{86}%
+   }%
+  \font\lilyfontB=feta-nummer8\lilyfontB\placebox{-16.0 pt }%
+  {50.3998138702358 pt }%
+  {\hbox{3}%
+   }%
+  \placebox{-24.0 pt }%
+  {49.8575928008999 pt }%
+  {\hbox{4}%
+   }%
+  \placebox{-16.0 pt }%
+  {127.564230374143 pt }%
+  {\kern0.0 pt \vrule width 0.64 pt depth 8.0 pt height 8.0 pt  }%
+  \placebox{-16.0 pt }%
+  {174.764230374143 pt }%
+  {\kern0.0 pt \vrule width 0.64 pt depth 8.0 pt height 8.0 pt  }%
+  \placebox{-27.264 pt }%
+  {79.5642303741425 pt }%
+  {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-24.0 pt }%
+  {79.5642303741425 pt }%
+  {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-27.264 pt }%
+  {69.9642303741424 pt }%
+  {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-24.0 pt }%
+  {69.9642303741424 pt }%
+  {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-27.264 pt }%
+  {60.3642303741423 pt }%
+  {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-24.0 pt }%
+  {60.3642303741423 pt }%
+  {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-16.0 pt }%
+  {60.5642303741423 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 11.264 pt height 1.03836152344995 pt  }%
+  \lilyfontA\placebox{-14.0 pt }%
+  {60.3642303741423 pt }%
+  {\show{30}%
+   }%
+  \placebox{-16.0 pt }%
+  {70.1642303741424 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 11.264 pt height 1.03836152344995 pt  }%
+  \placebox{-14.0 pt }%
+  {69.9642303741424 pt }%
+  {\show{30}%
+   }%
+  \placebox{-16.0 pt }%
+  {79.7642303741425 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 11.264 pt height 1.03836152344995 pt  }%
+  \placebox{-14.0 pt }%
+  {79.5642303741425 pt }%
+  {\show{30}%
+   }%
+  \placebox{-16.0 pt }%
+  {89.3642303741427 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 11.264 pt height 1.03836152344995 pt  }%
+  \placebox{-14.0 pt }%
+  {89.1642303741427 pt }%
+  {\show{30}%
+   }%
+  \placebox{-24.736 pt }%
+  {98.7642303741428 pt }%
+  {\embeddedps{14.8000000000002 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-16.0 pt }%
+  {98.9642303741428 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 8.736 pt height 1.03836152344995 pt  }%
+  \placebox{-14.0 pt }%
+  {98.7642303741428 pt }%
+  {\show{30}%
+   }%
+  \placebox{-16.0 pt }%
+  {113.364230374143 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 8.736 pt height 1.03836152344995 pt  }%
+  \placebox{-14.0 pt }%
+  {113.164230374143 pt }%
+  {\show{30}%
+   }%
+  \placebox{-16.0 pt }%
+  {132.404230374143 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 6.0 pt height 7.03836152344995 pt  }%
+  \placebox{-8.0 pt }%
+  {132.204230374143 pt }%
+  {\show{30}%
+   }%
+  \placebox{-16.0 pt }%
+  {151.688390374143 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 5.03836152344995 pt height 8.0 pt  }%
+  \placebox{-22.0 pt }%
+  {146.604230374143 pt }%
+  {\show{30}%
+   }%
+  \placebox{-16.0 pt }%
+  {161.204230374143 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 6.0 pt height 7.03836152344995 pt  }%
+  \placebox{-8.0 pt }%
+  {161.004230374143 pt }%
+  {\show{30}%
+   }%
+  }%
+ \vss}%
+\EndLilyPondOutput
\ No newline at end of file
diff --git a/Documentation/tex/lilypond-overview-0.2.8.tex b/Documentation/tex/lilypond-overview-0.2.8.tex
new file mode 100644 (file)
index 0000000..9aa2b0c
--- /dev/null
@@ -0,0 +1,320 @@
+%created by: GNU LilyPond 1.1.48.uu1, at Fri Jun 18 14:13:29 1999
+%
+% outputting Score, defined at: 
+% out-www/lilypond-overview-0.2.8.ly:3:7
+\def\mudelatagline{Lily was here, 1.1.48.uu1}%
+\def\LilyPondVersion{1.1.48.uu1}%
+\def\mudelapaperbeam_steep_slope{0.200000}%
+\def\mudelapaperstem_max{3.000000}%
+\def\mudelapaperfont_number-1{8.000000}%
+\def\mudelapapermmrest_x_minimum{32.000000}%
+\def\mudelapaperhsize{597.507874}%
+\def\mudelapaperforced_stem_shorten2{2.000000}%
+\def\mudelapaperslur_clip_ratio{1.200000}%
+\def\mudelapaperminimum_stem_length3{4.000000}%
+\def\mudelapaperlinewidth{-28.452756}%
+\def\mudelapaperminimum_stem_length0{0.000000}%
+\def\mudelapaperfont_normal{8.000000}%
+\def\mudelapapernotewidth{6.600000}%
+\def\mudelapaperrestcollision_minimum_dist{3.000000}%
+\def\mudelapaperbeam_lengthened{0.800000}%
+\def\mudelapaperfont_number{8.000000}%
+\def\mudelapaperDOWN{-1.000000}%
+\def\mudelapaperslur_clip_angle{100.000000}%
+\def\mudelapaperwholewidth{7.920000}%
+\def\mudelapaperbarthick_thick{2.400000}%
+\def\mudelapapercastingalgorithm{1.000000}%
+\def\mudelapaperslur_slope_follow_music_factor{0.800000}%
+\def\mudelapaperpostBreakPadding{4.000000}%
+\def\mudelapaperscmsetting{(display "\\input lilyponddefs \\musixsixteendefs");%
+ }%
+\def\mudelapaperstemthickness{0.320000}%
+\def\mudelapaperinterline{4.000000}%
+\def\mudelapaperslur_height_limit{16.000000}%
+\def\mudelapapertextheight{611.809858}%
+\def\mudelapaperfont_large{12.000000}%
+\def\mudelapaperfont_finger{4.000000}%
+\def\mudelapaperrulethickness{0.400000}%
+\def\mudelapaperstem_length1{10.000000}%
+\def\mudelapaperslur_x_minimum{12.000000}%
+\def\mudelapaperlinewidth20{557.507874}%
+\def\mudelapaperfont_number+1{12.000000}%
+\def\mudelapaperMEAN{3.000000}%
+\def\mudelapaperpaperfile{a4.ly}%
+\def\mudelapapertexsetting{\input lilyponddefs \musixsixteendefs }%
+\def\mudelapaperforced_stem_shorten1{2.000000}%
+\def\mudelapaperinterbeam4{3.376000}%
+\def\mudelapaperminimum_stem_length2{5.000000}%
+\def\mudelapapergourlay_maxmeasures{10.000000}%
+\def\mudelapaperbeam_dir_algorithm{2.000000}%
+\def\mudelapapervsize{844.762323}%
+\def\mudelapaperstaffheight{16.000000}%
+\def\mudelapapertuplet_thick{0.400000}%
+\def\mudelapaperbarthick_score{0.640000}%
+\def\mudelapaperbar_thinkern{1.200000}%
+\def\mudelapapertie_x_gap{0.800000}%
+\def\mudelapapervolta_thick{0.640000}%
+\def\mudelapaperrestcollision_minimum_beamdist{1.500000}%
+\def\mudelapapertextheight20{764.762323}%
+\def\mudelapaperUP{1.000000}%
+\def\mudelapaperslur_rc_factor{2.400000}%
+\def\mudelapaperarithmetic_basicspace{2.000000}%
+\def\mudelapaperslur_thickness{0.560000}%
+\def\mudelapaperinterbeam{3.264000}%
+\def\mudelapaperindent{31.857593}%
+\def\mudelapaperfont_mark{10.000000}%
+\def\mudelapaperslur_ratio{0.250000}%
+\def\mudelapaperstem_length3{6.000000}%
+\def\mudelapaperslur_x_gap{0.800000}%
+\def\mudelapaperstem_length0{14.000000}%
+\def\mudelapaperfont_Large{10.000000}%
+\def\mudelapaperextender_height{0.320000}%
+\def\mudelapapercrescendo_shorten{16.000000}%
+\def\mudelapaperfont_volta{5.000000}%
+\def\mudelapaperforced_stem_shorten3{2.000000}%
+\def\mudelapaperslur_clip_height{48.000000}%
+\def\mudelapaperquartwidth{5.280000}%
+\def\mudelapaperforced_stem_shorten0{2.000000}%
+\def\mudelapaperminimum_stem_length1{6.000000}%
+\def\mudelapaperslur_slope_damping{0.600000}%
+\def\mudelapapermagnification_dynamic{2.000000}%
+\def\mudelapaperMEDIAN{4.000000}%
+\def\mudelapaperpssetting{(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec}%
+  { /undefinedfilename signalerror }%
+  ifelse%
+ }%
+\def\mudelapaperbarthick_thin{0.640000}%
+\def\mudelapaperbar_kern{1.200000}%
+\def\mudelapapertie_x_minimum{12.000000}%
+\def\mudelapaperbeam_thickness{1.872000}%
+\def\mudelapapertie_slope_damping{0.800000}%
+\def\mudelapaperfont_dynamic{10.000000}%
+\def\mudelapapergourlay_energybound{100000.000000}%
+\def\mudelapaperMAJORITY{2.000000}%
+\def\mudelapaperarithmetic_multiplier{4.800000}%
+\def\mudelapaperstaffline{0.400000}%
+\def\mudelapaperstem_length2{8.000000}%
+\def\mudelapaperbarsize{16.000000}%
+\input lilyponddefs \musixsixteendefs \turnOnExperimentalFeatures\turnOnPostScript\vbox to 38.2 pt {\hbox{%
+\font\lilyfontA=feta-nummer8\lilyfontA\placebox{-22.2 pt }%
+  {50.1287033355679 pt }%
+  {\hbox{2}%
+   }%
+  \placebox{-30.2 pt }%
+  {49.8575928008999 pt }%
+  {\hbox{4}%
+   }%
+  \placebox{-30.2 pt }%
+  {31.8575928008999 pt }%
+  {\kern0.0 pt \vrule width 173.026317573245 pt depth 0.2 pt height 0.2 pt  }%
+  \placebox{-26.2 pt }%
+  {31.8575928008999 pt }%
+  {\kern0.0 pt \vrule width 173.026317573245 pt depth 0.2 pt height 0.2 pt  }%
+  \placebox{-22.2 pt }%
+  {31.8575928008999 pt }%
+  {\kern0.0 pt \vrule width 173.026317573245 pt depth 0.2 pt height 0.2 pt  }%
+  \placebox{-18.2 pt }%
+  {31.8575928008999 pt }%
+  {\kern0.0 pt \vrule width 173.026317573245 pt depth 0.2 pt height 0.2 pt  }%
+  \placebox{-14.2 pt }%
+  {31.8575928008999 pt }%
+  {\kern0.0 pt \vrule width 173.026317573245 pt depth 0.2 pt height 0.2 pt  }%
+  \font\lilyfontB=feta16\lilyfontB\placebox{-26.2 pt }%
+  {35.8575928008999 pt }%
+  {\show{86}%
+   }%
+  \placebox{-22.2 pt }%
+  {89.1642303741433 pt }%
+  {\kern0.0 pt \vrule width 0.64 pt depth 8.0 pt height 8.0 pt  }%
+  \placebox{-22.2 pt }%
+  {122.604230374144 pt }%
+  {\kern0.0 pt \vrule width 0.64 pt depth 8.0 pt height 8.0 pt  }%
+  \placebox{-22.2 pt }%
+  {204.243910374144 pt }%
+  {\kern0.0 pt \vrule width 0.64 pt depth 8.0 pt height 8.0 pt  }%
+  \placebox{-22.2 pt }%
+  {60.5642303741424 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height 5.03836152344995 pt  }%
+  \placebox{-20.2 pt }%
+  {60.3642303741424 pt }%
+  {\show{30}%
+   }%
+  \placebox{-16.2 pt }%
+  {60.3642303741424 pt }%
+  {\show{30}%
+   }%
+  \placebox{-22.2 pt }%
+  {74.9642303741429 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 10.0 pt height 7.03836152344995 pt  }%
+  \placebox{-18.2 pt }%
+  {74.7642303741429 pt }%
+  {\show{30}%
+   }%
+  \placebox{-14.2 pt }%
+  {74.7642303741429 pt }%
+  {\show{30}%
+   }%
+  \placebox{-22.2 pt }%
+  {94.0042303741434 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height 1.03836152344995 pt  }%
+  \placebox{-20.2 pt }%
+  {93.8042303741434 pt }%
+  {\show{30}%
+   }%
+  \placebox{-22.2 pt }%
+  {98.8883903741434 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth -6.96163847655005 pt height 18.0 pt  }%
+  \placebox{-16.2 pt }%
+  {93.8042303741434 pt }%
+  {\show{30}%
+   }%
+  \placebox{-22.2 pt }%
+  {108.404230374144 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 10.0 pt height 3.03836152344995 pt  }%
+  \placebox{-18.2 pt }%
+  {108.204230374144 pt }%
+  {\show{30}%
+   }%
+  \placebox{-22.2 pt }%
+  {113.288390374144 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth -8.96163847655005 pt height 20.0 pt  }%
+  \placebox{-14.2 pt }%
+  {108.204230374144 pt }%
+  {\show{30}%
+   }%
+  \placebox{-34.2 pt }%
+  {146.864070374144 pt }%
+  {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-30.936 pt }%
+  {146.864070374144 pt }%
+  {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-34.2 pt }%
+  {137.264070374144 pt }%
+  {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-30.936 pt }%
+  {137.264070374144 pt }%
+  {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-34.2 pt }%
+  {127.244230374144 pt }%
+  {\embeddedps{10.41984 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-30.936 pt }%
+  {127.244230374144 pt }%
+  {\embeddedps{10.41984 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-22.2 pt }%
+  {127.444230374144 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height -0.961638476550048 pt  }%
+  \placebox{-22.2 pt }%
+  {127.244230374144 pt }%
+  {\show{30}%
+   }%
+  \placebox{-0.199999999999999 pt }%
+  {132.328390374144 pt }%
+  {\show{74}%
+   }%
+  \placebox{-22.2 pt }%
+  {132.328390374144 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth -10.96163847655 pt height 22.0 pt  }%
+  \placebox{-12.2 pt }%
+  {127.244230374144 pt }%
+  {\show{30}%
+   }%
+  \placebox{-22.2 pt }%
+  {137.464070374144 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height -0.961638476550048 pt  }%
+  \placebox{-22.2 pt }%
+  {137.264070374144 pt }%
+  {\show{30}%
+   }%
+  \placebox{-22.2 pt }%
+  {147.064070374144 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height -0.961638476550048 pt  }%
+  \placebox{-22.2 pt }%
+  {146.864070374144 pt }%
+  {\show{30}%
+   }%
+  \placebox{-22.2 pt }%
+  {151.948230374144 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth -10.96163847655 pt height 22.0 pt  }%
+  \placebox{-12.2 pt }%
+  {146.864070374144 pt }%
+  {\show{30}%
+   }%
+  \placebox{-22.2 pt }%
+  {156.664070374144 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height -0.961638476550048 pt  }%
+  \placebox{-22.2 pt }%
+  {156.464070374144 pt }%
+  {\show{30}%
+   }%
+  \placebox{-34.2 pt }%
+  {185.264070374144 pt }%
+  {\embeddedps{10.41984 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-30.936 pt }%
+  {185.264070374144 pt }%
+  {\embeddedps{10.41984 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-34.2 pt }%
+  {175.664070374144 pt }%
+  {\embeddedps{10.0 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-30.936 pt }%
+  {175.664070374144 pt }%
+  {\embeddedps{10.0 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-34.2 pt }%
+  {166.064070374144 pt }%
+  {\embeddedps{10.0 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-30.936 pt }%
+  {166.064070374144 pt }%
+  {\embeddedps{10.0 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-22.2 pt }%
+  {166.264070374144 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height -0.961638476550048 pt  }%
+  \placebox{-22.2 pt }%
+  {166.064070374144 pt }%
+  {\show{30}%
+   }%
+  \placebox{-22.2 pt }%
+  {175.864070374144 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height -0.961638476550048 pt  }%
+  \placebox{-22.2 pt }%
+  {175.664070374144 pt }%
+  {\show{30}%
+   }%
+  \placebox{-22.2 pt }%
+  {185.464070374144 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height -0.961638476550048 pt  }%
+  \placebox{-22.2 pt }%
+  {185.264070374144 pt }%
+  {\show{30}%
+   }%
+  \placebox{-0.199999999999999 pt }%
+  {190.348230374144 pt }%
+  {\show{74}%
+   }%
+  \placebox{-22.2 pt }%
+  {190.348230374144 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth -10.96163847655 pt height 22.0 pt  }%
+  \placebox{-12.2 pt }%
+  {185.264070374144 pt }%
+  {\show{30}%
+   }%
+  \placebox{-22.2 pt }%
+  {195.483910374144 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height -0.961638476550048 pt  }%
+  \placebox{-22.2 pt }%
+  {195.283910374144 pt }%
+  {\show{30}%
+   }%
+  }%
+ \vss}%
+\EndLilyPondOutput
\ No newline at end of file
diff --git a/Documentation/tex/lilypond-overview-0.2.9.tex b/Documentation/tex/lilypond-overview-0.2.9.tex
new file mode 100644 (file)
index 0000000..a8834b8
--- /dev/null
@@ -0,0 +1,225 @@
+%created by: GNU LilyPond 1.1.48.uu1, at Fri Jun 18 14:13:37 1999
+%
+% outputting Score, defined at: 
+% out-www/lilypond-overview-0.2.9.ly:3:7
+\def\mudelatagline{Lily was here, 1.1.48.uu1}%
+\def\LilyPondVersion{1.1.48.uu1}%
+\def\mudelapaperbeam_steep_slope{0.200000}%
+\def\mudelapaperstem_max{3.000000}%
+\def\mudelapaperfont_number-1{8.000000}%
+\def\mudelapapermmrest_x_minimum{32.000000}%
+\def\mudelapaperhsize{597.507874}%
+\def\mudelapaperforced_stem_shorten2{2.000000}%
+\def\mudelapaperslur_clip_ratio{1.200000}%
+\def\mudelapaperminimum_stem_length3{4.000000}%
+\def\mudelapaperlinewidth{-28.452756}%
+\def\mudelapaperminimum_stem_length0{0.000000}%
+\def\mudelapaperfont_normal{8.000000}%
+\def\mudelapapernotewidth{6.600000}%
+\def\mudelapaperrestcollision_minimum_dist{3.000000}%
+\def\mudelapaperbeam_lengthened{0.800000}%
+\def\mudelapaperfont_number{8.000000}%
+\def\mudelapaperDOWN{-1.000000}%
+\def\mudelapaperslur_clip_angle{100.000000}%
+\def\mudelapaperwholewidth{7.920000}%
+\def\mudelapaperbarthick_thick{2.400000}%
+\def\mudelapapercastingalgorithm{1.000000}%
+\def\mudelapaperslur_slope_follow_music_factor{0.800000}%
+\def\mudelapaperpostBreakPadding{4.000000}%
+\def\mudelapaperscmsetting{(display "\\input lilyponddefs \\musixsixteendefs");%
+ }%
+\def\mudelapaperstemthickness{0.320000}%
+\def\mudelapaperinterline{4.000000}%
+\def\mudelapaperslur_height_limit{16.000000}%
+\def\mudelapapertextheight{611.809858}%
+\def\mudelapaperfont_large{12.000000}%
+\def\mudelapaperfont_finger{4.000000}%
+\def\mudelapaperrulethickness{0.400000}%
+\def\mudelapaperstem_length1{10.000000}%
+\def\mudelapaperslur_x_minimum{12.000000}%
+\def\mudelapaperlinewidth20{557.507874}%
+\def\mudelapaperfont_number+1{12.000000}%
+\def\mudelapaperMEAN{3.000000}%
+\def\mudelapaperpaperfile{a4.ly}%
+\def\mudelapapertexsetting{\input lilyponddefs \musixsixteendefs }%
+\def\mudelapaperforced_stem_shorten1{2.000000}%
+\def\mudelapaperinterbeam4{3.376000}%
+\def\mudelapaperminimum_stem_length2{5.000000}%
+\def\mudelapapergourlay_maxmeasures{10.000000}%
+\def\mudelapaperbeam_dir_algorithm{2.000000}%
+\def\mudelapapervsize{844.762323}%
+\def\mudelapaperstaffheight{16.000000}%
+\def\mudelapapertuplet_thick{0.400000}%
+\def\mudelapaperbarthick_score{0.640000}%
+\def\mudelapaperbar_thinkern{1.200000}%
+\def\mudelapapertie_x_gap{0.800000}%
+\def\mudelapapervolta_thick{0.640000}%
+\def\mudelapaperrestcollision_minimum_beamdist{1.500000}%
+\def\mudelapapertextheight20{764.762323}%
+\def\mudelapaperUP{1.000000}%
+\def\mudelapaperslur_rc_factor{2.400000}%
+\def\mudelapaperarithmetic_basicspace{2.000000}%
+\def\mudelapaperslur_thickness{0.560000}%
+\def\mudelapaperinterbeam{3.264000}%
+\def\mudelapaperindent{31.857593}%
+\def\mudelapaperfont_mark{10.000000}%
+\def\mudelapaperslur_ratio{0.250000}%
+\def\mudelapaperstem_length3{6.000000}%
+\def\mudelapaperslur_x_gap{0.800000}%
+\def\mudelapaperstem_length0{14.000000}%
+\def\mudelapaperfont_Large{10.000000}%
+\def\mudelapaperextender_height{0.320000}%
+\def\mudelapapercrescendo_shorten{16.000000}%
+\def\mudelapaperfont_volta{5.000000}%
+\def\mudelapaperforced_stem_shorten3{2.000000}%
+\def\mudelapaperslur_clip_height{48.000000}%
+\def\mudelapaperquartwidth{5.280000}%
+\def\mudelapaperforced_stem_shorten0{2.000000}%
+\def\mudelapaperminimum_stem_length1{6.000000}%
+\def\mudelapaperslur_slope_damping{0.600000}%
+\def\mudelapapermagnification_dynamic{2.000000}%
+\def\mudelapaperMEDIAN{4.000000}%
+\def\mudelapaperpssetting{(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec}%
+  { /undefinedfilename signalerror }%
+  ifelse%
+ }%
+\def\mudelapaperbarthick_thin{0.640000}%
+\def\mudelapaperbar_kern{1.200000}%
+\def\mudelapapertie_x_minimum{12.000000}%
+\def\mudelapaperbeam_thickness{1.872000}%
+\def\mudelapapertie_slope_damping{0.800000}%
+\def\mudelapaperfont_dynamic{10.000000}%
+\def\mudelapapergourlay_energybound{100000.000000}%
+\def\mudelapaperMAJORITY{2.000000}%
+\def\mudelapaperarithmetic_multiplier{4.800000}%
+\def\mudelapaperstaffline{0.400000}%
+\def\mudelapaperstem_length2{8.000000}%
+\def\mudelapaperbarsize{16.000000}%
+\input lilyponddefs \musixsixteendefs \turnOnExperimentalFeatures\turnOnPostScript\vbox to 32.0 pt {\hbox{%
+\placebox{-24.0 pt }%
+  {31.8575928008999 pt }%
+  {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt  }%
+  \placebox{-20.0 pt }%
+  {31.8575928008999 pt }%
+  {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt  }%
+  \placebox{-16.0 pt }%
+  {31.8575928008999 pt }%
+  {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt  }%
+  \placebox{-12.0 pt }%
+  {31.8575928008999 pt }%
+  {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt  }%
+  \placebox{-8.0 pt }%
+  {31.8575928008999 pt }%
+  {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt  }%
+  \font\lilyfontA=feta16\lilyfontA\placebox{-20.0 pt }%
+  {35.8575928008999 pt }%
+  {\show{86}%
+   }%
+  \font\lilyfontB=feta-nummer8\lilyfontB\placebox{-16.0 pt }%
+  {50.3998138702358 pt }%
+  {\hbox{3}%
+   }%
+  \placebox{-24.0 pt }%
+  {49.8575928008999 pt }%
+  {\hbox{4}%
+   }%
+  \placebox{-16.0 pt }%
+  {127.564230374143 pt }%
+  {\kern0.0 pt \vrule width 0.64 pt depth 8.0 pt height 8.0 pt  }%
+  \placebox{-16.0 pt }%
+  {174.764230374143 pt }%
+  {\kern0.0 pt \vrule width 0.64 pt depth 8.0 pt height 8.0 pt  }%
+  \placebox{-27.264 pt }%
+  {79.5642303741425 pt }%
+  {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-24.0 pt }%
+  {79.5642303741425 pt }%
+  {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-27.264 pt }%
+  {69.9642303741424 pt }%
+  {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-24.0 pt }%
+  {69.9642303741424 pt }%
+  {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-27.264 pt }%
+  {60.3642303741423 pt }%
+  {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-24.0 pt }%
+  {60.3642303741423 pt }%
+  {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-16.0 pt }%
+  {60.5642303741423 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 11.264 pt height 1.03836152344995 pt  }%
+  \lilyfontA\placebox{-14.0 pt }%
+  {60.3642303741423 pt }%
+  {\show{30}%
+   }%
+  \placebox{-16.0 pt }%
+  {70.1642303741424 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 11.264 pt height 1.03836152344995 pt  }%
+  \placebox{-14.0 pt }%
+  {69.9642303741424 pt }%
+  {\show{30}%
+   }%
+  \placebox{-16.0 pt }%
+  {79.7642303741425 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 11.264 pt height 1.03836152344995 pt  }%
+  \placebox{-14.0 pt }%
+  {79.5642303741425 pt }%
+  {\show{30}%
+   }%
+  \placebox{-16.0 pt }%
+  {89.3642303741427 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 11.264 pt height 1.03836152344995 pt  }%
+  \placebox{-14.0 pt }%
+  {89.1642303741427 pt }%
+  {\show{30}%
+   }%
+  \placebox{-24.736 pt }%
+  {98.7642303741428 pt }%
+  {\embeddedps{14.8000000000002 0.0 1.872 draw_beam }%
+   }%
+  \placebox{-16.0 pt }%
+  {98.9642303741428 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 8.736 pt height 1.03836152344995 pt  }%
+  \placebox{-14.0 pt }%
+  {98.7642303741428 pt }%
+  {\show{30}%
+   }%
+  \placebox{-16.0 pt }%
+  {113.364230374143 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 8.736 pt height 1.03836152344995 pt  }%
+  \placebox{-14.0 pt }%
+  {113.164230374143 pt }%
+  {\show{30}%
+   }%
+  \placebox{-16.0 pt }%
+  {132.404230374143 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 6.0 pt height 7.03836152344995 pt  }%
+  \placebox{-8.0 pt }%
+  {132.204230374143 pt }%
+  {\show{30}%
+   }%
+  \placebox{-16.0 pt }%
+  {151.688390374143 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 5.03836152344995 pt height 8.0 pt  }%
+  \placebox{-22.0 pt }%
+  {146.604230374143 pt }%
+  {\show{30}%
+   }%
+  \placebox{-16.0 pt }%
+  {161.204230374143 pt }%
+  {\kern-0.16 pt \vrule width 0.32 pt depth 6.0 pt height 7.03836152344995 pt  }%
+  \placebox{-8.0 pt }%
+  {161.004230374143 pt }%
+  {\show{30}%
+   }%
+  }%
+ \vss}%
+\EndLilyPondOutput
\ No newline at end of file
index 4aea7128387689dab0eaf75e0024398dcee113be..4aa1e759bda231807b3ec98f05050226c20f4140 100644 (file)
@@ -311,6 +311,7 @@ are called note and rest respectively.\footnote{These names serve a
   concepts.}  The shape of notes and rests indicates their duration
 (See figure~\ref{noteshapes}) relative to the whole note.
 
+
 \begin{figure}[h]
   \begin{center}
 \begin{mudela}
@@ -321,7 +322,7 @@ are called note and rest respectively.\footnote{These names serve a
        \StaffContext
        \remove "Staff_symbol_engraver";
         \remove "Time_signature_engraver";
-        \remove "Bar_engraver";
+%        \remove "Bar_engraver";
         \remove "Clef_engraver";
  }
 linewidth = -1.;
@@ -336,7 +337,7 @@ linewidth = -1.;
         \StaffContext
         \remove "Staff_symbol_engraver";
         \remove "Time_signature_engraver";
-        \remove "Bar_engraver";
+%        \remove "Bar_engraver";
         \remove "Clef_engraver";
         }
       linewidth = -1.;
@@ -352,6 +353,7 @@ linewidth = -1.;
 \end{center}
 \end{figure}
 
+
 Notes are printed in a grid of horizontal lines called \emph{staff} to
 denote their pitch: each line represents the pitch of from the
 standard scale (c, d, e, f, g, a, b).  The reference point is the
@@ -612,7 +614,7 @@ cannot determine the meaning of the notes.
   \translator {
   \StaffContext
   \remove "Time_signature_engraver";
-  \remove "Bar_engraver";
+%  \remove "Bar_engraver";
   \remove "Staff_symbol_engraver";
   \remove "Clef_engraver";
   \remove "Key_engraver";
index 6fcd8b45a0c6cf0703fd6f182eb0bc58e332f106..bc70c38b3ddd31c45671b5806da1d8d59bf82652 100644 (file)
@@ -85,6 +85,13 @@ numberOfStaffLines.  Ledger lines both on note heads and rests are adjusted.
 
 \mudelafile{number-staff-lines.fly}
 
+\section{Spacing}
+
+In a limited number of cases, LilyPond corrects for optical spacing
+effects.  In this example, space for opposite pointed stems is adjusted
+
+\mudelafile{stem-spacing.sly}
+
 \section{Global stuff}
 
 Markings that are attached to (invisible) barlines are 
index 5711ca323b3a1897f8261464a22190365d559b04..1ab69332373408b25c647c8d124d3918541e55ad 100644 (file)
@@ -533,14 +533,14 @@ e' ~ e' <c' e' g'> ~ <c' e' g'>
 It is possible to create beams and slurs that cross staffs by switching the
 context:
 mudela(fragment,verbatim,center)(
-<
+\context PianoStaff <
 \context Staff=one \notes\relative c'{
   \stemup
   [c8 c \translator Staff=two \stemup c c]
   \translator Staff=one
   d4( \translator Staff=two )a4
   }
-\context Staff=two \notes{ \clef bass;}
+\context Staff=two \notes{ \clef bass; s1}
 >
 )
 
diff --git a/NEWS b/NEWS
index 1b90a27d709c901864a9c58029c41d9f24df31b5..2eedaf8bb189c69f9194de1c9e4ad208e60924e4 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,30 @@
+pl 48.hwn1
+       - \property hshift -> \property horizontalNoteShift (mudela 1.0.21)
+       - cleaned up collision.  \property hshift = 2 now supported.
+       - Spacing:
+         * bf: don't divide strength by distance if distance == 0.0
+         * cleaned up Spacing_spanner
+         * simplistic optical illusion spacing for opposite stems.
+       - don't use Protected_scm for Score_element::element_property_alist_
+       - some scsii fixes.
+       - Lookup cleanups; junked Lookup::paper_l_
+       - abc-2-ly: tuplets, guitar chords., chords,
+
+pl 48.mb2
+       - bf: correct accidentals after tied over note.
+
+pl 48.mb1
+       - bf, lookup.cc: Count '{' also directly after a TeX macro
+       - bf: textstyle->textStyle in all examples.
+
+pl 48.jcn1
+       - bd: interstaff slurs at line break
+
+pl 48.uu1
+       - add a WX field to AFM output.
+       - add space before ; in AFM output
+
+*********
 pl 47.jcn1
        - bf: interstaff slurs (urg: more segfaults in scm_gc_mark ())
 
@@ -267,7 +294,7 @@ pl 37.script2
          * G_script_column
          * G_script_column_engraver
 
-  pl 37.script1
+pl 37.script1
        - major Script rehack:
          * G_stem_staff_side_item
          * G_script
diff --git a/TASKS b/TASKS
index b52bec1a458de974170a159519de9a35bffad29b..ef7ad3d29ac60862238114fb78a186b39d1c381f 100644 (file)
--- a/TASKS
+++ b/TASKS
@@ -5,7 +5,7 @@ WHAT IS MUTOPIA?
 
 Mutopia is an archive of public domain music, free for all to
 download, modify and redistribute.  It should be based on free
-software. It is similar in spirit to the gutenberg archive.
+software. It is similar in spirit to the Gutenberg archive.
 
 
 
@@ -15,21 +15,16 @@ WHAT NEEDS TO BE DONE
 
 - setup submission guidelines, 
 
-- acquire mutopia.org domain.
-
-- setup FTP server
-
-- cooperate with ABC folks, ftp.gmd.de
+- setup FTP/Web server
 
 
 
 WHO DO WE NEED
 
-Volunteers that want to setup and maintain a website and FTP site.
-
-Volunteers with enough legal knowledge to write submission guidelines.
+Volunteers that want to setup, host and maintain a website and FTP
+site.
 
-A project leader.
+Volunteers to write submission guidelines, and copyright FAQs.
 
 
 
@@ -44,7 +39,7 @@ enough time to take up the task of setting up Mutopia
 
 Signed
 
-Han-Wen Nienhys
+Han-Wen Nienhuys
 Jan Nieuwenhuizen
 
 [other bigwigs?]
diff --git a/TODO b/TODO
index ee05f34ea8ab751554d990641d0dfc957b0ddfa9..3ad59da0474319d1fe0e611743abc8e829a19fae 100644 (file)
--- a/TODO
+++ b/TODO
@@ -9,8 +9,8 @@ Most of the items are marked in the code as well
 Grep for TODO and ugh/ugr/urg.  
 
 .* BUGS
-. * junk separate mudela versioning. 
-. * petite-ouverture time sig size. 
+. * junk separate mudela versioning.
+. * indent = 0.0 with linewidth=-1.0
 . * PostScript
 .  * header for PS enteredby = "bla <bla@bar.com>"
 .  * ps/lily.ps see comments.
@@ -63,7 +63,6 @@ I understand your point.  It should be changed.
 . * fix MIDI
 . * \shape 1st dim skipped? 
 . * turn slope-damping on/off
-. * tremolo stuff: tremolo over whole note.
 . * We need feta-din*.mf files for more sizes than 10.
 . * fix dynamics decently, ie. use kerning & ligatures.  
 . * dots & rest collisions?
@@ -91,7 +90,7 @@ specify the third.  Should there be?
 
    note + circle = note + 1/4 of its length
 
-5   the circle is like a dot that's not filled in.  for example, on
+   the circle is like a dot that's not filled in.  for example, on
    page three, the c-sharp on the second line should be a quarter with 
    a circle, not a quarter tied to a sixteenth.  is this at all
    possible with lily?
@@ -100,7 +99,6 @@ specify the third.  Should there be?
 . * repeat engraver, gallina.ly
 
 . * Matanya's tips: 
-.  * spacing for prefatory matter
 .  * accidentals closer to note head
 .  * to space the staffs/staffgroups contained in the score.  
 .  * heavier beams?
@@ -111,14 +109,11 @@ specify the third.  Should there be?
 . * Slur
 . * Rhythmic_grouping
 . * Duration
-. * Collision
-. * Rest_collision
-. * clef grav prop's 
+. * clef engraver 
 . * parser
 
 .* TODO before 1.2
 . * Morally pure LilyPond.
-.  * Remove mutopia ramblings.
 .  * Remove non-free software links.
 .  * Remove meta article LilyPond.
 . * break priority setting from SCM.
@@ -191,10 +186,6 @@ compilation.
 . * add new glyphs to font.ly
 . * formatting of input stuff. 
 . * \notes{ a \< b \cr } vs \notes{ a \< b \! }
-. * 'hinterfleisch' before bar (e.g. wtk1-fugue2)?
-. * Summary of minor spelling irregularities:
-.  *  capitalization/use of underscores in property names
-.  * fix SkipBars  -> skipBars
 . * broken scripts:
        lbheel = \script { "bheel" 0 0 -1  0 0 }
        rbheel = \script { "bheel" 0 0 1 0 0 }
@@ -308,6 +299,8 @@ touching it.
 
 .* 3RD PARTY BUGS
 . * GNU diff 2.7: diff -rN does not see a new directory with empty file
+. * mf-to-table -> add space before ; in AFM output.  (-> check AFM
+    spec. Is this a bug in afm2tfm?)
 . * check out GCC signatures?
 . * glibc 2.0:
          f = fopen ("/dev/null", "r")
diff --git a/VERSION b/VERSION
index b8326958da668d7fc14858721b1a9626ac5c29f5..5364f24d9a8bbadb27ac0cf0537974c7b1d1478c 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,7 +1,7 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=1
-PATCH_LEVEL=48
+PATCH_LEVEL=49
 MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
index 2b57d02c6f6faf3aeb684ce31ae50144c64706e9..7b6ecd183e746be2c59d29a9567bd7a66f4aa69b 100644 (file)
@@ -42,7 +42,7 @@ begin_autometric_re = regex.compile('@{')
 end_autometric_re = regex.compile('@}')
 include_re = regex.compile ('(\([a-zA-Z_0-9-]+\.mf\)')
 autometric_re = regex.compile('@{\(.*\)@}')
-version = '0.7'
+version = '0.8'
 postfixes = ['log', 'dvi', '2602gf', 'tfm']
 
 class Feta_file(File):
@@ -116,7 +116,7 @@ class Indentable_file(File):
         self.writeline (lines[-1])
 
 class Afm_file (File):
-    def print_f_dimen(self, f):
+    def print_dimen(self, f):
        f = f * 1000 / self.fontsize
     
        dimstr = '%.2f' % f
@@ -126,19 +126,23 @@ class Afm_file (File):
                dimstr = '0.00'
        self.write( dimstr  +' ');
 
-    def neg_print_dimen(self, str):
-       self.print_f_dimen(-atof(str))
-    def print_dimen(self, str):
-       self.print_f_dimen(atof(str))
     def def_symbol (self, code, lily_id, tex_id, xdim, ydim):
-       self.write ('C %s; N %s-%s; B ' % (code, self.groupname, lily_id))
+       xdim = map (atof, xdim)
+       ydim = map (atof, ydim)
+       
+       wid = xdim[0] + xdim[1]
+       self.write ('C %s ; ' % code)
+       self.write ('WX ')
+       self.print_dimen (wid)
+
+       self.write (' ; N %s-%s ; B ' % (self.groupname, lily_id))
 
-       self.neg_print_dimen(xdim [0])
-       self.neg_print_dimen(ydim [0])
+       self.print_dimen(-xdim [0])
+       self.print_dimen(-ydim [0])
        self.print_dimen(xdim [1])
        self.print_dimen(ydim [1])
 
-       self.write (';\n');
+       self.write (' ;\n');
        
     def start (self,nm):
        self.write ('Start%s\n' % nm)
index 1f6f5148378e600872ef1ea34ca3f93cc8168ca9..99c37f13aae6bfe20696c430f256970cfeb5b17f 100644 (file)
@@ -4,7 +4,7 @@ composer = "Johann Christoph Faber";
 piece = "1.  Overture";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 global=\notes{
        \time 2/2;
diff --git a/input/bugs/bar-space.ly b/input/bugs/bar-space.ly
deleted file mode 100644 (file)
index 5f01cc9..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-\version "1.0.20";
-
-scales = \notes\transpose c''{
-               f2 f f f f f f f f f\break 
-       }
-
-keys = \notes{
-                \key b; s1 \key f; s1 \key f; s1 \key f; s1 \key f; s1 
-       }
-
-\score{
-       <
-               \context ChordNames \scales
-               \context Staff < \scales \keys >
-       >
-}
diff --git a/input/bugs/hari-number.ly b/input/bugs/hari-number.ly
deleted file mode 100644 (file)
index 444d4e3..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-\score{
-       \notes { R1 }
-       \paper{
-               linewidth = 40.0\mm;
-
-Staff = \translator {
-       \type "Hara_kiri_line_group_engraver";
-       defaultclef = violin;
-
-       \consists "Bar_engraver";
-       \consists "Clef_engraver";
-       \consists "Key_engraver";
-       \consists "Meter_engraver";
-       \consists "Local_key_engraver";
-       \consists "Staff_sym_engraver";
-       \consists "Collision_engraver";
-       \consists "Rest_collision_engraver";
-% {
-       \consists "Bar_column_engraver";
-       \consists "Bar_number_engraver";
-% }
-       \consists "Staff_margin_engraver";
-       \consists "Separating_line_group_engraver";
-%      \consists "Line_group_engraver";
-         
-       \accepts "Voice";
-}
-
-% }
-       }
-}
-
diff --git a/input/bugs/nobreak.ly b/input/bugs/nobreak.ly
new file mode 100644 (file)
index 0000000..0636efd
--- /dev/null
@@ -0,0 +1,2 @@
+
+\score { \context Staff \notes { c1 \nobreak c1 }}
diff --git a/input/bugs/rcol.fly b/input/bugs/rcol.fly
new file mode 100644 (file)
index 0000000..e320644
--- /dev/null
@@ -0,0 +1,11 @@
+\clef alto;
+\time 3/4;
+\key F;
+[bes'16 r r ges'][es r r ges][es r r ges] |
+[bes, r r d][bes r r d][bes r r d]|
+[bes r r es][bes r r es][bes r r es]|
+[bes r r d][bes r r d][bes r r d]|
+[cis r r g'][e r r g][e r r b']|
+[g r r bes][g r r bes][g r r bes] |
+[g r r a][e r r a][e r r a]|
+[d, r r gis][d r r gis][d r r gis]|
diff --git a/input/bugs/spacing.ly b/input/bugs/spacing.ly
new file mode 100644 (file)
index 0000000..47fb626
--- /dev/null
@@ -0,0 +1,14 @@
+\score {
+    \notes \transpose c''{ c\longa*1/4 c\breve*1/2 c1 c2 c4 c8 c16 c32 c64 }
+    \paper {
+     \translator {
+       \StaffContext
+       \remove "Staff_symbol_engraver";
+        \remove "Time_signature_engraver";
+        \remove "Bar_engraver";
+        \remove "Clef_engraver";
+ }
+linewidth = -1.;
+    }}
+
+
index 7bbed535f0ef9de0f36118632b802e85e39c17d3..950f45ab576a1e91cb3caf5b16408e4459d5f5c0 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 one = \notes\relative c{
        c'' d e f
index 60443d076f34b11a30769c2c7fc1328688c048c5..b08f6f3176518758946f0a91e26af9bffd85dae3 100644 (file)
@@ -57,4 +57,4 @@ of a certain tune (Jazz, Real Book, for example), like
        }
 }
 
-\version "1.0.20";
+\version "1.0.21";
index f203dedaf14cba4f6433932fe1c6670f6dad1592..66e95fd41b4d83a08e855e7a9c14d6f398731692 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 
 blah = \notes {
index 376fadc8ba04e651f737e4e2e13bffe1919972c7..e88af13ef3b9908bb204acbd19336606780c5238 100644 (file)
@@ -10,7 +10,7 @@ copyright =    "public domain";
 Tested Features: example file with comments
 
 %}
-\version "1.0.20";
+\version "1.0.21";
 
 
 % the % is a comment.
index 4b43254c4905c6a09c7261525574cceb29aada34..06ba443e75e3851b6a70cedf9cb1e1be6e2881f8 100644 (file)
@@ -11,7 +11,7 @@ copyright =    "public domain";
 % \version "1.0.16";
 
 tempi = \notes {
-       \property Voice.textstyle = "large"
+       \property Voice.textStyle = "large"
        s8^"Allegro assai"
 }
 
index e54ca2a2017c98650dce9bfc321afc608f2c2b38..a0f60f576b9bfd6ee44d456c24aaa822606fa4ff 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 part = \notes {
        c-1 c c c
        r1*3
index bfd90fea410d25abad2d4272b4c16f9eb9f1d70f..514fee0325fe4d099fe3b0ad505721d456d55d83 100644 (file)
@@ -28,7 +28,7 @@
 % \lbheel \lbheel \lfheel \lftoe
 % \rbheel \rbtoe \rfheel \rftoe
 
-\version "1.0.20";
+\version "1.0.21";
 
 \score{
                \notes {
index a8c26b71f6d1b384d0025e6a77a9229e5d0f9d92..1742c1286ece4cfcaba82319128d48ff838b86b1 100644 (file)
@@ -23,7 +23,7 @@
    * organ staff...
 %}
 
-\version "1.0.20";
+\version "1.0.21";
 
 
 
@@ -203,13 +203,13 @@ breakmusic = \notes {
     \VoiceContext
     \name "VoiceThree";
     verticalDirection = "1";
-    hshift = "1";
+    horizontalNoteShift = "1";
     }
     \translator {
     \VoiceContext
     \name "VoiceFour";
     verticalDirection = "-1";
-    hshift = "1";
+    horizontalNoteShift = "1";
     }
    \translator { 
      \StaffContext 
index e8ab4e3de6b98f456f826a1d047bc71da7233875..b0de5a90bd717a15b2dee4cc1a8453791bfdf04f 100644 (file)
@@ -7,7 +7,7 @@ TestedFeatures =         "multiple meters, beaming, unsynced bars, userdefd engravers";
 
 
 
-\version "1.0.20";
+\version "1.0.21";
 
 ritme = \notes\transpose c'' {
        \time  4/4;
index 4b00ac05be613901c2482aed1b5bc933b1186e84..18ae6a98445218c2b21dbe1181d8e4e8dd4df230 100644 (file)
@@ -16,7 +16,7 @@ copyright =    "public domain";
 % scales with accents.
 %
 
-\version "1.0.20";
+\version "1.0.21";
 blah =         \notes {
                \time 6/8;      
 \transpose c {
index 598e45bc38d28e07611b46e535aba443bef9277d..a78e1f8c250fab49e716feeead245d263ae36c7a 100644 (file)
@@ -1,5 +1,5 @@
        
-\version "1.0.20";
+\version "1.0.21";
 
 
 blah =         \notes{ \transpose c'' {
index c018bd523c40beee241d26bb5d043c90b461b613..49a0e4f3c9b4170b0b768efe0c2e120053d11bf0 100644 (file)
@@ -118,4 +118,4 @@ global = \notes {
 }
 
 
-\version "1.0.20";
+\version "1.0.21";
index acb8b7ab87b8b4481903a18e72871b8be9c0f683..361ec08752ed4e26924cf4e0a6a72df9a1a40f27 100644 (file)
@@ -121,4 +121,4 @@ xxx\break
        }
 }
 
-\version "1.0.20"; 
+\version "1.0.21"; 
index d176fbc7f274c1085121bb32d61b3079c6e1cad6..21cb6c592241fd3633dc8a6a9feab9d1a4601439 100644 (file)
@@ -31,4 +31,4 @@
 
 }}
 
-\version "1.0.20"; 
+\version "1.0.21"; 
index 8990f4686834a3a5198897054369a971f894a22a..0eebd74cab93419b2e35e73ca2060209d5087c80 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.20";
+\version "1.0.21";
 
 onestaff = \context Staff = foo\notes  {
        \property Staff.instr = instr
index 3ad0189aeb7c9ff7d750f28f9795c67e6f59523b..d9553639b5bdebb642d1a03a414366d611f58cb8 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 \score{
        \notes\transpose c'{
index 4554160c4351d4c984ab1d67a5765d2c99008c90..41e0adc66966dd4381daf0327d3157b49ad46a8e 100644 (file)
@@ -30,4 +30,4 @@
        }
 }
 
-\version "1.0.20"; 
+\version "1.0.21"; 
index f71167fdabcffd291a99965a3e12963168ee005a..342b553526ae819f0592b0566ac74e86483af969 100644 (file)
@@ -21,4 +21,4 @@
        }
 }
 
-\version "1.0.20"; 
+\version "1.0.21"; 
index 6d69d96723663005d3ee637bdfb2068e5c14e51b..6d2abe6cb4511747b5fc2e5cf2eb88bfe3d7cb0f 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 \score{
        \notes\transpose c''{
index 2e0cbb43ca707ea29868dc5573540cafd31d2fa7..819c9cdffea5ec2da5c33e780625d787e2ea70af 100644 (file)
@@ -6,7 +6,7 @@ copyright =      "PD";
 
 TestedFeatures =        "beams and beamflags";
 }
-\version "1.0.20";
+\version "1.0.21";
 
 \score{
        <
index 83b3e26ff7ae6e179047cfc3e8ceb6d78067af02..7c873500968b0584aa06240177441a73230fb899 100644 (file)
@@ -5,7 +5,7 @@ TestedFeatures =         "This file tests Feta embedded slurs" +
         "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 shortlong = \notes{
        c4()c( c c  |
index 29fae53e31db71ce98a606bad6117f517c7f58df..e2d63ff9c21a1abff329cac6b2377e89792c5751 100644 (file)
@@ -22,4 +22,4 @@ inversions = \notes\transpose c''\chords{
        >
 }
 
-\version "1.0.20"; 
+\version "1.0.21"; 
index 25ffa4bc7899613c122d2bf26cc85312f2a6e35e..e31e92a57e60c5f99f4acd56463246c360efce06 100644 (file)
@@ -41,4 +41,4 @@ tab = \notes\transpose c'''\chords{
 
 }
 
-\version "1.0.20"; 
+\version "1.0.21"; 
index 06cf21a60a36060a83b6af4094b5bffbb60516dd..dda0de434d766c7077f305ab8c926d216a1dcf30 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 %{
 Would this be acceptable/good enough/convenient for entry?
index 4050cbfcd5d8364a4cf65dfc32a82cb415286bb9..de74c39138e75b0411d067463e89070ab3798c13 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 \score {
        \notes{ 
index c938d5bd49237b71aee8a0d28fbadae0aaa153b7..9c8e46f3d8c7d045b76fabf7e9f6bbd50c62e9aa 100644 (file)
@@ -5,7 +5,7 @@ enteredby =      "HWN,JCN";
 copyright =     "public domain";
 Tested =        "test the Collision resolution ";
 }
-\version "1.0.20";
+\version "1.0.21";
 
 twovoice = \context Staff \notes < 
        \context Voice=i { \stemdown c4 d e f g2~  g4 a [c8 d e f] c2| }
@@ -20,7 +20,7 @@ twovoicesteminvert = \context Staff \notes <
 
 threevoice = \context Staff \notes <
        \context Voice=i { \stemup g4 f e f g a g2 }
-       \context Voice=ii { \stemup \property Voice.hshift = 1 e2  e2  e2  e2 }
+       \context Voice=ii { \stemup \property Voice.horizontalNoteShift = 1 e2  e2  e2  e2 }
        \context Voice=iii { \stemdown c4 d e d c d es }
 >
 
index 5c94ae07bf9dede84caa1626007f152196cc96d2..664d0bc54d08f08beba4c165da5518e00c5ba4d4 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 
 \score {
index dc382e07a6ab720a981acb7e8894f47bf93286ce..f0105edf9047a181abe10d645056494a558f17c6 100644 (file)
@@ -7,7 +7,7 @@ TestedFeatures = "This file tests silly line shapes";
 
 \include "paper20.ly"
 
-\version "1.0.20";
+\version "1.0.21";
 
 oden = \lyrics{ 
        O8 |
index 6b42c3e8f0940ad96bca38c378680b87ee94ba72..1504b5bc12a8f09cd405ce5797a7f2cac453a92e 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 \score{
        \notes{
index ea0587909da70b914a34bfc5fc1b92c5c9cb4bf2..643acb4fcd47cc8c1abcb695a118e34a4dcb48fc 100644 (file)
@@ -5,4 +5,4 @@
        >
 }
 
-\version "1.0.20"; 
+\version "1.0.21"; 
index 829c0929b946bbd00a4dcdfd9d5f60f6a43b2110..b12ab289f54a8d546f28c2cac6d1461bb02aef32 100644 (file)
@@ -42,4 +42,4 @@ extra-staff.ly:
 }
 
 
-\version "1.0.20"; 
+\version "1.0.21"; 
index a9992e2dff9778bc2a539a07fb5d1b59884824b5..8d88c31f397a263874f4a09d4c4f8f896c39accd 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 \score{
        \notes \relative c {
index 7e2b30aa53fa490ff4239e15a88f6d56031a65d2..ad8d70d77c0e6a49009a3c3326f6cf049f384ac8 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 FontBody=      \notes\transpose c''{ 
                \bar "|:";
@@ -30,7 +30,7 @@ FontBody=     \notes\transpose c''{
 
                \transpose c'{
                        \time 4/4;
-                       \property Voice . textstyle =  "finger"
+                       \property Voice . textStyle =  "finger"
                        \property Voice . noteHeadStyle = "diamond"
                        c1^"1" d2^"2" e4^"3"
                        \property Voice . noteHeadStyle = "cross"
@@ -43,7 +43,7 @@ FontBody=     \notes\transpose c''{
                        a^"0"_"9"
 
                        a'^\flageolet
-                       \property Voice . textstyle =  "roman"
+                       \property Voice . textStyle =  "roman"
                        \time 1/2; a2 |
                        \time 3/2; < a1.
                        { s4 \ppp \< s4 \! s4 \fff  s4 \> s4 \! s4\ppp} >
index c6b011f481f04b8468bbe7127dd4c63f8e5e6eb7..dd65dc0756a14dd81a2d64c920f1de8377cf7642 100644 (file)
@@ -7,7 +7,7 @@ description = "This file tests the Feta music font";
 % "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "font-body.ly"
 \score{
index 6a5c020a00b20d1b608322fb554b4f0ed2ac9938..6701a291be5c1d0d39589acebd02750fe0b8619e 100644 (file)
@@ -7,7 +7,7 @@ description = "This file tests the Feta music font";
 % "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 \include "paper16.ly"
 \include "font-body.ly"
 
index c83061d51963eb3722a5d06c56851e1a8454729e..d342c427eafab2c10c574c5d1bf2a660c2b4b6bc 100644 (file)
@@ -17,5 +17,5 @@ TestedFeatures =
            gourlay_maxmeasures =5.;
        }
 }
-\version "1.0.20"; 
+\version "1.0.21"; 
 
index ab4414da7012f2313d8d518994c5b1b689afcd5d..f7321e04a4ef93888a52d117b9422d3dfb1b71ff 100644 (file)
@@ -4,7 +4,7 @@ copyright =      "PD";
 TestedFeatures =        "This file tests some nasty Gourlay spacings";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 %{
 
index 0261511d6eb317cdba0432ff97c3322d1dcc37b1..f74f3b14b590c43005551a287d4905c20a410f2d 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.20";
+\version "1.0.21";
 
 \score{
        <
index 5f2ebd04e284c9c68aa9885e4da075d3c40a55cd..58a1366b38ee05e21eaa2a39b8c13d098cb3662f 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 toeter_i = \notes\relative c <{
                \property Staff.instrument = "Toeters"
index 202b65df42c4c03d21d54197e9546a44b0f62ae3..73bd6aec3bd6d9c1c9635b2e835ff10da9725a93 100644 (file)
@@ -6,7 +6,7 @@
    /Mats B
 %}
 
-\version "1.0.20";
+\version "1.0.21";
 
 incipit = \notes\relative c'{
   <b1 fis' b d>
index e35be1b04036bd719f7dfdc1a3ce23fce70d5061..0f0c3c7ec1e53f74e43bb989d392db4d0cf8ff11 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 %{
 test key itemv breaking
index d595ebe82ae6705b3140de4f2f3551856085c5a3..37de7fa18d696e7b5c46ef5eb69c1a05b4f002fa 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 \score{
        \notes\relative c'{
                [c16 \stemdown c'' \stemboth c,, d]
index 5dd835a96d0be12341823e0e81d575d8a5c53d93..dae0e41dddecbe2a264b93f6662f7d38d778f00f 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 global = \notes {
   s1 | \mark "A";
index b49a9e028ebce4990952b9e268c8d1a8f8fa8936..90f508f2fb8a15fbee83f589f52ae4d9c29e657a 100644 (file)
@@ -11,5 +11,5 @@ bla = \notes {
        >
        \paper { Gourlay_maxmeaures = 2.; }
 }
-\version "1.0.20"; 
+\version "1.0.21"; 
 
index 2b30a3e8112bef19075885478af35b82cee4a3e8..aaf3fd8c68a51350dbf777eb4b2a240f43e3ca3e 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 voice_one = \notes\transpose c''{  \stemup
        R1 * 2 | f'4-. r r2 | R1 * 3 |
index 852d062afeac666b0f435513c2f61959494b4e1a..3db8223a4bc75849aa1a723888d5300a4b00b811 100644 (file)
@@ -26,4 +26,4 @@ c4 c2 c8  c16 c16  c1
        
     }
 }
-\version "1.0.20"; 
+\version "1.0.21"; 
index 37d6c8ac296631231234f76931b98b0f94d647c2..b8652f05821f642f150e28433eec7f6cb071a75c 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 \score{
        \notes \transpose c''{
index 411d7beb9525db933c5ff9df5290ea67e01cbf5a..2887bd11eca85208e97e30602273d71a6aa403f9 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 m = \notes \relative c''{
 c1 | c2 c | c c | c c | c c | c c | c c | c c | 
index a43c1ed64b1b98f93d165fd5370a53cc2d17d66c..059cc24019f69ac04bcc30f5e83d67cb1e362851 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 \score {
 
index e509994d67f40ea2bd2e78011a6ade0a18aaef2d..607f1daf2bfb4c92412cedbff1ef858f9ae031d4 100644 (file)
@@ -34,4 +34,4 @@ restsII = \context Staff \notes {
        }
 }      
 
-\version "1.0.20"; 
+\version "1.0.21"; 
index a43bb3d02b5f835c53397e929b048cc1dbfca88e..4d5ab9466f308d61346db4435461badb852efbbc 100644 (file)
@@ -1,7 +1,7 @@
 
 
 
-\version "1.0.20";
+\version "1.0.21";
 
 onestaff =     \context Staff = foo\notes  {
                \property Staff.instr = instr
index e3317a331233ed7a6f230ec4afa61048acdc0544..d74f328c4bb6910254c820839741236dc9c09bf1 100644 (file)
@@ -5,7 +5,7 @@ TestedFeatures =         "This file tests Feta embedded slurs" +
         "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 shortlong = \notes{
        c4()c( c c  |
@@ -52,7 +52,6 @@ over = \notes\transpose c'{
 }
 
 under = \notes\transpose c'{
-
        \stemdown 
        f'( \stemboth d d \stemdown )f'
        f'( \stemboth c c \stemdown )f'
@@ -77,7 +76,6 @@ under = \notes\transpose c'{
 }
 
 eccentric = \notes\transpose c'{
-
        \stemup
        \times 4/7 { f( a' f f f f )f } |
        \times 4/7 { f( f f f f a' )f } |
index 94b53b3560bb85af33ecec4cc31d1d3cfcaef84c..4814daaac70109d51fe1d2cab4c973fd14c1b4ef 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 % bug
 % excentric slur can't handle this ...
index 7fda627819ad72070834ce2c185d1b51a9ea2259..313d75a777de75aa8dea2d233290cb0c9117b6d1 100644 (file)
@@ -1,5 +1,5 @@
 % test damping
-\version "1.0.20";
+\version "1.0.21";
 
 \score{
        \notes\relative c'{
index 7fe0156d971ff07fd5325c6cd105bb6261c972fa..90d03844c9c3bb1ed5c27324300b0eb87fbb948a 100644 (file)
@@ -38,4 +38,4 @@
        }
 }
 
-\version "1.0.20"; 
+\version "1.0.21"; 
index 77a2194b79378fcd08a0ecd97de12b72f8d18418..13abcdd1a138ecf00ad7876900e2bc3227933c33 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 % urg, the direction of the slur gets swapped!
 \score{
index 78792b52f9905ca00ab0ec9ccec9b1824189c9ad..2bd66265724c512b9bb253bc5613f5c10411d873 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.20";
+\version "1.0.21";
 
 \score{
        \notes\transpose c'{
index 8ad2b838759651d61c5aa5da08de4ec6afa4ddbd..9f0f43243cc85cabff55a25d107f57ca56f954d3 100644 (file)
@@ -33,4 +33,4 @@ source = "Petits Preludes et Fugues.  Urtext. Editions Henry Lemoine, Paris.";
 }
 }
 
-\version "1.0.20"; 
+\version "1.0.21"; 
index 4d90e751920413b86b5049a2032ee1bcd0e86f32..cecb18c9d8029b486cbfe134fddeadbd66c71cf9 100644 (file)
@@ -6,7 +6,7 @@ copyright =      "public domain";
 TestedFeatures =        "This file tests various spacings";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 multipart = \notes \relative c'{ 
     \context StaffGroup < 
index dd60a13a8b7ed2173861fdfafd10cec84272f7be..37d13ef68a32b85d911b5ce95508e35fdffec98f 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.20";
+\version "1.0.21";
 nt = \notes { c1 \break c1 c1 } 
 stuff = \notes \relative c'' <
   \context Staff = stone  { \nt }
index df215a6cd52336a427dd25418b7ff000bcdf5175..ca8e9dea33f5b663eed90fd4836ad253b00f128c 100644 (file)
@@ -1,6 +1,6 @@
 
        
-\version "1.0.20";
+\version "1.0.21";
 
 \score {
 
index 65e3d68065db1e6e74a986b6b35672d1eb7e31ed..ff92e5b0b3444ab638fbc9b649ca492caacbcd00 100644 (file)
@@ -18,4 +18,4 @@
 }
 
 
-\version "1.0.20"; 
+\version "1.0.21"; 
index 144f638fc917d17489ed76e12754e3f4496d9489..adf8d50c266deb1a94ccb65aa726820720c49603 100644 (file)
@@ -14,4 +14,4 @@
 >
 \paper { linewidth = -1.; }
 }
-\version "1.0.20"; 
+\version "1.0.21"; 
diff --git a/input/test/stem-spacing.sly b/input/test/stem-spacing.sly
new file mode 100644 (file)
index 0000000..0d92baf
--- /dev/null
@@ -0,0 +1,2 @@
+
+\time 12/4;  c''4 c c c  a f' f, a 
index 7804771d864317e22b7625666d60c40bcda38a9e..6e76092aad2ef2b5d73aa8029837d38fdbe65e18 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.20";
+\version "1.0.21";
 \score{
        \notes \transpose c'''{
                \stemup
index 978caa555586e869bab5e98d98a66bb5345f5399..a728939ef8afee5311fd5fea92f757a46a099a87 100644 (file)
@@ -8,7 +8,7 @@ of beams";
        
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 beamintervals = \notes{
                \time 7/4;
index 9cd65c31c113326951839d826b27b14fae71bb0b..6a0dc872ea0ab1b6782258c698b497df1d532770 100644 (file)
@@ -7,7 +7,7 @@ enteredby =     "Maarten Storm";
 instrument=    "Violoncello";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 % this is an example of extreme dynamics
 
index 8f0294019b6eca3d103ea3be2a484119827e49f9..f0cc24574e10d9ba52c58a3e6cbc82709cf27b8f 100644 (file)
@@ -1,7 +1,7 @@
-\version "1.0.20";
+\version "1.0.21";
 
 $somewhat_long = \lyrics{
-       \property Lyrics . textstyle = "roman" 
+       \property Lyrics . textStyle = "roman" 
        AaaaaaA2
        BbbbbbB2
        CcccccC2 
@@ -11,7 +11,7 @@ $somewhat_long = \lyrics{
 }
 
 $rather_long = \lyrics{
-       \property Lyrics . textstyle = "roman" 
+       \property Lyrics . textStyle = "roman" 
        LLLLoooonggggg2 
        Syyllllaaabbble2 
        LLLLoooonggggg2 
@@ -21,7 +21,7 @@ $rather_long = \lyrics{
 }
 
 $quite_long = \lyrics{
-       \property Lyrics . textstyle = "roman"
+       \property Lyrics . textStyle = "roman"
        LLLLLLLLLooooongggggggg2 
        Syyyyyyyyyyyyylllllllaaaaaabbble2 
        LLLLLLLLLooooongggggggg2 
index 748e754b83e4b83b121d041852f9cc28b395a0c4..57dd37d8213bdbfd06a8a2dab188720ad2210e75 100644 (file)
@@ -7,7 +7,7 @@
 % the thumb-script is used in cello music to indicate a note that should
 % be played with your thumb. 
 
-\version "1.0.20";
+\version "1.0.21";
 
 \score { \notes \relative c'' {
                [<a8_\thumb a'8-3(> <)b_\thumb b'-3>
index 1307452524870abaa7add3a3bc188102a0f9797a..8df3c3c5a3cff7c6b6cf824fbabe28402eb47bdf 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 
 %  middle tie is wrong
index 61944f402602823913b39e5bfd75932c4082ead1..61f4c512a3610a375e77220d2dd495c88e24d71a 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 tie = \notes\transpose c''{
 
index 91fa42cbd3bc52ae7affdafc931070271807a6bd..6058ef4d0acf1e0784f85716342d5949c314b14a 100644 (file)
@@ -10,7 +10,7 @@ source =      "urtext";
 instrument=    "Instrument";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \score{
        \notes
index 2271026b718c08562d2a5a0d4b8c018330782260..72efd42818f1b20d520f7b173353db8681f1c20f 100644 (file)
@@ -22,7 +22,7 @@ copyright =    "public domain";
 }
 
 
-\version "1.0.20";
+\version "1.0.21";
 
 vOne = \notes \relative c''{
         \clef"violin";
index aaa005aeec5c2cecb12fc96294710b0ac0936297..06b9dc8458ded388de7bc55fe753d91675f087f4 100644 (file)
@@ -8,4 +8,4 @@
                 }
 }
 
-\version "1.0.20"; 
+\version "1.0.21"; 
index 69ba825f68c372df8bcad5c7230c6d533f2008c6..0acf70455bd035e0ee095d36651fa5419365197f 100644 (file)
@@ -8,4 +8,4 @@
 {\voicetwo c}>
 
 
-\version "1.0.20"; 
+\version "1.0.21"; 
index 52e286e1c2c515906fcdb3e82300df72302cadcc..8295ae22efb37a9bd7003f8a1875dd1ab34d0b60 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.20";
+\version "1.0.21";
 
 \score {
 \notes <
index ec9caaf3717e2e9032a064eb77cd8f7f4be97a80..f6b98c107284d0e034163811eebe37000fe6aabe 100644 (file)
@@ -15,4 +15,4 @@
        }
 }
 
-\version "1.0.20"; 
+\version "1.0.21"; 
index c9371664a4947948344bf149afebb0ce418687be..5b38a572b050460a02f4d1d3dcf040b473ed7aed 100644 (file)
@@ -21,4 +21,4 @@ What's supposed to be demonstrated here?
        }
 }
 
-\version "1.0.20"; 
+\version "1.0.21"; 
index b0779db1939c99b21d34bd33bd23e0d97e84f2b3..e513f364cfe1d8f54b4e58b82a600474676eeb7d 100644 (file)
@@ -5,7 +5,7 @@ TestedFeatures =         "This file tests trills" +
         "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \score{
        \notes{ 
index b9c21ed9500c42e8cfc0fa520b9e958c87676504..c7fb240f10f0ba97c988c035d12471436befcc69 100644 (file)
@@ -11,7 +11,7 @@ copyright =    "public domain";
 Tested Features                lyrics and chords
 %}
 
-\version "1.0.20";
+\version "1.0.21";
 
 melodie = \notes\relative c'' {
         \clef "violin";
@@ -38,7 +38,7 @@ acc = \chords {
 }
 
 text = \lyrics{ 
-        \property Lyrics . textstyle =  "italic"
+        \property Lyrics . textStyle =  "italic"
 
         Ah!4 vous dir- ai_- je ma man2
         Ce4 qui cau- se mon tour- ment2
index 5a10ae11f72b4e854bb39f507e65533bcfa4b23e..b791a6d665df5f95ea2b9fd8aea4ef5aca9244c7 100644 (file)
@@ -19,7 +19,7 @@ traditional song in various languages.
 Tested Features: lyrics, interleaving lyrics and staffs, repeats
 %}
 
-\version "1.0.20";
+\version "1.0.21";
 
 melody = \notes \relative c'' {
        \clef violin;
@@ -76,8 +76,8 @@ hegedraagjetekst = \lyrics{
 }
 
 texte = \lyrics{ 
-       \property Lyrics . textstyle" =  "italic" 
-%      \property Lyrics . textstyle" =  "roman" 
+       \property Lyrics . textStyle" =  "italic" 
+%      \property Lyrics . textStyle" =  "roman" 
        Ah!4 vous dir- ai_- je ma- man2
        Ce4 qui cau- se mon tour- ment2
        Pa-4 pa veut que je rai- son- ne
@@ -87,7 +87,7 @@ texte = \lyrics{
 }
 
 texti = \lyrics{
-       \property "Lyrics"."textstyle" =  "roman"
+       \property "Lyrics"."textStyle" =  "roman"
        Twin-4 kle, twin- kle, lit- tle star,2
        How4 I won- der what you are.2
        Up4 a- bove the world so high,2
index 3c8f78452a8379c8a2fc196ac503e4ccb85d8718..ac4f39243c2d5da43b75e1a8c381484c64c97e7d 100644 (file)
@@ -43,7 +43,7 @@ Bar::get_bar_size () const
 Molecule*
 Bar::do_brew_molecule_p () const
 {    
-  Molecule *output = new Molecule (lookup_l ()->bar (type_str_, get_bar_size ()));
+  Molecule *output = new Molecule (lookup_l ()->bar (type_str_, get_bar_size (), paper_l ()));
   
   return output;
 }
index 131294f2007cd1d6cd5f8a7db08a84af3d26d309..afe439cd5d9d2d6a552ebd93daf6cb92dbbb4fea 100644 (file)
@@ -162,10 +162,10 @@ Break_algorithm::solve () const
   Array<Column_x_positions> h= do_solve ();
 
   if (approx_stats_.count_i_)
-    *mlog << '\n' << _f ("approximated: %s", approx_stats_.str ()) << endl;
+    *mlog << '\n' << _f ("approximated %s", approx_stats_.str ()) << endl;
   if (exact_stats_.count_i_)
-    *mlog << _f ("calculated exactly: %s", exact_stats_.str ()) << endl;
-  *mlog << _f ("time: %.2f seconds",  timer.read ()) << endl;
+    *mlog << _f ("calculated %s exactly", exact_stats_.str ()) << endl;
+  *mlog << _f ("elapsed time %.2f seconds",  timer.read ()) << endl;
 
   return h;
 }
index 1b1f1be105dce769a71d0232ffe80bcf34f14a3e..1ddff7d2f7cc3f880b3edcc1dc967453e8b52dbf 100644 (file)
@@ -23,145 +23,131 @@ Collision::add_column (Note_column* ncol_l)
   add_element (ncol_l);
   add_dependency (ncol_l);
 }
-/**
-  should derive of Array.
- */
-static
-int idx (int dir, bool h_shift_b)
-{
-  assert (abs (dir) == 1);
-  int j = dir > 0 ? 0 : 3;
-  if (h_shift_b)
-    j += dir;
-  return j;
-}
+
 
 /** This complicated routine moves note columns around horizontally to
   ensure that notes don't clash.
 
   This should be done better, probably.
 
-  This routine is dedicated to Stine Randmael :-)
-
+  TODO: forced hshift
+  
   */
 void
 Collision::do_pre_processing()
 {
-  if (clash_l_arr_.size() <= 1)
-    return;
-
-  /*
-    [stem up, stem up shifted, stem down shifted, stem down]
-  */ 
-  Array<Note_column*> clash_group_arr_a[4]; // TODO: use drul.
-
+  Drul_array<Link_array<Note_column> > clash_groups;
+  Drul_array<Array<int> > shifts;
+  
   for (int i=0; i < clash_l_arr_.size(); i++)
     {
-      Note_column* c_l = clash_l_arr_[i];
-      Direction d = c_l->dir ();
-      if (!d)
-       {
-         warning (_ ("No stem direction set. Ignoring column in clash."));
-         continue;
-       }
-
-      SCM shift = c_l->remove_elt_property (horizontal_shift_scm_sym);
-      bool shift_b  = (shift != SCM_BOOL_F);
-      clash_group_arr_a[idx (d, shift_b)].push (c_l);
+      clash_groups[clash_l_arr_[i]->dir ()].push (clash_l_arr_[i]);
     }
 
-
-  for (int j=0; j < 4; j++)
-    {
-      if (clash_group_arr_a[j].size() > 1)
-       {
-         warning (_ ("Too many clashing notecolumns. Ignoring them."));
-         return;
-       }
-    }
+  
   Direction d = UP;
   do
     {
-      if (!clash_group_arr_a[idx (d, false)].size())
-       {
-         clash_group_arr_a[idx (d,  false)] = clash_group_arr_a[idx (d, true)];
-         clash_group_arr_a[idx (d, true)].clear();
-       }
-    }
-  while (flip (&d) != UP);
-
+      Array<int> & shift (shifts[d]);
+      Link_array<Note_column> & clashes (clash_groups[d]);
 
-  Interval_t<int> y_extent[4];
-  Note_column * col_l_a[4];
-  Real x_off [4];
+      clashes.sort (Note_column::shift_compare);
 
-  for (int j =0 ; j < 4; j++)
-    {
-      if (clash_group_arr_a[j].size())
-       col_l_a[j] = clash_group_arr_a[j][0];
-      else
-       col_l_a[j] = 0;
+      for (int i=0; i < clashes.size (); i++)
+       {
+         SCM sh
+           = clashes[i]->remove_elt_property (horizontal_shift_scm_sym);
 
-      if (col_l_a[j])
+         if (sh == SCM_BOOL_F)
+           shift.push (0);
+         else
+           shift.push (gh_scm2int (SCM_CDR (sh)));
+       }
+      
+      for (int i=1; i < shift.size (); i++)
        {
-         y_extent[j] = col_l_a[j]->head_positions_interval();
+         if (shift[i-1] == shift[i])
+           {
+             warning (_ ("Too many clashing notecolumns. Ignoring them."));
+             return;
+           }
        }
-
-
-      x_off [j] = 0.0;
     }
+  while ((flip (&d))!= UP);
 
+  Drul_array< Array < Slice > > extents;
+  Drul_array< Array < Real > > offsets;
+  d = UP;
   do
     {
-      x_off[idx (d, true)] = d*0.5;
+      for (int i=0; i < clash_groups[d].size (); i++)
+       {
+         Slice s(clash_groups[d][i]->head_positions_interval ());
+         s[LEFT] --;
+         s[RIGHT]++;
+         extents[d].push (s);
+         offsets[d].push (d * 0.5 * i);
+       }
     }
-  while (flip (&d) != UP);
-
-
-  // y_extent: smallest y-pos noteball interval containing all balls
-  // 4 (0..3) groups: stem up/down; shift on/off;
-  Interval_t<int> middle (y_extent[idx (-1,0)][BIGGER],
-                         y_extent[idx (1,0)][SMALLER]);
-  Interval_t<int> open_middle (y_extent[idx (-1,0)][BIGGER]+1, y_extent[idx (1,0)][SMALLER]-1);
+  while ((flip (&d))!= UP);
+  
   do
     {
-      if (!open_middle.contains_b (y_extent[idx (d,true)]))
-       x_off[idx (d, true)] = d *1.0 ;
-    } while ((d *= -1) != 1);
-
+      for (int i=1; i < clash_groups[d].size (); i++)
+       {
+         Slice prev =extents[d][i-1];
+         prev.intersect (extents[d][i]);
+         if (prev.length ()> 0 ||
+             (extents[-d].size () && d * (extents[d][i][-d] - extents[-d][0][d]) < 0))
+           for (int j = i; j <  clash_groups[d].size (); j++)
+             offsets[d][j] += d * 0.5;
+       }
+    }  
+  while ((flip (&d))!= UP);
 
-  if (!middle.empty_b()
-      && middle.length() < 2 && col_l_a[idx (1,0)] && col_l_a[idx (-1,0)])
+  /*
+    if the up and down version are close, and can not be merged, move
+    all of them again. */
+  if (extents[UP].size () && extents[DOWN].size ())
     {
-      // reproduction of bugfix at 3am ?
-      Note_head * nu_l= col_l_a[idx (1,0)]->head_l_arr_[0];
-      Note_head * nd_l = col_l_a[idx (-1,0)]->head_l_arr_.top();
-      if (! (nu_l->balltype_i_ == nd_l->balltype_i_
-            && nu_l->dots_i_ == nd_l->dots_i_  && middle.length() == 0))
-       {
+      Note_column *cu_l =clash_groups[UP][0];
+      Note_column *cd_l =clash_groups[DOWN][0];
+      Note_head * nu_l= cu_l->head_l_arr_[0];
+      Note_head * nd_l = cd_l->head_l_arr_.top();
+      int downpos =    cd_l->head_positions_interval ()[SMALLER];
+      int uppos =      cu_l->head_positions_interval ()[BIGGER];      
+      
+      bool merge  =
+       downpos == uppos
+       && nu_l->balltype_i_ == nd_l->balltype_i_
+       && nu_l->dots_i_ == nd_l->dots_i_;
+
+      /*
+       notes are close, but can not be merged.  Shift
+       */
+      if (abs(uppos - downpos) < 2 && !merge)
          do
-           {
-             x_off[idx (d, false)] -= d*0.5;
-             x_off[idx (d, true)] -= d*0.5;
-           }
-         while (flip (&d) != UP);
-       }
+         {
+           for (int i=0; i < clash_groups[d].size (); i++)
+             {
+               offsets[d][i] -= d * 0.5;
+             }
+         }
+         while ((flip (&d))!= UP);
     }
 
   Real wid_f = paper_l ()->note_width ();
-  for (int j=0; j < 4; j++)
+  do
     {
-      if (col_l_a[j])
+      for (int i=0; i < clash_groups[d].size (); i++)
        {
-         Offset o (x_off[j] * wid_f, 0);
-         col_l_a[j]->translate (o);
+         clash_groups[d][i]->translate_axis (offsets[d][i]*wid_f, X_AXIS);
        }
     }
+  while (flip (&d) != UP);
 }
 
 
-
-
 void
 Collision::do_substitute_element_pointer (Score_element*o_l,Score_element*n_l)
 {
index b499af90b69e42b964283ac9660e1f50368ef561..1dbe94e3e45d3626ed50239c9f2e4c535616c94f 100644 (file)
@@ -52,7 +52,9 @@ Crescendo::get_symbol () const
   
 
   bool continued = broken[Direction (-grow_dir_)];
-  return Molecule (lookup_l ()->hairpin (w_dim, grow_dir_ < 0, continued));
+  Real height = paper_l()->staffheight_f () / 6;
+
+  return Molecule (lookup_l ()->hairpin (w_dim, height, grow_dir_ < 0, continued));
 }
 
 Molecule*
index d08a76800b270ba604ec917ee57bfff790a36579..5be368383134eade5e91ad465374d70aeb3a0de1 100644 (file)
@@ -16,6 +16,7 @@
 #include "g-script.hh"
 #include "lookup.hh"
 #include "g-staff-side.hh"
+#include "paper-def.hh"
 
 G_script::G_script ()
 {
@@ -46,7 +47,7 @@ G_script::get_molecule(Direction d) const
     }
   else if (key == ly_symbol ("accordion"))
     {
-      return lookup_l ()->accordion (SCM_CDR(s));
+      return lookup_l ()->accordion (SCM_CDR(s), paper_l()->get_realvar(interline_scm_sym));
     }
 
   else assert (false);
index 6f54c2ad0a427d3b249f39bc417f622b1ec47b4d..6578cf8bb4658be8585c2785e51d1bddeb0f95e7 100644 (file)
@@ -16,7 +16,7 @@
 Molecule*
 G_text_item::do_brew_molecule_p () const
 {
-  Molecule a= paper_l ()->lookup_l(0)->text (style_str_,text_str_); 
+  Molecule a= paper_l ()->lookup_l(0)->text (style_str_,text_str_, paper_l ()); 
 
   return new Molecule (a);
 }
index a4f60b00e16f79b4387d31535bc28b382fe5061e..e1b827e5237ca2c3c426d0ed5ba27910e0db8ce1 100644 (file)
@@ -17,6 +17,7 @@
 #include "box.hh"
 
 /** handy interface to symbol table
+    TODO: move this into GUILE?
  */
 class Lookup
 {
@@ -24,11 +25,11 @@ public:
   Lookup ();
   Lookup (Lookup const&);
 
-  Molecule simple_bar (String s, Real w) const;
+  Molecule simple_bar (String s, Real w, Paper_def*) const;
   Molecule accidental (int, bool cautionary) const;
   Molecule afm_find (String, bool warn=true) const;
   Molecule notehead  (int, String) const;
-  Molecule bar (String, Real height) const;
+  Molecule bar (String, Real height, Paper_def*) const;
   Molecule beam (Real, Real, Real) const;
   Molecule clef (String) const;
   Molecule dashed_slur (Array<Offset> controls, Real thick, Real dash) const;
@@ -37,20 +38,17 @@ public:
   Molecule fill (Box b) const;
   Molecule filledbox (Box b) const;  
   Molecule flag (int, Direction) const;
-  Molecule hairpin (Real width, bool decresc, bool continued) const;
-  Molecule plet (Real dy, Real dx, Direction dir) const;
+  Molecule hairpin (Real width, Real height, bool decresc, bool continued) const;
+  Molecule tuplet_bracket (Real dy, Real dx, Real thick,Real interline, Direction dir) const;
   Molecule rest (int, bool outside, String) const;
-  Molecule accordion (SCM arg) const;
-  Molecule stem (Real y1_pos, Real y2_pos) const;
+  Molecule accordion (SCM arg, Real interline_f) const;
   Molecule slur (Array<Offset> controls) const;
-  Molecule text (String style, String text) const;
+  Molecule text (String style, String text, Paper_def*) const;
   Molecule staff_brace (Real dy) const;
   Molecule staff_bracket (Real dy) const;
-  Molecule volta (Real w, bool last_b) const;
-  Molecule special_time_signature (String, int,int) const;
-  Molecule time_signature (int n,int d) const;
-
-  Paper_def * paper_l_;
+  Molecule volta (Real w, Real h, Real il, bool last_b) const;
+  Molecule special_time_signature (String, int,int, Paper_def*) const;
+  Molecule time_signature (int n,int d, Paper_def*) const;
 
   String font_name_;
   Adobe_font_metric * afm_l_;
index 3c35d42e95bcee2fa35d30ec305c394a62577830..489bcc98e92a548bbfc761b8e3c52b966f0435f5 100644 (file)
@@ -30,6 +30,7 @@ DECLARE_LY_SYMBOL(dashed);
 DECLARE_LY_SYMBOL(extremal);
 DECLARE_LY_SYMBOL(extra_space);
 DECLARE_LY_SYMBOL(dir_forced);
+DECLARE_LY_SYMBOL(dir_list);
 DECLARE_LY_SYMBOL(extender_height);
 DECLARE_LY_SYMBOL(filledbox);
 DECLARE_LY_SYMBOL(fontsize);
@@ -61,6 +62,7 @@ DECLARE_LY_SYMBOL(tuplet_thick);
 DECLARE_LY_SYMBOL(tuplet_visibility);
 DECLARE_LY_SYMBOL(visibility_lambda);
 DECLARE_LY_SYMBOL(volta);
+DECLARE_LY_SYMBOL(void);
 DECLARE_LY_SYMBOL(volta_thick);
 
 
index b8d17a5708dab54d80dd38cb335a863c779cc481..e8fe19a0b170665eb7620790edc395a5764e5dbd 100644 (file)
@@ -21,6 +21,9 @@ protected:
   virtual void do_print () const;
   virtual void do_substitute_element_pointer (Score_element*,Score_element*);
 public:
+
+  static int shift_compare (Note_column *const &, Note_column*const&);
+  
   /** The relative position of the "voice" containing this
     chord. Normally this would be the same as the stem direction,
 
index e3a5174f945c99a43dcfde2063c6754d091cdd2b..339b8940886f9e29b89d85f66701b5e26c0af608 100644 (file)
@@ -14,6 +14,7 @@
 #include "parray.hh"
 #include "lily-proto.hh"
 #include "music-output.hh"
+#include "lily-guile.hh"
 
 /** all stuff which goes onto paper. notes, signs, symbols in a score
      #Paper_score# contains the items, the columns.
@@ -27,10 +28,9 @@ class Paper_score : public Music_output
 
   /// other elements
   Link_array<Score_element> elem_p_arr_;
-
-  Link_array<Score_element> to_delete_arr_;
   Link_array<Score_element> break_helpers_arr_;
 
+  SCM protected_scms_;
 public:
   Paper_def *paper_l_;
 
@@ -62,21 +62,13 @@ public:
   /// add a Spanner
   void typeset_unbroken_spanner (Spanner*);
   
-  void schedule_for_delete (Score_element*);
     
   virtual ~Paper_score();
 protected:
-
-  
     /* MAIN ROUTINES */
   virtual void process();
 
 private:
-
-  
-  Link_array<Score_element> remove_line (Line_of_score*);
-  Link_array<Score_element> remove_break_helpers ();
-
   /// before calc_breaking
   void preprocess();
 
index 719cc16d8ed2938e517f3d08e47c1e834809d273..2a0a7805eff19ad5e42a1055bdf7db684e571f45 100644 (file)
@@ -11,7 +11,6 @@
 #include "virtual-methods.hh"
 #include "directed-graph.hh"
 #include "graphical-element.hh"
-#include "protected-scm.hh"
 #include "lily-guile.hh"
 
 
@@ -37,7 +36,16 @@ Boolean (true iff defined)
 
 */
 class Score_element : public virtual Graphical_element {
-  Protected_scm element_property_alist_;
+
+  friend class Paper_score;
+  /**
+     properties specific for this element. Destructor will not call
+     scm_unprotect, so as to allow more flexible GC arrangements.  The
+     real alist is in (cdr element_property_alist_), to reduce the
+     need for more scm_protect calls.
+
+  */
+  SCM element_property_alist_;
   Link_array<Score_element> dependency_arr_;
   /**
      The lookup, determined by the font size. Cache this value.
index b69209d9061cb133902d0798301eeaf1ecb8f44d..0b8b10586acb0c31c5f77151f84a11992697ec76 100644 (file)
@@ -22,7 +22,10 @@ public:
   int col_count () const;
 protected:
   virtual  Array<Spring> get_springs () const;
-  
+
+  Real stem_dir_correction (Score_column*,Score_column*)  const;
+  Real default_bar_spacing (Score_column*,Score_column*,Moment)  const;
+  Real note_spacing (Score_column*,Score_column*,Moment)  const;  
 };
 
 #endif /* SPACING_SPANNER_HH */
index f0e759afaca4e3a8ef4c1eb9192e798f5aaad8d9..04dd3f1ce1ab197c2978cbaa80018da0a4fbfa8f 100644 (file)
@@ -104,5 +104,7 @@ protected:
   virtual void do_pre_processing();
   virtual Interval do_width() const;
   virtual Molecule* do_brew_molecule_p() const;
+
+  void set_spacing_hints () ;
 };
 #endif
index 7de0df59517b06d96953f7389b06a4d65d353d2b..3b4bae9baf045062a7208999d9ca406b89a026d4 100644 (file)
@@ -212,8 +212,17 @@ Ineq_constrained_qp::constraint_solve (Vector start) const
        }
       else if (m<0)
        {
-         assert (gradient.norm() < EPS) ;
-
+         Real n =gradient.norm();
+         if (n >= EPS)
+           {
+             programming_error ("Huh? Gradient should be zero ");
+             act.degenerate_count_i_ ++;
+           }
+         else if (n <0)
+           {
+             programming_error ("Huh? Norm should be positive");
+             act.degenerate_count_i_++;
+           }
          break;
        }
 
index 8506350e39b6f27c17959fcc8484a124f80b2a68..22bb2d15400915d33418963502e6842231dce327 100644 (file)
@@ -58,7 +58,11 @@ Local_key_engraver::process_acknowledged ()
 
          if (tied_l_arr_.find_l (support_l) && 
              !note_l->forceacc_b_)
-           continue;
+           {
+             if (!forget)
+               local_key_.set (note_l->pitch_);
+             continue;
+           }
            
          if (!note_l->forceacc_b_
              && local_key_.different_acc (note_l->pitch_))
index 11a6d49e9430ebae8249a492c7ec3651ac011814..b28cc21c592d154fae7f6ac0d277f6c8d1aa427c 100644 (file)
 
 Lookup::Lookup ()
 {
-  paper_l_ = 0;
   afm_l_ = 0;  
 }
 
 Lookup::Lookup (Lookup const& s)
 {
   font_name_ = s.font_name_;
-  paper_l_ = 0;
   afm_l_ = 0;  
 }
 
@@ -137,14 +135,14 @@ Lookup::notehead (int j, String type) const
 }
 
 Molecule
-Lookup::simple_bar (String type, Real h) const
+Lookup::simple_bar (String type, Real h, Paper_def* paper_l) const
 {
   SCM thick = ly_symbol ("barthick_" + type);
   Real w = 0.0;
   
-  if (paper_l_->scope_p_->elem_b (thick))
+  if (paper_l->scope_p_->elem_b (thick))
     {
-      w = paper_l_->get_realvar (thick);
+      w = paper_l->get_realvar (thick);
     }
   else
     {
@@ -156,18 +154,19 @@ Lookup::simple_bar (String type, Real h) const
 
   
 Molecule
-Lookup::bar (String str, Real h) const
+Lookup::bar (String str, Real h, Paper_def *paper_l) const
 {
   if (str == "[")
     return staff_bracket (h);
   else if (str == "{")
     return staff_brace (h);
   
-  Real kern = paper_l_->get_var ("bar_kern");
-  Real thinkern = paper_l_->get_var ("bar_thinkern");  
-  Molecule thin = simple_bar ("thin", h);
-  Molecule thick = simple_bar ("thick", h);
-  Molecule colon = afm_find ("dots-repeatcolon");  
+  Real kern = paper_l->get_var ("bar_kern");
+  Real thinkern = paper_l->get_var ("bar_thinkern");
+  
+  Molecule thin = simple_bar ("thin", h, paper_l);
+  Molecule thick = simple_bar ("thick", h, paper_l);
+  Molecule colon = afm_find ("dots-repeatcolon", paper_l);  
 
   Molecule m;
   
@@ -177,7 +176,7 @@ Lookup::bar (String str, Real h) const
     }
   if (str == "scorepostbreak")
     {
-      return simple_bar ("score", h);
+      return simple_bar ("score", h, paper_l);
     }
   else if (str == "|")
     {
@@ -325,7 +324,7 @@ Lookup::rest (int j, bool o, String style) const
 
 
 Molecule
-Lookup::special_time_signature (String s, int n, int d) const
+Lookup::special_time_signature (String s, int n, int d, Paper_def*pap) const
 {
   // First guess: s contains only the signature style
   String symbolname = "timesig-" + s + to_str (n) + "/" + to_str (d);
@@ -340,7 +339,7 @@ Lookup::special_time_signature (String s, int n, int d) const
     return m;
 
   // Resort to default layout with numbers
-  return time_signature (n,d);
+  return time_signature (n,d,pap);
 }
 
 Molecule
@@ -360,20 +359,6 @@ Lookup::filledbox (Box b ) const
   return m;
 }
 
-Molecule
-Lookup::stem (Real y1, Real y2) const
-{
-  if (y1 > y2)
-    {
-      Real t = y1;
-      y1 = y2;
-      y2 = t;
-    }
-  Real stem_width = paper_l_->get_var ("stemthickness");
-  return filledbox (Box (Interval (-stem_width/2,stem_width/2),
-                        Interval (y1, y2)));
-}
-
 
 
 /**
@@ -387,22 +372,22 @@ static Real mag_steps[] = {1, 1, 1.200, 1.440, 1.7280,  2.074, 2.488};
 
 */
 Molecule
-Lookup::text (String style, String text) const
+Lookup::text (String style, String text, Paper_def *paper_l) const
 {
   Molecule m;
   if (style.empty_b ())
     style = "roman";
   
   int font_mag = 1;
-  Real font_h = paper_l_->get_var ("font_normal");
-  if (paper_l_->scope_p_->elem_b ("font_" + style))
+  Real font_h = paper_l->get_var ("font_normal");
+  if (paper_l->scope_p_->elem_b ("font_" + style))
     {
-      font_h = paper_l_->get_var ("font_" + style);
+      font_h = paper_l->get_var ("font_" + style);
     }
    
-  if (paper_l_->scope_p_->elem_b ("magnification_" + style))
+  if (paper_l->scope_p_->elem_b ("magnification_" + style))
     {
-      font_mag = (int)paper_l_->get_var ("magnification_" + style);
+      font_mag = (int)paper_l->get_var ("magnification_" + style);
     }
 
   /*
@@ -425,9 +410,12 @@ Lookup::text (String style, String text) const
   for (int i = 0; i < text.length_i (); i++) 
     {
       
-      if (text[i]=='\\')
-       for (i++; (i < text.length_i ()) && isalpha(text[i]); i++)
-         ;
+      if (text[i]=='\\') 
+       {
+         for (i++; (i < text.length_i ()) && isalpha(text[i]); i++)
+           ;
+         i--; // Compensate for the increment in the outer loop!
+       }
       else
        {
          if (text[i] == '{')
@@ -480,11 +468,11 @@ Lookup::text (String style, String text) const
   
 
 Molecule
-Lookup::time_signature (int num, int den) const
+Lookup::time_signature (int num, int den, Paper_def *paper_l) const
 {
   String sty = "number";
-  Molecule n (text (sty, to_str (num)));
-  Molecule d (text (sty, to_str (den)));
+  Molecule n (text (sty, to_str (num), paper_l));
+  Molecule d (text (sty, to_str (den), paper_l));
   n.align_to (X_AXIS, CENTER);
   d.align_to (X_AXIS, CENTER);
   Molecule m;
@@ -518,10 +506,9 @@ Lookup::staff_brace (Real y) const
 }
 
 Molecule
-Lookup::hairpin (Real width, bool decresc, bool continued) const
+Lookup::hairpin (Real width, Real height, bool decresc, bool continued) const
 {
   Molecule m;   
-  Real height = paper_l_->staffheight_f () / 6;
 
   String hairpin = String (decresc ? "de" : "") + "crescendo";
   Atom at  (gh_list (ly_symbol (hairpin),
@@ -537,22 +524,15 @@ Lookup::hairpin (Real width, bool decresc, bool continued) const
 }
 
 Molecule
-Lookup::plet (Real dy , Real dx, Direction dir) const
+Lookup::tuplet_bracket (Real dy , Real dx, Real thick, Real interline_f, Direction dir) const
 {
   Molecule m;
-  SCM thick = tuplet_thick_scm_sym;
-  Real t = 0.1 PT;
-  if (paper_l_->scope_p_->elem_b (thick))
-    {
-      t = paper_l_->get_realvar (thick);
-    }
 
-  Real interline_f = paper_l_->get_realvar (interline_scm_sym);
   Atom at  (gh_list(tuplet_scm_sym,
                    gh_double2scm (interline_f), 
                    gh_double2scm (dx),
                    gh_double2scm (dy),
-                   gh_double2scm (t),
+                   gh_double2scm (thick),
                    gh_int2scm (dir),
                    SCM_UNDEFINED));
   m.add_atom (&at);
@@ -602,23 +582,16 @@ Lookup::staff_bracket (Real y) const
 }
 
 Molecule
-Lookup::volta (Real w, bool last_b) const
+Lookup::volta (Real w, Real thick, Real interline_f, bool last_b) const
 {
   Molecule m; 
-  SCM thick = volta_thick_scm_sym;
-  Real t = 0.1 PT;
-  if (paper_l_->scope_p_->elem_b (thick))
-    {
-      t = paper_l_->get_realvar (thick);
-    }
+
   Atom at  (gh_list (volta_scm_sym,
                     gh_double2scm (w),
-                    gh_double2scm (t),
+                    gh_double2scm (thick),
                     gh_int2scm (last_b),
                     SCM_UNDEFINED));
 
-  Real interline_f = paper_l_->get_realvar (interline_scm_sym);
-
   m.dim_[Y_AXIS] = Interval (-interline_f, interline_f);
   m.dim_[X_AXIS] = Interval (0, w);
 
@@ -627,12 +600,12 @@ Lookup::volta (Real w, bool last_b) const
 }
 
 Molecule
-Lookup::accordion (SCM s) const
+Lookup::accordion (SCM s, Real interline_f) const
 {
   Molecule m;
   String sym = ly_scm2string(SCM_CAR(s));
   String reg = ly_scm2string(SCM_CAR(SCM_CDR(s)));
-  Real interline_f = paper_l_->get_realvar(interline_scm_sym);
+
   if (sym == "Discant")
     {
       Molecule r = afm_find("scripts-accDiscant");
index b249a1b9a3a511af9b87956722b37a1023f6e8a2..26e55b17706db6149843b0af3411d52d61959419 100644 (file)
@@ -92,7 +92,7 @@ Multi_measure_rest::do_brew_molecule_p () const
     }
   else if (measures_i_ > 1)
     {
-      Molecule s ( lookup_l ()->text ("number", to_str (measures_i_)));
+      Molecule s ( lookup_l ()->text ("number", to_str (measures_i_), paper_l ()));
 
       s.translate_axis (3.0 * interline_f, Y_AXIS);
       mol_p->add_molecule (s);
index 26a33eb5cd28c76dab6d2c329f270371eb7d2bcb..5f63501a47f72bb354feff3ee9fa94cb9c991b6b 100644 (file)
@@ -20,6 +20,17 @@ Note_column::rest_b () const
   return rest_l_arr_.size ();
 }
 
+int
+Note_column::shift_compare (Note_column *const &p1, Note_column*const&p2)
+{
+  SCM s1 = p1->get_elt_property (horizontal_shift_scm_sym);
+  SCM s2 = p2->get_elt_property (horizontal_shift_scm_sym);
+
+  int h1 = (s1 == SCM_BOOL_F) ? 0 : gh_scm2int (SCM_CDR(s1));
+  int h2 = (s2 == SCM_BOOL_F) ? 0 : gh_scm2int (SCM_CDR(s2));
+  return h1 - h2;
+}
+
 Note_column::Note_column()
 {
   set_axes (X_AXIS,X_AXIS);
@@ -32,18 +43,17 @@ Note_column::sort()
   head_l_arr_.sort (Note_head::compare);
 }
   
-Interval_t<int>
+Slice
 Note_column::head_positions_interval() const
 {
-  ((Note_column*)this)->sort();
-  Interval_t<int>  iv;
+  Slice  iv;
 
   iv.set_empty ();
-
-  if (head_l_arr_.size ())
-    iv = Interval_t<int>(head_l_arr_[0]->position_i_, 
-                        head_l_arr_.top()->position_i_);
-  
+  for (int i=0; i <head_l_arr_.size ();i ++)
+    {
+      int j = head_l_arr_[i]->position_i_;
+      iv.unite (Slice (j,j));
+    }
   return iv;
 }
 
index 4edfd1b3e9e8de9bd7495f27540d32178c4eb275..c48cbddce0683d0ae029dfe92bcbaacb71be01c0 100644 (file)
@@ -25,6 +25,7 @@
 
 Paper_score::Paper_score ()
 {
+  protected_scms_ = scm_protect_object (gh_cons (SCM_BOOL_T, SCM_EOL));
   paper_l_ =0;
   outputter_l_ =0;
   Line_of_score * line_p = new Line_of_score;
@@ -45,6 +46,8 @@ Paper_score::~Paper_score ()
     delete span_p_arr_[i];
   for (int i=elem_p_arr_.size (); --i >=0 ; )
     delete elem_p_arr_[i];
+
+  scm_unprotect_object (protected_scms_);
 }
 
 void
@@ -53,7 +56,11 @@ Paper_score::typeset_element (Score_element * elem_p)
   elem_p_arr_.push (elem_p);
   elem_p->pscore_l_ = this;
 
-
+  // take over protection.
+  SCM_CDR(protected_scms_) = gh_cons (elem_p->element_property_alist_,
+                                     SCM_CDR (protected_scms_));
+  scm_unprotect_object (elem_p->element_property_alist_);
+  
   SCM p =  elem_p->remove_elt_property (break_helper_only_scm_sym);
   if (p != SCM_BOOL_F)
     break_helpers_arr_.push (elem_p);
@@ -137,44 +144,6 @@ Paper_score::calc_breaking ()
 
 
 
-/*
-  not clean.  Should update elem_p_arr_ and span_p_arr_.  That would
-  also repair the stats.
-
-  This may be done efficiently by first sorting the arrays.  */
-void
-delete_array_contents (Link_array<Score_element> &to_remove, Dictionary<int> &type_stats)
-{
-  for (int i=0; i < to_remove.size (); i++)
-    {
-      Score_element * e = to_remove[i];
-      String nm = e->name();
-      if (type_stats.elem_b (nm))
-       type_stats[nm] ++;
-      else
-       type_stats[nm] = 1;
-
-      if (dynamic_cast<Item*> (e))
-       type_stats["Item"] ++;
-      else if (dynamic_cast<Spanner*>(e))
-       type_stats["Spanner"] ++;
-      type_stats["Total"] ++;
-      /*
-       */
-      
- //      delete e; //TODO!
-    }
-
-  to_remove.clear ();
-  to_remove.tighten_maxsize ();
-}
-
-void
-Paper_score::schedule_for_delete (Score_element*e)
-{
-  to_delete_arr_.push (e);
-}
-
 void
 Paper_score::process ()
 {
@@ -194,8 +163,6 @@ Paper_score::process ()
   Array<Column_x_positions> breaking = calc_breaking ();
 
 
-  delete_array_contents (break_helpers_arr_, type_stats);
-  
   Paper_stream* paper_stream_p = paper_l_->paper_stream_p ();
   outputter_l_ = paper_l_->paper_outputter_p (paper_stream_p, header_l_, origin_str_);
 
@@ -226,8 +193,6 @@ Paper_score::process ()
        *mlog << '(' << elem_p_arr_.size () + span_p_arr_.size () << ')';
       
       *mlog << ']' << flush;
-      
-      delete_array_contents (to_delete_arr_, type_stats);
      }
   
   // huh?
index e420ed6a479912e1fee3911dbf6316188f5d1b70..4cd2101032181b4a57994f42f9fbd36b22d04986 100644 (file)
@@ -49,7 +49,6 @@ Paper_def::Paper_def (Paper_def const&s)
   for (Hash_table_iter<int, Lookup*> ai(*s.lookup_p_tab_p_); ai.ok (); ai++)
     {
       Lookup * l = new Lookup (*ai.val ());
-      l->paper_l_ = this;
       set_lookup (ai.key(), l);
     }
 }
@@ -165,7 +164,6 @@ Paper_def::set_lookup (int i, Lookup*l)
     {
       delete lookup_p_tab_p_->elem (i);
     }
-  l ->paper_l_ = this;
   (*lookup_p_tab_p_)[i] = l;
 }
 
index edf2ee95579a1dd725ea80fc020447e0b4ae20b8..2bbb8cf18ce6e13d00a9d4a842625bc1843e981d 100644 (file)
@@ -55,7 +55,7 @@
 
 // mmm
 Mudela_version oldest_version ("1.0.20");
-Mudela_version version ("1.0.20");
+Mudela_version version ("1.0.21");
 
 void
 print_mudela_versions (ostream &os)
index 5483ff9ace026a385bee7646257e81806ee3836a..ed45fef5da3e22363cb5653d8313097c921a8a3c 100644 (file)
@@ -80,10 +80,12 @@ Rhythmic_column_engraver::do_pre_move_processing()
 {
   if (ncol_p_) 
     {
+      Scalar sh = get_property ("horizontalNoteShift", 0);
       // egcs
-      if (get_property ("hshift", 0).operator bool ())
+      if (sh.to_bool () && sh.isnum_b ())
        {
-         ncol_p_->set_elt_property (horizontal_shift_scm_sym, SCM_BOOL_T);
+         ncol_p_->set_elt_property (horizontal_shift_scm_sym,
+                                    gh_int2scm (int (sh)));
        }
 
       typeset_element (ncol_p_);
index f77f9c9e8c7d49f6d003da6fea0c45b6133fe845..3215b80930d5fc9b811c444133a4a56a9e9606c6 100644 (file)
@@ -43,7 +43,7 @@ Score_element::Score_element()
   lookup_l_ =0;
   status_i_ = 0;
   original_l_ = 0;
-  element_property_alist_ = SCM_EOL;
+  element_property_alist_ = scm_protect_object (gh_cons (gh_cons (void_scm_sym, SCM_BOOL_T) , SCM_EOL));
 }
 
 Score_element::Score_element (Score_element const&s)
@@ -51,7 +51,7 @@ Score_element::Score_element (Score_element const&s)
 {
   used_b_ = true;
   original_l_ =(Score_element*) &s;
-  element_property_alist_ = scm_list_copy (s.element_property_alist_);
+  element_property_alist_ = scm_protect_object (scm_list_copy (s.element_property_alist_));
   dependency_arr_ = s.dependency_arr_;
   output_p_ =0;
   status_i_ = s.status_i_;
@@ -94,15 +94,15 @@ SCM
 Score_element::remove_elt_property (SCM key)
 {
   SCM s = get_elt_property (key); 
-  element_property_alist_ =  scm_assq_remove_x (element_property_alist_, key);
+  SCM_CDR(element_property_alist_) =  scm_assq_remove_x (SCM_CDR (element_property_alist_), key);
   return s;
 }
 
 void
 Score_element::set_elt_property (SCM s, SCM v)
 {
-  element_property_alist_ =
-    scm_assoc_set_x (element_property_alist_, s, v);
+  SCM_CDR(element_property_alist_) =
+    scm_assoc_set_x (SCM_CDR (element_property_alist_), s, v);
 }
 
 Interval
@@ -221,8 +221,6 @@ Score_element::output_processing ()
   pscore_l_->outputter_l_->output_molecule (output_p_,
                                            o,
                                            classname(this));
-
-  pscore_l_->schedule_for_delete (this);
 }
 
 /*
@@ -307,9 +305,9 @@ Score_element::add_dependency (Score_element*e)
       e->used_b_ = true;
     }
   else
-    warning("Null dependency added");
-      
+    programming_error ("Null dependency added");
 }
+
 void
 Score_element::substitute_dependency (Score_element* old, Score_element* new_l)
 {
index 8cd17a52d8ce09918549b5621c0ebd92e3506056..250267faf94c51719b24c87602f77f3697851a9f 100644 (file)
@@ -231,13 +231,11 @@ Score_engraver::do_try_music (Music*r)
     {
       if (Break_req* b = dynamic_cast<Break_req *> (r))
        {
+         gotcha = true;
          if (b->penalty_i_ <= Break_req::DISALLOW)
            break_penalty_i_ = b->penalty_i_;
          else if (b->penalty_i_ >= Break_req::FORCE)
-           {
-             command_column_l_->break_penalty_i_ = b->penalty_i_;
-             gotcha = true;
-           }
+           command_column_l_->break_penalty_i_ = b->penalty_i_;
        }
     }
    return gotcha;
index 580974a888e19eac864cceab4a0201a1120f38f1..504219f39305e29893e3552908c85eaba30d6d44 100644 (file)
@@ -331,7 +331,14 @@ Slur::get_encompass_offset_arr () const
   
   // postbreak
   if (broken_edge_b (LEFT))
-    first--;
+    {
+      first--;
+      /*
+        interstaff postbreak: slur begins at height of last note
+       */
+      Encompass_info info (encompass_arr_[0], dir_, this);
+      notes[0][Y_AXIS] += info.interstaff_f_;
+    }
   else
     {
       Encompass_info info (encompass_arr_[0], dir_, this);
@@ -344,6 +351,12 @@ Slur::get_encompass_offset_arr () const
       notes.push (info.o_ - left);
     }
 
+  /*
+    interstaff prebreak: slur ends at height of last note
+   */
+  if (broken_edge_b (RIGHT))
+    d[Y_AXIS] = notes.top ()[Y_AXIS];
+
   notes.push (d);
   
   return notes;
index 4979c7b5a3c0ebebd6a7c78e778b61ca48bb510f..9c77ccea57ae7905b9486842676974d9e5233064 100644 (file)
@@ -39,10 +39,6 @@ Spacing_spanner::scol (int i)const
   generate springs between columns.
 
 
-  TODO
-  
-  * Spacing should take optical effects into account
-  
   The algorithm is partly taken from :
 
   John S. Gourlay. ``Spacing a Line of Music,'' Technical Report
@@ -71,179 +67,185 @@ Spacing_spanner::do_measure (int col1, int col2) const
 
   Array<Spring> meas_springs;
 
-  /*
-    UGR GUR URG.  duplicate code for spacing generation.
-   */
   for (int i= col1; i < col2; i++)
     {
-      SCM hint = scol (i)->get_elt_property (extra_space_scm_sym);
-      if (hint != SCM_BOOL_F)
-       {
-         hint = SCM_CDR (hint);
-
-         Spring s;
-         s.item_l_drul_[LEFT] = scol (i);
-         s.item_l_drul_[RIGHT] = scol (i+1);
-         Real unbroken_dist =  gh_scm2double (SCM_CDR(hint));
+      Item * l = scol(i);
+      Item * r = scol(i+1);
+      Item * lb = l->find_prebroken_piece (RIGHT);
+      Item * rb = r->find_prebroken_piece (LEFT);      
 
-         s.distance_f_ = unbroken_dist;
-         s.strength_f_ = 2.0;
-         
+      Item* combinations[4][2]={{l,r}, {lb,r}, {l,rb},{lb,rb}};
 
-         meas_springs.push (s);
+      for (int i=0; i < 4; i++)
+       {
+         Score_column * lc = dynamic_cast<Score_column*> (combinations[i][0]);
+         Score_column *rc = dynamic_cast<Score_column*> (combinations[i][1]);
+         if (!lc || !rc)
+           continue;
 
+         Spring s;
+         s.item_l_drul_[LEFT] = lc;
+         s.item_l_drul_[RIGHT] = rc;
          
-         Item * l = scol(i)->find_prebroken_piece (RIGHT);
-         Item * r = scol(i+1)->find_prebroken_piece (LEFT);
-         if (l)
+         SCM hint = lc->get_elt_property (extra_space_scm_sym);
+         SCM next_hint = rc->get_elt_property (extra_space_scm_sym);
+       
+         if (hint != SCM_BOOL_F)
            {
-               Spring s;
-               s.item_l_drul_[LEFT] = l;
-               s.item_l_drul_[RIGHT] = scol (i+1);
-               hint = l->get_elt_property (extra_space_scm_sym);
-
-               if (hint == SCM_BOOL_F)
-                 {
-                   programming_error ("No postbreak breakable spacing hint set.");
-                   s.distance_f_= unbroken_dist;
-                 }
-               else
-                 s.distance_f_ =  gh_scm2double (SCM_CDDR(hint));
-
-               /*
-                 space around barlines should not stretch very much.
-                */
+             hint = SCM_CDDR (hint);
+             
+             s.distance_f_ = gh_scm2double (hint); 
+             if (!lc->musical_b ())
                s.strength_f_ = 2.0;
-               meas_springs.push (s);
            }
-
-         if (r)
+         else if (!lc->musical_b() && i+1 < col_count())
            {
-             Spring s;
-             s.item_l_drul_[LEFT] = scol (i);
-             s.item_l_drul_[RIGHT] = r;
-             s.distance_f_ =  unbroken_dist;
-             
-             /*
-               space around barlines should not stretch very much.
-                */
+             s.distance_f_ = default_bar_spacing (lc,rc,shortest);
              s.strength_f_ = 2.0;
-             meas_springs.push (s);
            }
-
-         if (l&&r)
+         else if (lc->musical_b())
            {
-             Spring s;
-             s.item_l_drul_[LEFT] = l;
-             s.item_l_drul_[RIGHT] = r;
+             s.distance_f_ = note_spacing (lc, rc, shortest);
              
-             hint = l->get_elt_property (extra_space_scm_sym);
-             if (hint == SCM_BOOL_F)
-               {
-                 programming_error ("No postbreak breakable spacing hint set.");
-                 s.distance_f_= unbroken_dist;
-               }
-             else
-               s.distance_f_ =  gh_scm2double (SCM_CDDR(hint));
-             
-             /*
-               space around barlines should not stretch very much.
-             */
-             s.strength_f_ = 2.0;
-             meas_springs.push (s);
-           }
-       }
-      else if (!scol (i)->musical_b() && i+1 < col_count())
-       {
-         Real symbol_distance = scol (i)->extent (X_AXIS)[RIGHT] ;
-         Real durational_distance = 0;
-         Moment delta_t =  scol (i+1)->when_mom () - scol (i)->when_mom () ;
-         /*
-           ugh should use shortest_playing distance
-         */
-         if (delta_t)
-           {
-             Real k=  paper_l()->arithmetic_constant (shortest);
-             durational_distance =  paper_l()->length_mom_to_dist (delta_t,k);
            }
-         symbol_distance += -scol (i+1)->extent(X_AXIS)[LEFT];
-
-         Spring s ;
-         s.item_l_drul_[LEFT] = scol (i);
-         s.item_l_drul_[RIGHT] = scol (i+1);
-         s.distance_f_ =  symbol_distance >? durational_distance;
-         meas_springs.push (s);
-
-         Item *l = s.item_l_drul_[LEFT]->find_prebroken_piece (RIGHT);
-         Item *r = s.item_l_drul_[RIGHT]->find_prebroken_piece (LEFT);
-         Spring sp_orig (s);
          
-         if (l)
+         if (next_hint != SCM_BOOL_F)
            {
-             s = sp_orig;
-             s.item_l_drul_[LEFT] =l ;
-             meas_springs.push (s);
+            next_hint = SCM_CADR(next_hint);
+            s.distance_f_ += gh_scm2double (next_hint);
            }
-
-         if (l && r)
+         else
            {
-             s = sp_orig;
-             s.item_l_drul_[RIGHT] = r;
-             s.item_l_drul_[LEFT] = l;
-             meas_springs.push (s);
+             Interval ext (rc->extent (X_AXIS));
+             Real correction =  ext.empty_b() ? 0.0 : - ext [LEFT];
+
+             /*
+               don't want to create too much extra space for accidentals
+              */
+             if (lc->musical_b () && rc->musical_b ())
+               correction /= 2.0;
+
+             s.distance_f_ += correction;
            }
          
+         meas_springs.push (s);        
        }
     }
 
-  for (int i=col1; i < col2; i++)
+  return meas_springs;
+}
+
+/**
+   Do something if breakable column has no spacing hints set.
+ */
+Real
+Spacing_spanner::default_bar_spacing (Score_column *lc, Score_column *rc, Moment shortest) const
+{
+  Real symbol_distance = lc->extent (X_AXIS)[RIGHT] ;
+  Real durational_distance = 0;
+  Moment delta_t =  rc->when_mom () - lc->when_mom () ;
+
+             /*
+               ugh should use shortest_playing distance
+             */
+  if (delta_t)
     {
-      if (scol (i)->musical_b())
-       {
-         Moment shortest_playing_len = scol(i)->shortest_playing_mom_;
-         if (! shortest_playing_len)
-           {
-             warning (_f ("can't find a ruling note at %s", 
-               scol (i)->when_mom ().str ()));
-             shortest_playing_len = 1;
-           }
-         if (! shortest)
-           {
-             warning (_f ("no minimum in measure at %s", 
-                     scol (i)->when_mom ().str ()));
-             shortest = 1;
-           }
-         Moment delta_t = scol (i+1)->when_mom () - scol (i)->when_mom ();
-         Real k=  paper_l()->arithmetic_constant(shortest);
-         Real dist = paper_l()->length_mom_to_dist (shortest_playing_len, k);
-         dist *= (double)(delta_t / shortest_playing_len);
+      Real k=  paper_l()->arithmetic_constant (shortest);
+      durational_distance =  paper_l()->length_mom_to_dist (delta_t,k);
+    }
 
+  return  symbol_distance >? durational_distance;
+}
 
-         Spring sp;
-         sp.distance_f_ =  dist;
-         sp.item_l_drul_[LEFT] = scol (i);
-         sp.item_l_drul_[RIGHT] = scol (i+1);
 
-         meas_springs.push (sp);
+Real
+Spacing_spanner::note_spacing (Score_column *lc, Score_column *rc, Moment shortest) const
+{
+  Moment shortest_playing_len = lc->shortest_playing_mom_;
+  if (! shortest_playing_len)
+    {
+      warning (_f ("can't find a ruling note at %s", 
+                  lc->when_mom ().str ()));
+      shortest_playing_len = 1;
+    }
+  if (! shortest)
+    {
+      warning (_f ("no minimum in measure at %s", 
+                  lc->when_mom ().str ()));
+      shortest = 1;
+    }
+  Moment delta_t = rc->when_mom () - lc->when_mom ();
+  Real k=  paper_l()->arithmetic_constant(shortest);
+  Real dist = paper_l()->length_mom_to_dist (shortest_playing_len, k);
+  dist *= (double)(delta_t / shortest_playing_len);
 
-         /*
-           UGH. TODO: more
-           advanced spacing here.
-          */
-         Spring sp_orig (sp);
+  dist += stem_dir_correction (lc,rc);
+  return dist;
+}
 
-         Item *r =  sp.item_l_drul_[RIGHT]->find_prebroken_piece (LEFT);
-         
-         if (r)
-           {
-             sp = sp_orig;
-             sp.item_l_drul_[RIGHT] =r ;
-             meas_springs.push (sp);
-           }
-       }
+
+/**
+   Correct for optical illusions. See [Wanske] p. 138. The combination
+   up-stem + down-stem should get extra space, the combination
+   down-stem + up-stem less.
+
+   This should be more advanced, since relative heights of the note
+   heads also influence required correction.
+
+   Also might not work correctly ico. multi voices or staff changing voices
+
+   TODO: lookup correction distances?  More advanced correction?
+   Possibly turn this off?
+
+   This routine reads the DIR_LIST property of both its L and R arguments.
+*/
+Real
+Spacing_spanner::stem_dir_correction (Score_column*l, Score_column*r) const
+{
+  SCM dl = l->get_elt_property (dir_list_scm_sym);
+  SCM dr = r->get_elt_property (dir_list_scm_sym);
+  if (dl == SCM_BOOL_F || dr == SCM_BOOL_F)
+    return 0.0;
+
+  dl = SCM_CDR (dl);
+  dr = SCM_CDR (dr);
+
+  if (scm_ilength (dl) != 1 && scm_ilength (dr) != 1)
+    return 0.;
+
+  dl = SCM_CAR(dl);
+  dr = SCM_CAR(dr);
+
+  assert (gh_number_p (dl) && gh_number_p(dr));
+  int d1 = gh_scm2int (dl);
+  int d2 = gh_scm2int (dr);
+
+  if (d1 == d2)
+    return 0.0;
+
+  bool err = false;
+  Real correction = 0.0;
+  Real ssc = paper_l ()->get_realvar(ly_symbol ("stemSpacingCorrection"));
+
+
+  if (d1 && d2)
+    {
+      if (d1 == 1 && d2 == -1)
+       correction = ssc;
+      else if (d1 == -1 && d2 == 1)
+       correction = -ssc;
+      else
+       err = true;
     }
-  return meas_springs;
+  
+  else
+    err = true;
+
+  if (err)
+    programming_error ("Stem directions not set correctly for optical correction");
+  return correction;
 }
+  
 
 Array<Spring>
 Spacing_spanner::get_springs () const
@@ -253,12 +255,14 @@ Spacing_spanner::get_springs () const
   for (int i=1; i < col_count (); i++)
     {
       if (scol (i)->breakable_b ())
-       {
-         springs.concat (do_measure (last_break, i));
-         last_break  = i;
-       }
+        {
+          springs.concat (do_measure (last_break, i));
+          last_break  = i;
+        }
     }
   return springs;
 }
 
 
+
+
index b9a435b4cc3e93b6116932d4ff0384790a6faaea..65b57f96205dd310f23fd64c48c0c1a2f6e641a0 100644 (file)
@@ -31,7 +31,7 @@ Span_bar::do_substitute_element_pointer (Score_element*o, Score_element*n)
 Interval
 Span_bar::do_width () const
 {
-  Molecule m = lookup_l ()->bar (type_str_, 40 PT);
+  Molecule m = lookup_l ()->bar (type_str_, 40 PT, paper_l ());
   
   return m.extent (X_AXIS);
 }
@@ -109,7 +109,7 @@ Span_bar::do_brew_molecule_p () const
   Molecule*output = new Molecule;
   if (!iv.empty_b())
     {
-      output->add_molecule (lookup_l ()->bar (type_str_, iv.length ()));
+      output->add_molecule (lookup_l ()->bar (type_str_, iv.length (), paper_l ()));
       output->translate_axis (iv.center (), Y_AXIS);
     }
   else
index df25b4ee332849088ebde7aac82b69f6306720ae..c9ecb2492e194a9e5d10ba246f5d3285aab1a558 100644 (file)
@@ -404,9 +404,15 @@ Spring_spacer::add_column (Paper_column  *col, bool fixed, Real fixpos)
       if (cols_[idx].pcol_l_ != cr.other_l_)
            continue;
       
-      
-      connect (idx, this_rank, cr.distance_f_,
-              cr.strength_f_ / cr.distance_f_);
+      Real d  = cr.distance_f_;
+      if (fabs (d) < EPS)
+       {
+         connect (idx, this_rank, 0.0, 10); // large strength. 
+         programming_error ("requesting zero distance.");
+       }
+      else
+       connect (idx, this_rank, cr.distance_f_,
+                cr.strength_f_ / cr.distance_f_);
     }
       
   cols_.push (c);
index 55b2036269b12ddfb95110d1d3709e0cef11c521..97fa1565cced98465ab47cd6a6c090b3a612963a 100644 (file)
@@ -244,6 +244,36 @@ Stem::do_pre_processing ()
       set_elt_property (transparent_scm_sym, SCM_BOOL_T);
     }
   set_empty (invisible_b ());
+  set_spacing_hints ();
+}
+
+
+
+/**
+   set stem directions for hinting the optical spacing correction.
+
+   Modifies DIR_LIST property of the Stem's Score_column
+
+   TODO: more advanced: supply height of noteheads as well, for more advanced spacing possibilities
+ */
+void
+Stem::set_spacing_hints () 
+{
+  if (!invisible_b ())
+    {
+      SCM scmdir  = gh_int2scm (dir_);
+      SCM dirlist = column_l ()->get_elt_property (dir_list_scm_sym);
+      if (dirlist == SCM_BOOL_F)
+       dirlist = SCM_EOL;
+      else
+       dirlist = SCM_CDR (dirlist);
+
+      if (scm_sloppy_memq (scmdir, dirlist) == SCM_EOL)
+       {
+         dirlist = gh_cons (scmdir, dirlist);
+         column_l ()->set_elt_property (dir_list_scm_sym, dirlist);
+       }
+    }
 }
 
 
@@ -280,8 +310,9 @@ Stem::do_brew_molecule_p () const
   
   if (!invisible_b ())
     {
-      Molecule ss =lookup_l ()->stem (stem_y[DOWN]*dy,
-                                    stem_y[UP]*dy);
+      Real stem_width = paper_l ()->get_var ("stemthickness");
+       Molecule ss =lookup_l ()->filledbox (Box (Interval (-stem_width/2, stem_width/2),
+                                                Interval (stem_y[DOWN]*dy, stem_y[UP]*dy)));
       mol_p->add_molecule (ss);
     }
 
index d5a2b727d8ae644104ae912db86ccfa2db55ec55..75bbaa2ee29dbe9ca1c73479f4d6cda762f71f22 100644 (file)
@@ -26,15 +26,15 @@ Time_signature::do_brew_molecule_p () const
       if (time_sig_type_str_[0]=='1')
        {
          Array<int> tmparr = args_;
-         return new Molecule( lookup_l ()->time_signature (args_[0], 0));
+         return new Molecule( lookup_l ()->time_signature (args_[0], 0, paper_l ()));
        }
       else
        {
-         return new Molecule( lookup_l ()-> special_time_signature (time_sig_type_str_ ,args_[0], args_[1]));
+         return new Molecule( lookup_l ()-> special_time_signature (time_sig_type_str_ ,args_[0], args_[1], paper_l ()));
        }
     }
   else
-    return new Molecule(lookup_l ()->time_signature (args_[0], args_[1]));
+    return new Molecule(lookup_l ()->time_signature (args_[0], args_[1],paper_l ()));
 }
 
 
index 1383acbb1d7e4219ed2261af39297a36a1f2ed21..3f76d659e1654b024abd491394cb5679154ac0b0 100644 (file)
@@ -16,6 +16,8 @@
 #include "tuplet-spanner.hh"
 #include "stem.hh"
 #include "note-column.hh"
+#include "dimensions.hh"
+
 
 Tuplet_spanner::Tuplet_spanner ()
 {
@@ -53,7 +55,7 @@ Tuplet_spanner::do_brew_molecule_p () const
     Real ncw = column_arr_.top ()->extent (X_AXIS).length ();
     Real w = extent (X_AXIS).length () + ncw;
     Molecule num (lookup_l ()->text ("italic",
-                                    number_str_));
+                                    number_str_, paper_l ()));
     num.align_to (X_AXIS, CENTER);
     num.translate_axis (w/2, X_AXIS);
     Real interline = paper_l ()->get_realvar (interline_scm_sym);
@@ -63,16 +65,11 @@ Tuplet_spanner::do_brew_molecule_p () const
     num.translate_axis (dir_ * interline, Y_AXIS);
        
     num.translate_axis (dy/2, Y_AXIS);
-
     
-    /*    if (beam_l_arr_.size () == 1 && !bracket_visibility)
-      {
-       num.translate_axis (dir_ * interline,  Y_AXIS);
-      }
-    */
+    Real thick = paper_l ()->get_realvar (tuplet_thick_scm_sym);
     if (bracket_visibility)      
       {
-       mol_p->add_molecule (lookup_l ()->plet (dy, w, dir_));
+       mol_p->add_molecule (lookup_l ()->tuplet_bracket (dy, w, thick, interline, dir_));
       }
 
     if (number_visibility)
index 39d220d4424128659e2deec284a429e0daa5a7f2..32c48b9687ad3260b81c115d005b54979d3f3ab0 100644 (file)
@@ -33,16 +33,16 @@ Volta_spanner::do_brew_molecule_p () const
   if (!column_arr_.size ())
     return mol_p;
 
-
-  Real internote_f = paper_l ()->get_realvar (interline_scm_sym)/2.0;
+  Real interline_f = paper_l ()->get_realvar (interline_scm_sym);
+  Real internote_f = interline_f/2;
+  Real t = paper_l ()->get_realvar (volta_thick_scm_sym);
 
   Real dx = internote_f;
   Real w = extent (X_AXIS).length () - dx;
-  Molecule volta (lookup_l ()->volta (w, last_b_));
+  Molecule volta (lookup_l ()->volta (w, t, interline_f, last_b_));
   Real h = volta.dim_.y ().length ();
-
   
-  Molecule num (lookup_l ()->text ("volta", number_str_));
+  Molecule num (lookup_l ()->text ("volta", number_str_, paper_l ()));
   Real dy = column_arr_.top ()->extent (Y_AXIS) [UP] > 
      column_arr_[0]->extent (Y_AXIS) [UP];
   dy += 2 * h;
@@ -51,7 +51,7 @@ Volta_spanner::do_brew_molecule_p () const
     dy = dy >? note_column_arr_[i]->extent (Y_AXIS)[BIGGER];
   dy -= h;
 
-  Molecule two (lookup_l ()->text ("number", "2"));
+  Molecule two (lookup_l ()->text ("number", "2", paper_l ()));
   Real gap = two.dim_.x ().length () / 2;
   Offset off (num.dim_.x ().length () + gap, 
              h / internote_f - gap);
index 49eeb41efd2d083c49f7d066a64c7f82a4575c09..789117b757b6071992533dc69d7597d5bae500ca 100644 (file)
@@ -99,16 +99,20 @@ Word_wrap::do_solve () const
              break;
            }
 
+         /*
+           UGR! bug! 
+          */
          if (current.energy_f_ < minimum.energy_f_ || current.energy_f_ < 0)
            {
              minimum = current;
            }
-         else {                // we're one col too far.
-           break_idx--;
-           while (allcols[curcol_idx] != breakpoints[break_idx])
-             curcol_idx --;
-           break;              // do the next line.
-         }
+         else
+           {           // we're one col too far.
+             break_idx--;
+             while (allcols[curcol_idx] != breakpoints[break_idx])
+               curcol_idx --;
+             break;            // do the next line.
+           }
 
 
          // add nobreak version of breakable column
index 05eb9b5ab495e0bc93626173b2319af25437dbb2..514693c498fdde226187737899d3cc08875b92dd 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.20";
+\version "1.0.21";
 
 
 \include "declarations.ly"
index eaf3e7bf2a2b0c5fc2e5748ad379dcf21f8033e5..3bba4f0837079b7512ee57e4a103023fcc6a7034 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.20";
+\version "1.0.21";
 
 
 \include "declarations.ly";
index 65c2f669d3c571a58eab10a32e4f47d083f4152f..a5bfb078066e505042d42c6f24cf6810da95b07f 100644 (file)
@@ -1,7 +1,7 @@
 % Toplevel initialisation file. 
        
 
-\version "1.0.20";
+\version "1.0.21";
 
 
 \include "declarations.ly"
index 4d5a0bf5dc28e0366fcaa943266c4709dd793779..b32c0338a4e0f384851fbf57ed55bcf08f111a61 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.20";
+\version "1.0.21";
 
 
 \include "declarations.ly"
index 13500905ec911bf6195effb79591cdc874662858..57e9bba99e3870a5b41fc3fc3c5f06d145bd8271 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.20";
+\version "1.0.21";
 
 
 \include "declarations.ly"
index 31215a15ca8d1f834ec03101d50b7ff7ce2d7d69..13ef9a393bc739dc012d234df0563822866f51f2 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.20";
+\version "1.0.21";
 
 
 \include "declarations.ly"
index 5f652ecdcfcdce48d706124973b3ad6d36da8569..10f2c4959357f24158b2da6f7873c72d8adb5967 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.20";
+\version "1.0.21";
 
 
 \include "declarations.ly";
index 8f03850e7ef4e78777123cb67c653ce7f1ce4982..ccd35763e3ab073f712f3c28a43d17aae391f777 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.20";
+\version "1.0.21";
 
 
 \include "declarations.ly"
@@ -10,8 +10,8 @@
     \maininput
   }
   \paper {
-    linewidth=-1.0;
-       indent = 0.0;
+           linewidth=-1.0;
+       indent = 0.0;
   }  
   \midi{ }
 }
index e499491a65402aeb3ae5c124f327211bb698b2dc..e439ab17b3486116dd288571ea0e6763ee0cc28e 100644 (file)
@@ -2,7 +2,7 @@
 
 
 
-\version "1.0.20";
+\version "1.0.21";
 
 paper_sixteen = \paper {
        staffheight = 16.0\pt;
index 2de985a5f01e9e496d2d9024a1d1de022d17e2ef..90bebc6d7d3fd015a9893b89a603ea4aa8a0f83f 100644 (file)
@@ -1,7 +1,7 @@
 % paper20.ly
 
 
-\version "1.0.20";
+\version "1.0.21";
 
 paper_twenty = \paper {
        staffheight = 20.0\pt;
index 845417014aca099d662f6185ec1e93921396b9fe..33fabb80abc481860820e0c567e27e460eb42bf9 100644 (file)
@@ -143,8 +143,12 @@ crescendo_shorten = 4.0 * \interline;
 restcollision_minimum_dist = 3.0;
 restcollision_minimum_beamdist = 1.5;
 
-postBreakPadding = 1.0*\interline;
+% deprecated!
+postBreakPadding = 0.0;
+
+stemSpacingCorrection = 0.5*\interline;
 
 \include "engraver.ly";
 
 
+
index 7aa173d0b4de1fffcd0b37b313e11c2d65850b34..979e2e66f07fd29205a6d7ae12fc2dbb39d67595 100644 (file)
@@ -30,8 +30,8 @@ slurdown = \notes {
        \property Voice.slurVerticalDirection = \down
 }
 
-shifton =      \property Voice.hshift = 1
-shiftoff =     \property Voice.hshift = 0
+shifton = \property Voice.horizontalNoteShift = 1
+shiftoff = \property Voice.horizontalNoteShift = 0
 
 onevoice = {   
        \stemboth \shiftoff     
@@ -59,33 +59,6 @@ voicefour =
        \shifton
 }
 
-onestaff = 
-       \translator Staff=one
-
-
-staffone = {   
-       \translator Staff=one
-       \property Staff.verticalDirection = \center
-       \property Staff.hshift = 0
-}
-
-stafftwo = {   
-       \translator Staff=two
-       \property Staff.verticalDirection = \center
-       \property Staff.hshift = 0
-}
-
-staffthree = {         
-       \translator Staff=three
-       \property Staff.verticalDirection = \center
-       \property Staff.hshift = 0
-}
-
-stafffour = {  
-       \translator Staff=four
-       \property Staff.verticalDirection = \center
-       \property Staff.hshift = 0
-}
 
 % ugh, cluttering global namespace...
 
index 0a7d845f6fd99fef8e371355d29f274c69ae8ded..ae3de9afdbc41cbcb8f132e7bc1d888fabe59cee 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Titel: LilyPond
-Versie: 1.1.48
-Inschrijf datum: 17JUN99
+Versie: 1.1.49
+Inschrijf datum: 21JUN99
 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.48.tar.gz 
+       770k lilypond-1.1.49.tar.gz 
 Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       770k lilypond-1.1.48.tar.gz 
+       770k lilypond-1.1.49.tar.gz 
 Copi-eer voorwaarden: GPL
 End
index f4dc825184a7f29cd85e37db06c131ff5d78acb0..2de95469e32e756df4be1271653671eb574e3689 100644 (file)
@@ -1,7 +1,7 @@
 Begin3
 Title: LilyPond
-Version: 1.1.48
-Entered-date: 17JUN99
+Version: 1.1.49
+Entered-date: 21JUN99
 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.48.tar.gz 
+       770k lilypond-1.1.49.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       770k lilypond-1.1.48.tar.gz 
+       770k lilypond-1.1.49.tar.gz 
 Copying-policy: GPL
 End
index 24649e39a46f23d21ad8905c01d537c88e1a0e27..3a3d1793757b3b11d7391c11dc00851ac39647d9 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.1.48
+Version: 1.1.49
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.48.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.49.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 2566a2f5f714ae0a5084437732457406b87b9a00..44946caef78cf06b94df6c8642ac7f730de13134 100644 (file)
@@ -4,7 +4,7 @@ depth = ..
 
 STEPMAKE_TEMPLATES=metafont metapost install install-out
 
-EXTRA_DIST_FILES += TODO README feta.mp mfplain.ini
+EXTRA_DIST_FILES += README feta.mp mfplain.ini
 
 FET_FILES = $(wildcard feta[0-9]*.mf)
 
diff --git a/mf/TODO b/mf/TODO
deleted file mode 100644 (file)
index 8b13789..0000000
--- a/mf/TODO
+++ /dev/null
@@ -1 +0,0 @@
-
index e90c55e26d5c9bda79dbd444f22e7127ba68c2a4..0bca494223d61937d07ebbd92ef7e12ec384df3d 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "global.ly"
 \include "violoncello.ly"
index a43c6dfe97ed320556570acea790aadf2495c6ea..923b3b57c6db56b5f2f1344c8a90864f32d32753 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "global.ly"
 \include "clarinetti.ly"
index 581cf740e573d554226911368f001125495f0f60..aa441a3ba390ccb7ee2d731de0fdf95973a347f2 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "clarinetto-1.ly"
 \include "clarinetto-2.ly"
index 7645f4172b62846390d8d9a5e5316f61d6a4d5f0..dca9983180f5660823b8cf2c50a6c862fa5d559a 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 clarinetto1 = \notes \relative c {
        R1 *2 | d''4-.\ff r r2 | R1 *3 | e4-. r r2 | R1 *3 |
index 7503d18ada2ab86dc7aed7c0e691e77916c2df33..281418a8fd0bb52de69da547bb6e5b1e2fe81b8a 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 clarinetto2 = \notes \relative c { 
        R1*2 bes''4-.\ff r r2 | R1*3 | cis4-. r r2 | R1 *3 | 
index 0f0a58c52d009c717950b18e7425a6434887f32b..8f364a98cc21b711fcb159df4a7bb42474f5069d 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "global.ly"
 \include "contrabasso.ly"
index c958df6f43b2c6213b1f4f94e3783fb66747cdfc..24ee6a2a3ce02a4f663dbd0548ed0e1d638945c9 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 contrabasso = \notes \relative c {
 %      \translator Staff=violoncello
index aaa82c488b615bfe335f4cd6dfba810235e519f3..70a369b32bde08764df7d2272d5a7499356a9a90 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "global.ly"
 
@@ -66,7 +66,7 @@ strijkers = \context StaffGroup = strijkers_group <
 
 \score{
        <
-               \property Score . textstyle =  "italic"
+               \property Score . textStyle =  "italic"
 
                \$legno
                \$koper
index b904ec9b8c63f8a9373cfe34ce1446419c7daad7..18356afdb4930c741c67d497778dafd2ca86505b 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "global.ly"
 \include "corni.ly"
index dc490a270473c86c28140fa43aed784294e21d04..3baa0bff1a20d5b54dac722e415fad6f6973df78 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "corno-1.ly"
 \include "corno-2.ly"
index 5db1f242069beedba0575aca9709bea8129df1b0..c3ea92df034530491e389cc9278b079103b3f99f 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 corno1 = \notes \relative c {
        R1 *2 | f''4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
index d05eb04bfd4f003022c3331de37f82a3c63bb559..2461ec83d4a441960a18e21e38b1d9d463093ef7 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 corno2 = \notes \relative c {
        R1 *2 | d''4-.\ff r r2 | R1 *3 | d4-. r r2 | R1 *3 |
index 77cf1e3abfbeb1142dd258497af98d1edf2ee097..94fd4fd552c13e12f0720cddc5614bf253435793 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "global.ly"
 \include "fagotti.ly"
index f8d277a5841ab389fee61fb736929f6699428544..555c01ef9b52365c2eedd7e8a28a4c3d742ae434 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "fagotto-1.ly"
 \include "fagotto-2.ly"
index 096176e76594d87b12f0edf81f5d114ba69b3741..fcdb906da0f470a8ff71f59a14f7a1e865b6545b 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 fagotto1 = \notes \relative c {
        R1 *2 | as'4-.\ff r r2 | R1 *3 | as4-. r r2 | R1 *3 |
index d5aaf3e699ed920a01ac0da90a25344c3b9f22ce..980337e00321625269487addf239509e5fd79e15 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 fagotto2 = \notes \relative c {
        R1 *2 | f4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
index ff50562870406650053ce02b46659ccb29f241e8..e10242a35b01e12b0ef44ec3e59b85077df3d2cf 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "global.ly"
 \include "flauti.ly"
index 1557ba98d15ab994303806b32e64297cd74d2953..335cfd30910d95c558387297a89fd023dd1c528e 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "flauto-1.ly"
 \include "flauto-2.ly"
index faf51d925c2c8e0cc89bdf4b529df069b6814df5..4ae7119a3b690b0d432f75ef4417c1826f5a5483 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 flauto1 = \notes \relative c {
        R1 *2 | c'''4-.\ff r r2 | R1 *3 | d4-. r r2 | R1 *3 |
index 310d69339831e962411b7f3e1973e30467880f99..067a3620dfb6b092400199cf0a82ef8141a74013 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 flauto2 = \notes \relative c {
        R1 *2 | as'''4-.\ff r r2 | R1 *3 | b4-. r r2 | R1 *3 | 
index cf487141d8f6d3d629d56a150342c66b1a019cd0..8eefc990013cee9815619c509878dac98fd96b84 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 global = \notes {
        \time 4/4;
index 67d9d6d3b3650d017e269874dffcc2b267a1375f..4631ba29e44b77c4e351b3e5b49830b1343da53b 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 oboe1 = \notes \relative c'' {
        R1 *2 | as'4-.\ff r r2 | R1 *3 | as4-. r r2 | R1 *3 |
index c92d6d88d1712d126282037900d1d17c9a2d894f..8a138bde031a51b1104909a0f307be47bb81278e 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 oboe2 = \notes \relative c{
        R1 *2| f''4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
index 599c688daa7b8c09c10e0ff406eae80e6f91feed..cbdc44edb3b1ca01887d2676bb130e64d90c354a 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "global.ly"
 \include "oboi.ly"
index b3f61ac178909d10b8e5de436eb6eff73f14e026..d9d8db98d522a68c55d987221cdd46cf3dae9ce4 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "oboe-1.ly"
 \include "oboe-2.ly"
index b2fefcf9455ad9b7453950dd2419ecb337323998..64182a018aac1228d1054e6ab38f635b883f9a7b 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 timpani = \notes \relative c {
        R1 *2 | c4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
index 4065c85e5c392c45d60e9f002271f44058778e4e..7e829fc02e7e8be1e0a3e27bf6f1ba9e0700458a 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "global.ly"
 \include "trombe.ly"
index f552fd2c6e91c162a3b29dba7b90452003f739d4..28ea0951ff60be519c12089532da67bad611a615 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "trombo-1.ly"
 \include "trombo-2.ly"
index 8d8952e75cae29e4c1c77a6de9c7a0bb8e0faabf..1d7a55ee4db035eae570df93066a01d979aa8e6c 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 trombo1 = \notes \relative c {
        R1 *2 | c''4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
index 3812ea54efa5ee77a8ad8aa9da435a1b5272afe5..92fd2bfa757504423fad1472fbd7d5226b109bdd 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 trombo2 = \notes \relative c {
        R1 *2 | c'4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
index 92a2f3211fdba1d4e9bee8be3f64a61ff454a96a..7aac9fc86b36e82b928851c111cd959182aa4b3f 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 viola1 = \notes \relative c {
        \context Voice=one
index b0e5f7fe04b7ed9244287a97c535e32ee81f1c29..1f1c90e0419624dd921b5ed512c3af58eee2cb9b 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 viola2 = \notes \relative c {
        % starts on (actualy, most part is on) same staff as viola1
index e3ce9da93c2948083310587ca2085cd7e44b0cd1..f6ac9f640ac6b0382ebcf72aa22bc8198d3db931 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "global.ly"
 \include "viola-1.ly"
index 3ed4fb306fbb52ee6b25c4f3b1704da9ee284aea..e5641f9fd1990d69b86ee7f2937943818e48955d 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "global.ly"
 \include "violino-1.ly"
index 2e4b87f08a8a333b68affcb6da365b28b7a3546e..b77cd240aab65e9593d15835c4d9de54d90b2a24 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 violino1 = \notes \relative c {
        c'1\ff ~ | c | <f4-. c'-. as'-.> r r2 | R1 |
index e738e9d9453057f0c2213b73b95ed67dbdaa6133..89cc9cb00d0b81c28dc8e91f51cd95c225fd2bed 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "global.ly"
 \include "violino-2.ly"
index 535a41690dd2b96d9ae7b35dfb858725c27b2bec..d9e906c74e3fa2b59e2913b7c3306120fa2e4170 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 violino2 = \notes \relative c {
        c'1\ff ~ | c | <f4-. c'-. as'-.> r r2 | R1 |
index 4f40fbf0c86183e9d72e8cbf1d13b27183b0598e..34f48f6a20cfcb464529327b86de0a03d466f082 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "global.ly"
 \include "violoncello.ly"
index 070c820f6317e373438bdea54038df5270aa26ab..28ffd4c402d724dd00f0daf496769a9550d1dafd 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 violoncello = \notes \relative c {
        c1\ff ~ | c | f,4-. r r2 | r1 | c'1\ff ~ | c | f,4-. r r2 |
index caf94189236757ba9be6b2a62f33ddb1fd9bc03a..95aecf997d500679381d94132fdc7765f763a371 100644 (file)
@@ -807,4 +807,4 @@ Bar_number_engraver;}}
 
 ----------------------------------------------------
 
-\version "1.0.20";
+\version "1.0.21";
index e135d8343a79393ed46a80493d11df3c37353b34..18b3e3193384f77353a1fdeef23f5ff4c4484858 100644 (file)
@@ -266,4 +266,4 @@ s1
 \paper{barsize=50.0; \translator {\StaffContext \consists
 Bar_number_engraver;}}
 }
-\version "1.0.20";
+\version "1.0.21";
index af3e3b6c3d73792d92237b787ed329086f14eaf6..27fa3e2c83536d7ff8be9a922b6ba17276d5dbb5 100644 (file)
@@ -336,4 +336,4 @@ g,4. |
 Bar_number_engraver;}}
 }
 
-\version "1.0.20";
+\version "1.0.21";
index 7f861941550e33b08669a476735826ac7aa23018..fcd51d8faea139c7294421c898f5032d556221c1 100644 (file)
@@ -251,4 +251,4 @@ LHtoL = { \tolower \stemdown }
  
 
 }
-\version "1.0.20";
+\version "1.0.21";
index bffe458f1778640073580dd1db996750808c4dea..e4fe8310878018f2e4e1edbf505a1cc0c1589815 100644 (file)
@@ -311,4 +311,4 @@ s8 [c''16 g'8 fis'16] [bes'' g' f' ees'] |
  \paper{barsize=50.0; \translator {\StaffContext \consists
 Bar_number_engraver;}}
 }
-\version "1.0.20";
+\version "1.0.21";
index 524878c6038101be31460a0d9a3eb6f23467a84a..90984120b2bafcce4feaac1d5db84b514c48e799 100644 (file)
@@ -17,7 +17,7 @@ title = "Verso II";
        under the Gnu Public Licence.
 %}
        
-\version "1.0.20";
+\version "1.0.21";
 
 $voice_one = \notes \relative c' {
        a'2 bes4. [c16 bes] | a4 d ~ d c ~ | c b ~ [b8 a] a4 ~|
index c2ecc576f91c9efa6d12bbcdacd7ab1d63712596..fc2f0b7a1ed512a2720335e8f882179f2c0ad39e 100644 (file)
@@ -12,7 +12,7 @@
  Tested Features: cross staff beams and slurs, grace notes, no bars
 %}
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "nederlands.ly"
 
index 4216696d5a924d50bdf4260a9a2ef8fb74fdfab3..397be40bb6b68181e6ac7a5237520a9cee171acb 100644 (file)
@@ -12,7 +12,7 @@
  Tested Features:
 %}
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "nederlands.ly"
 
index 2ebcf919e3736b86898dc28c51803b84f0ca29eb..d38c8cce4d2886e2bc600c56df3c98a10cd11508 100644 (file)
@@ -9,6 +9,6 @@ description = "A schubert song in 16 pt";
 copyright =     "public domain";
 } 
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "standchen.ly"
index 9d32796aa84cb1d2bc0adda3cbb6a6e95c941849..9ae5a8c5d8348df481c4cefe668804f113b1ea90 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 description = "A schubert song in 20 pt";
 } 
 
-\version "1.0.20";
+\version "1.0.21";
 
 % fool make-website
 % \include "standchen.ly";
index 8012f243ecd8cdcc19343037d0ee60b43882395a..d76cc6f888ff97cbf20182adeb32c5c7bbddab45 100644 (file)
@@ -16,7 +16,7 @@ multiple \paper{}s in one \score
 Note: Original key F.
 %}
 
-\version "1.0.20";
+\version "1.0.21";
 
 $vocal_verse1 = \notes\relative c''{
        % ugh: treble/bass
@@ -260,7 +260,7 @@ $treble_through = \notes \relative c'{
        < { a4.-> )f8 } { a4. f8 } > |
        <e2 e'> r4 |
        <es!2 es'! > r4 |
-       \property Voice . textstyle =  "italic"
+       \property Voice . textStyle =  "italic"
        <d2_"decresc." d'> r4 |
        %75
        <b2 b'> r4 |
@@ -271,7 +271,7 @@ $treble_through = \notes \relative c'{
        <e4. g> [<e8-. g-.(> <e-. g-.> <e-. )g-.>] |
        <f4. g> [<b,8-. g'-.(> <d-. g-.> <f-. )g-.>] |
        %80
-       \property Voice . textstyle =  "italic"
+       \property Voice . textStyle =  "italic"
        <e2._"dim." g> |
        <g,2. e' g> |
        <g2.-\fermata e' g> |
index aecac4abce43f20ef778ad1dbbe390b41d0c1070..7cbaeea0ed5c62c38e147f561518fba84cc4b58f 100644 (file)
@@ -9,7 +9,7 @@ LOCALSTEPMAKE_TEMPLATES=mutopia
 
 include $(depth)/make/stepmake.make
 
-EXTRA_DIST_FILES +=  TODO
+EXTRA_DIST_FILES +=  
 
 
 
index 61a8eac1c2f9e22c2a05db1217535d693df16ddd..99e3b59d1d345bb54a5c351e837eabb0fda7ad9b 100644 (file)
@@ -6,7 +6,7 @@ date = "1868";
 title = "Diademata";
 metre = "6 6. 8 6. D";
 }
-\version "1.0.20";
+\version "1.0.21";
 
 sop=\notes \transpose c''{
        ees2  | ees4 ees4 g2 g2 |  c'1.  \bar "||";
index f208db7e2783f947b5ca65fa7033fe996ed6da0d..5078d01f70c0aa311abb12609a65e1008cd7e304 100644 (file)
@@ -4,7 +4,7 @@ composer = "Parry";
 metre = "10 10 . 11 11";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 sop = \notes \transpose c''{
        f4 | d' bes c' | f2 \bar "||";
index 378f138a096998e4fe25aa51439f9e6d74b95d30..6a7ba8e9b72331d76eecead736a7bcc0f35e6d10 100644 (file)
@@ -7,7 +7,7 @@ title = "Maccabaeus";
 metre = "10 11. 11 11. and refrain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 sop=\notes \relative c'' {
        b2 gis4. a8  |b2 e,2 |
index 3cf2fd36bf80efac4e99ababade33b85fdf0f163..9026a41041e3b2390a1bfb423ac31acf1c9abef9 100644 (file)
@@ -7,7 +7,7 @@ title = "Ode to Joy";
 metre = "8 7 8 7 D";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 sop=\notes \relative c'' {
        b4 b c d | d c b a | g g a b | b4. a8 a2 \bar "||";
index 4dd7397fa1eb9e7af2c323f62635ea346308431e..3c3a619e04151ce603bf6838e5bb1847527cb2f8 100644 (file)
@@ -8,7 +8,7 @@ poet = "Joseph Mohr";
 }
 
 
-\version "1.0.20";
+\version "1.0.21";
 
 global=\notes {
              \time 6/4;
index 5f7be0b367510b9f7e87a75d88e49d028ef34abe..f2b28b35814c33864b568060cb0027915aa64126 100644 (file)
@@ -4,7 +4,7 @@
        piece = "Allemande";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 global = \notes{
        \time 4/4;
index b5d1f9fd4bf2a02150d49241efec891d008404cc..5469e6bf5211349ac1e78640cf70b07f90e3e68f 100644 (file)
@@ -10,7 +10,7 @@
 %% 
 %% Noe liknende skjer ogsÃ¥ i mellom andre og tredje stemme i takt 28
 
-\version "1.0.20";
+\version "1.0.21";
 
 global = \notes{
        \time 2/4;
@@ -258,9 +258,9 @@ vTwo = \context Voice = voiceTwo \notes\relative c{
 % ???
 % What have i misunderstood? I want the note_head not to collide with
 % i hotehead i vOne
-       \property Voice.hshift = -1
+       \property Voice.horizontalNoteShift = -1
        d 
-       \property Voice.hshift = 0
+       \property Voice.horizontalNoteShift = 0
        c4 b8 |
 }
 vThree = \context Voice = voiceThree \notes\relative c{
index 209c1f86c4e32175d41ea5f004dcb2e0569a5f00..1a4ec05b4643309ffe4df783c6a9719c12104a4d 100644 (file)
@@ -10,7 +10,7 @@
   copyright =   "Public Domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 global = \notes {
        \time 4/4;
@@ -31,7 +31,7 @@ hoyreOpp = \notes\relative c''  {
        bes4 r16 [bes,16 bes. c32] [des8. des16] 
        \context Staff < 
                { \stemup e4 }
-               { \stemup \property Voice.hshift = 1 [des16 c32 bes c16. g32] }
+               { \stemup \property Voice.horizontalNoteShift = 1 [des16 c32 bes c16. g32] }
        >
 %4
        f4 \stemboth r16 [f g. as32] \stemup d,4 r16 [d g. es32] |
@@ -40,7 +40,7 @@ hoyreOpp = \notes\relative c''  {
        <[es8. c> <es16 c>]
        \context Staff <
                { \stemup fis4 }
-               { \stemup \property Voice.hshift = 1 [es16 d32 c d16. a32] }
+               { \stemup \property Voice.horizontalNoteShift = 1 [es16 d32 c d16. a32] }
        > g2
 }
 
@@ -80,7 +80,7 @@ venstreNed = \notes\relative c{
        c4 r c r | r c c r | c r r c | c r r16 [c c. bes32] bes4 |
        r16 [bes bes. as32] as4_"tr" g r16 [d' d. es32] |
        \context Staff <
-               { \stemdown \property Voice.hshift = 1 [f8. f16] [b,8. b16] g4 r | }
+               { \stemdown \property Voice.horizontalNoteShift = 1 [f8. f16] [b,8. b16] g4 r | }
                { \stemdown s4 g}
        >
        r g g2  
index 728f9e4ca8dbfea5d943bf3a1c2b7cd251312593..ecb73063349294e02f916e892709d670702a6b5e 100644 (file)
@@ -12,12 +12,12 @@ enteredby =  "jcn";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 % upper = \context Staff \notes\relative c {
 upper = \context Staff=upper \notes\relative c {
        \context Voice=i
-       \property Voice . textstyle = "italic"
+       \property Voice . textStyle = "italic"
 % rediculous dim...
 %      r16\p_"legato"\< g''-1( c-3 )e-5 r g,-1( c )e 
        r16\p\< g''-1( c-3 )e-5 r g,-1( c )e 
@@ -88,7 +88,7 @@ upper = \context Staff=upper \notes\relative c {
 % lower = \context Staff \notes\relative c{
 lower = \context Staff=lower \notes\relative c{
        \context Voice=i
-       \property Voice . textstyle = "roman"
+       \property Voice . textStyle = "roman"
        c4-5 e-3 g-\mordent^"(\\textsharp)" g,4 |
        d'4-\mordent-5 f-3 a-\mordent^"(\\textsharp)" a,4 |
        e'-5 e'-\mordent-1 a,-4 b-\upprall |
index dac1d147e2d7cc81fd6464c5d318ce64e3fd8b20..d77cc32d9e634c6818134aa1c4479f507c977416 100644 (file)
@@ -10,10 +10,10 @@ enteredby =  "jcn";
 copyright =     "public domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 upper = \context Staff \notes\relative c{
        \context Voice=i
-       \property Voice . textstyle = "italic"
+       \property Voice . textStyle = "italic"
        r8\mf c'-1( e-2 g-4  e-2 c-1 bes'-5 g-3 |
        )a-4\< c,-1( f-2 a-4  f c c'-5 a-3 |
        )b-4 g-1( b-2 d-4  b-2 g f'-5 \!d-3 |
@@ -88,7 +88,7 @@ lower = \context Staff \notes\relative c{
        g'-\mordent g, g'-\mordent g, |
        g'8 g,-5( b-4 d-2  b-4 g-5 f'!-1 d-3 |
        )e-2 c-4 e-2 g-1  e-3 c-5 c' e,-4 |
-       \property Voice . textstyle = "finger"
+       \property Voice . textStyle = "finger"
        f1^"3\\_1" ~ |
        f8 d-3 e-2 c-4 g'4-1 g,^"5\\_2" |
        <c1 c,1>
index cfb68c069553852c88521df19bc8e7a43f4a294b..e40697f63edbe8bf4d9c4e5b278696c550c1c5ec 100644 (file)
@@ -8,17 +8,17 @@ composer =    "Johann Sebastian Bach (1685-1750)";
 enteredby =    "jcn";
 copyright =    "public domain";
 }
-\version "1.0.20";
+\version "1.0.21";
 
 one = \context Staff \notes\relative c {
        \context Voice=i
-       \property Voice . textstyle = "italic"
+       \property Voice . textStyle = "italic"
 %      r16\p_"legato" 
        r16\p
-       \property Voice . textstyle = "finger"
+       \property Voice . textStyle = "finger"
        d'-1( fis-3 d-1  a'-2 b-3 cis-4 a-3 
        d-3 cis-2 d-1 e-2  d-1 fis-3 e-2 d-1 |
-       \property Voice . textstyle = "finger"
+       \property Voice . textStyle = "finger"
        \stemup 
        )cis4-2 fis-5 ~ fis8 fis-4 e4-3 ~ | 
        e16\< \stemboth a,16( cis a  d-2 e fis d-1 
@@ -30,13 +30,13 @@ one = \context Staff \notes\relative c {
        <a4-5( e> <fis-4 d-2> < )g!16-5 d> fis-2 g-3 a-4 
        \stemboth
        g-3 b a g |
-       \property Voice . textstyle = "italic"
+       \property Voice . textStyle = "italic"
 %      fis_"dim." e fis-3 g  fis-3 a-5 g fis 
        fis e fis-3 g  fis-3 a-5 g fis 
-       \property Voice . textstyle = "finger"
+       \property Voice . textStyle = "finger"
 %      e4-"2\\_5" ~ e16 e,( fis g  |
        e4 ~ e16 e,( fis g  |
-       \property Voice . textstyle = "italic"
+       \property Voice . textStyle = "italic"
 %      a-4_"dim." g-1 a b  a-2 c-4 b a 
        a-4 g-1 a b  a-2 c-4 b a 
        g-1 fis-2 g-3 a  g-3 b a g |
@@ -44,13 +44,13 @@ one = \context Staff \notes\relative c {
        )fis4\p 
        \skip 4*7; |
        %10
-       \property Voice . textstyle = "finger"
+       \property Voice . textStyle = "finger"
 %      d'4.\mf cis8-"4\\_5" ~ cis b4-5 a8-"4\\_5" ~ |
        d'4.\mf cis8 ~ cis b4-5 a8 ~ |
-       \property Voice . textstyle = "italic"
+       \property Voice . textStyle = "italic"
 %      a g4-5 fis8-4 ~ fis16 fis-4-"dim." e-3 d-2 
        a g4-5 fis8-4 ~ fis16 fis-4 e-3 d-2 
-       \property Voice . textstyle = "finger"
+       \property Voice . textStyle = "finger"
 %      e4-"3\\_5" ~ |
        e4 ~ |
        e16 e-5 d cis d4-5 ~ d16 d-5 cis b cis4-5 |
@@ -72,7 +72,7 @@ one = \context Staff \notes\relative c {
 two = \context Staff \notes\relative c{
        \context Voice=ii
        \stemup
-       \property Voice . textstyle = "finger"
+       \property Voice . textStyle = "finger"
        fis4-1( e8-2 a4 a4 gis8-2 | 
        ) a8
        \translator Staff=upper \stemdown
@@ -165,11 +165,11 @@ four = \context Staff \notes\relative c{
        \skip 1*9;
        \context Voice=iv
        \stemup
-       \property Voice.hshift = 1 
+       \property Voice.horizontalNoteShift = 1 
        %10
        a''2 fis |
        d s |
-%      \property Voice.hshift = 0 
+%      \property Voice.horizontalNoteShift = 0 
        \skip 1*2; |
        s4
        \translator Staff=lower \stemup
index 73060456769663832ed3c3dc5766b53aa50a0ffe..420a85766d21630215d42457a81e6fc4763b7763 100644 (file)
@@ -8,11 +8,11 @@ composer =    "Johann Sebastian Bach (1685-1750)";
 enteredby =    "jcn";
 copyright =    "public domain";
 }
-\version "1.0.20";
+\version "1.0.21";
 
 
 upper = \context Staff \notes\relative c{
-       \property Voice . textstyle = "italic"
+       \property Voice . textStyle = "italic"
        \context Voice=i
 %      d'8-1\p a'-5-"legato" f-3 d-1 a'-5 f-3 |
        d'8-1\p a'-5 f-3 d-1 a'-5 f-3 |
@@ -30,10 +30,10 @@ upper = \context Staff \notes\relative c{
        < 
                {
                        \stemup 
-                       \property Voice . textstyle = "roman"
+                       \property Voice . textStyle = "roman"
                        c4-\mordent^"(\\textsharp)"\p r r |
                        c4-\mordent^"(\\textsharp)" r r
-                       \property Voice . textstyle = "italic"
+                       \property Voice . textStyle = "italic"
                }
                \context Voice=ii { \stemdown a4 r r | a4 r r }
        > |
@@ -128,9 +128,9 @@ lower = \context Staff \notes\relative c{
        g!-5 es'-1 c-1 g-5 es'-1 c-1  |
        fis,4-5 r r 
        d-4( ) fis d-5 |
-       \property Voice . textstyle = "roman"
+       \property Voice . textStyle = "roman"
        g4-\mordent^"(\\textsharp)" r r8 f!8 |
-       \property Voice . textstyle = "italic"
+       \property Voice . textStyle = "italic"
        e4-\prall r r |
        f4-\mordent r r8 e |
        d4 r8 f-1 e d |
index 2aec8613d02fd89086fa4a09a8a5fc94d3316016..f0259058a3343caed8c743c0ded135e228dead5a 100644 (file)
@@ -8,7 +8,7 @@ composer =      "Johann Sebastian Bach (1685-1750)";
 enteredby =    "jcn";
 copyright =    "public domain";
 }
-\version "1.0.20";
+\version "1.0.21";
 
 
 one = \context Staff \notes\relative c{
@@ -67,7 +67,7 @@ three = \context Staff \notes\relative c{
        e8.-\mordent f16  d8.-\prall-4 c16-5 \stemboth )c4.-5 d8-4 |
        \stemdown
        e4 ~ e16 f-2( e-3 d-4  cis a b cis-3  d-4 e-3 f-2 d-4 |
-       \property Voice . textstyle = "finger"
+       \property Voice . textStyle = "finger"
        )bes!2-"5\\_4" a ~ |
        a a |
        d, cis'-5 |
@@ -82,10 +82,10 @@ four = \context Staff \notes\relative c{
        d2-3 cis-4 |
        \skip 1*3; |
        %5
-       \translator Staff=upper \stemup \property Voice.hshift = 1 
+       \translator Staff=upper \stemup \property Voice.horizontalNoteShift = 1 
        a'4 gis-2 ~ gis16 gis-3 fis e 
        \skip 4*1;
-       \translator Staff=lower \stemdown \property Voice.hshift = 0 
+       \translator Staff=lower \stemdown \property Voice.horizontalNoteShift = 0 
        \stemup
        b2-1 a-1 |
        g a4. gis16 a |
index 229585501f9cc10f2f2e9fffd0b7710e175c22a7..632aad05100094901083603935721570a387d1b3 100644 (file)
@@ -15,7 +15,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.16";
+\version "1.0.21";
 
 \include "allemande-urtext.ly";
 
@@ -23,14 +23,14 @@ allemande_cello_global = \notes{
        \time 4/4;
        \key f;
        \clef bass;
-       \repeat 2 {
+       \repeat "semi" 2 {
                \partial 16;
                s16
                s1*11 |
                s2 s4 s8
                \partial 16*15;
                s16
-       } \repeat 2 {
+       } \repeat "semi" 2 {
                % urg
                s32 \partial 16; s32
                s1*11
@@ -53,6 +53,7 @@ allemande_cello_staff = \context Staff <
        \paper{
                \include "scs-paper.ly";
                gourlay_maxmeasures = 3.0;
+               
        }
        \midi{ \tempo 4 = 45; }
        \header{ piece = "Allemande"; }
index a1215a3363cc2c70db6abe488db2b14f32e841b5..3b4fda0013f32035aee16d3cde18e2aec6d69dcb 100644 (file)
@@ -11,6 +11,8 @@ n = { \slurnormal }
 d = { \slurdotted }
 comma = "\\sethuge\\ \\ ,"
 
+phrasingcomma = { }  % { \bar "empty"; \mark "'"; \nobreak }
+
 allemande_a = \context Staff \notes \relative c {
        \context Voice=i
        \stemup
@@ -55,12 +57,12 @@ allemande_a = \context Staff \notes \relative c {
        \n a()f' g,()f e g'( a )bes |
        % :-(
        % bes( a g )f^\comma 
-       bes( a g )f^"\\sethuge{\\ \\ '}" 
+       bes( a g )f  \phrasingcomma
        a()e f()d bes d(f)a d()a bes()g |
        %21
        a,(\n)g'(\n cis())d e()g, a()e f()d bes()d \d gis, f'(e)d |
        % \n d( cis b )a^\comma c(a)fis d' c a( b )d 
-       \n d( cis b )a^"\\sethuge\\ \\ ," 
+       \n d( cis b )a \phrasingcomma %^"\\sethuge\\ \\ ," 
        c(a)fis d' c a( b )d 
        f!(d )gis, d' |
        %23
@@ -104,4 +106,4 @@ allemande = \context Staff \notes<
 >
 
 
-\version "1.0.20";
+\version "1.0.21";
index 2c80b4b2336e798eba2b818d2d600d20e3450061..f2797a3ca25d4c4660f731f085ce65ee76912de8 100644 (file)
@@ -91,4 +91,4 @@ courante = \context Staff \notes<
  \$courante_b
 >
 
-\version "1.0.20";
+\version "1.0.21";
index a7e752eec8ad5b74bd7e773f5d97b185e2d30789..fe92ef610cf12f9db89eeaeb2ab9733802225c14 100644 (file)
@@ -106,4 +106,4 @@ gigue = \notes<
        \$gigue_b
 >
 
-\version "1.0.20";
+\version "1.0.21";
index d7003409d47a87ca8ee07daded9ffe91c98390ae..0890faa6927ffea09ea3982ab43d69187dea4ae0 100644 (file)
@@ -16,7 +16,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.16";
+\version "1.0.21";
 
 \include "menuetto-urtext.ly";
 
@@ -24,9 +24,10 @@ menuetto_i_cello_global = \notes{
        \time 3/4;
        \key f;
        \clef bass;
-       \repeat 2 {
+       \repeat    "semi" 2 {
                \skip 2.*8;
-       } \repeat 2 {
+       }
+       \repeat "semi" 2 {
                \skip 2.*1;
                \slurdotted
                \skip 2.*14;
@@ -79,9 +80,10 @@ menuetto_ii_cello_global = \notes{
        \time 3/4;
        \key D;
        \clef bass;
-       \repeat 2 {
+       \repeat "semi" 2 {
                \skip 2.*8;
-       } \repeat 2 {
+       }
+       \repeat  "semi" 2 {
                \skip 2.*1;
                \slurdotted
                \skip 2.*14;
@@ -101,6 +103,7 @@ menuetto_ii_cello_staff = \context Staff <
        \paper{
                \include "scs-paper.ly";
                gourlay_maxmeasures = 7.0;
+               
                \translator{
                        \VoiceContext
                        beamAutoEnd_8 = "3/4";
index da320dce164a639844667c8728aaece5038f0a45..fb729e383e611bff1c5bab7a94eaa467fda1a012 100644 (file)
@@ -21,7 +21,7 @@ menuetto_i_a = \context Staff \notes \relative c {
        <a2\f e'> d8( e16 )f |
        \slurdotted
        e8( d cis )e a,()g |
-       a4 ~ d cis |
+       a4 () d cis |
        g'8( f e )f d() c |
        %13
        bes2 c4 |
@@ -35,7 +35,7 @@ menuetto_i_a = \context Staff \notes \relative c {
 %      <bes,4 g' d'> <c, g' c> < d,8 bes'(> )a |
        <d'4 g, bes,> <c g c,> bes8()a |
        c8( bes a )bes g()bes |
-       d4 ~ cis d |
+       d4 () cis d |
        g,8 f g e f4 |
        g,8 g' <{e4.^\trill d8 } a4.> ~ |
        <d2. a d,> |
@@ -57,7 +57,7 @@ menuetto_i_b = \context Staff \notes \relative c {
        g8 \skip 8*5; |
        f2 e4
        d8 \skip 8*5; |
-       g4 ~ f e
+       g4 () f e
        f8 \skip 8*5; |
        \skip 2.*3; |
        es8 \skip 8*3; d4 |
@@ -112,8 +112,8 @@ menuetto_i_b_voice_urg_urg = \notes<
 >
 
 menuetto_i = \context Staff \notes<
-       { \$menuetto_i_a_voice_urg_urg }
-       { \$menuetto_i_b_voice_urg_urg }
+       \repeat "semi" 2 { \$menuetto_i_a_voice_urg_urg }
+       \repeat "semi" 2 { \$menuetto_i_b_voice_urg_urg }
 >
 
 menuetto_ii = \context Staff\notes \relative c {
@@ -156,4 +156,4 @@ menuetto_ii = \context Staff\notes \relative c {
        d2.
 }
 
-\version "1.0.20";
+\version "1.0.21";
index 1f6b58cb5fdc4b66c7f883649488844bca3d24db..7b5681127149df0e10812eb639517a86198abfc7 100644 (file)
@@ -15,7 +15,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "prelude-urtext.ly";
 
index d3237c389f7beee3c0de6197de79ac21570fe5c8..7445345cd2b017a464af32cf26798a804fd372f6 100644 (file)
@@ -280,4 +280,4 @@ prelude = \context Staff \notes<
        \$prelude_b
 >
 
-\version "1.0.20";
+\version "1.0.21";
index b68aafee14e38f74f629ba1510a9e6cd42be502a..36defc819866cf63605d7775244263c9e7c445cc 100644 (file)
@@ -15,7 +15,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "prelude-urtext.ly";
 
index 1ecb556ba48deb347e406bdb3ca37c355582ce06..dba20e9cbcf3f51cba0abe18330012df5a9dd9b0 100644 (file)
@@ -92,4 +92,4 @@ sarabande = \context Staff \notes<
        \$sarabande_b
 >
 
-\version "1.0.20";
+\version "1.0.21";
index 41f00eb5eb8eed1b82b2ce7f0a72822e60c68126..61e33e7e0df6a4a3e10b699e7798e671f6c1e156 100644 (file)
@@ -16,4 +16,4 @@ $viola_i_staff = \context Staff = viola <
        \clef alto;
        \$global_i
 >
-\version "1.0.20";
+\version "1.0.21";
index 8634e194fad8217f83ca5b8f9d1988622886ca6e..940f74010357751b0086078ea66b67dd2201224e 100644 (file)
@@ -31,10 +31,10 @@ $violino_i = \notes\relative c'' {
 $violino_i_staff = \context Staff = violino <
        <
                %urg
-               % \notes\property Voice.textstyle = "large" s4^"Moderato"
-               % \notes {s4. \property Voice.textstyle = "large" s4^"Moderato"}
+               % \notes\property Voice.textStyle = "large" s4^"Moderato"
+               % \notes {s4. \property Voice.textStyle = "large" s4^"Moderato"}
                \$violino_i
        >
        \$global_i
 >
-\version "1.0.20";
+\version "1.0.21";
index 97081d2e98253a250281208dd8ce807da1df7856..7295ee78d02143300f4a8bfe8a13064869731b1e 100644 (file)
@@ -30,4 +30,4 @@ copyright =    "Public Domain";
        }
 }
 
-\version "1.0.20";
+\version "1.0.21";
index 3443a8d4aa974dc67b72aa3255f525e458e959c4..315135b5b1270ca2545d9a8422addf439662538d 100644 (file)
@@ -30,4 +30,4 @@ copyright =    "Public Domain";
        }
 }
 
-\version "1.0.20";
+\version "1.0.21";
index cd0938f9612789e035c1f0793cd4f83384ff94c5..18900b161779151effb57e5f28c6e213b4be4e8d 100644 (file)
@@ -28,4 +28,4 @@ $violoncello_i_staff = \context Staff = violoncello <
        \clef bass;
        \$global_i
 >
-\version "1.0.20";
+\version "1.0.21";
index 8da979849b45da098689e2de3abf1ec330dc7d0d..b00149f49561fe5571e1d625e5184e5410be604d 100644 (file)
@@ -11,7 +11,7 @@ copyright =    "Public Domain";
 %{
        
 %}
-\version "1.0.20";
+\version "1.0.21";
 
 
 global = 
index 606dfabb852d7554ba431aae58e17a315077be0f..e8e00e53f560318dd20a27e0b2d97d5abdc5b585 100644 (file)
@@ -19,7 +19,7 @@
    * auto beaming
 %}
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "nederlands.ly"                 % for correct parsing of note names
 
index 6f748109918dc2144e116d8399a7dbec32a6c3a9..e0d8f711f72cf387957a5608dab92b6ea930f9ca 100644 (file)
@@ -8,7 +8,7 @@ enteredby =      "Shay Rojansky";
 copyright =     "Public Domain";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 global = 
     \notes {
index 8637d416f426ff5e8e45ee0325689c0f446b6490..7d78a101be93550b9f7bc865f28d4aa99323a480 100644 (file)
@@ -41,7 +41,7 @@ global = \notes{
 }
 
 tempi = \notes{
-       \property Voice.textstyle = "large"
+       \property Voice.textStyle = "large"
         s8^"Allegro"
        
 }
@@ -383,4 +383,4 @@ bassocontinuo = \notes \relative c'{
         \midi{ \tempo 4 = 100; }
 }
 
-\version "1.0.20";
+\version "1.0.21";
index a7320929c4bc64d55c99e4bdec44a69367d7c201..f31efdade56be67a189e35071f9708d07c7c7e8f 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 corI=\notes\relative c'' {
 \key c;
index f2de39bfbe038eb03e2c5abaa5e85860b5140dd7..b679595ffc54fa165d65656e09da3b56318dacb8 100644 (file)
@@ -17,7 +17,7 @@ global=\notes {
 
 marks=\notes {
 \time 3/4;
-\property Voice.textstyle = "Large"
+\property Voice.textStyle = "Large"
 \skip 2.*31;
 s2 s8 s^"\\Allegromoltovivace"
 \time 2/4;
index 32616d92f0c7138f0f789a5a1ce4febcae4e3586..beb95deccd95f5983d6fc0c3179fd0cd58d9e477 100644 (file)
@@ -11,7 +11,7 @@ copyright =   "Mats Bengtsson, 1999. Free circulation permitted and " +
 % Process with 'ly2dvi -s parts.ly' to get the separate parts.
 
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "global.ly"
 \include "wood.ly"
@@ -29,11 +29,11 @@ my_paper = \paper {
     markScriptPadding = "6.0";
     barNumberScriptPadding = "11.0";
     textScriptPadding = 5.0;
-    textstyle = "italic";
+    textStyle = "italic";
     textEmptyDimension = 1;
   }
 }
-%{
+
 \score{
   \context Staff <
     \context Voice <
@@ -54,7 +54,7 @@ my_paper = \paper {
     \tempo 4=120;
   }
 }
-%}
+
 \score{
   \context Staff <
     \context Voice <
@@ -75,7 +75,7 @@ my_paper = \paper {
     \tempo 4=120;
   }
 }
-%{
+
 \score{
   \context Voice <
     \globalNoKey
@@ -325,4 +325,3 @@ my_paper = \paper {
     \tempo 4=120;
   }
 }
-%}
\ No newline at end of file
index 64fa9c6fbec08afa9e870d4b0d08cf507affa3f6..878267faea0e67518589386879b7b676c3b5c137 100644 (file)
@@ -8,7 +8,7 @@ copyright =     "Mats Bengtsson, 1999. Free circulation permitted and " +
                "Statens Musikbibliotek, Stockholm, Sweden";
 }
 
-\version "1.0.20";
+\version "1.0.21";
 
 \include "global.ly"
 \include "wood.ly"
@@ -133,7 +133,7 @@ copyright = "Mats Bengtsson, 1999. Free circulation permitted and " +
     \translator { \StaffContext
        \consists "Staff_margin_engraver";
         marginScriptPadding = "15.0";
-       textstyle = "italic";
+       textStyle = "italic";
        textScriptPadding = 5.0;
         textEmptyDimension = 1;
     }
index 168c1fa52f483aeba5a13c426eaa157baffb9431..f53c84e4f879ce037e69af39d5b33a489a091356 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 viI=\notes\relative c'' {
 
index 6276f9af7b97cfe5d3c06afb28a8ed6b8ed890c7..8a486eff8f9a3113e0f9f21b2709160fd813fe16 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.20";
+\version "1.0.21";
 
 oboe=\notes\relative c'' {
 \clef "treble";
diff --git a/mutopia/TODO b/mutopia/TODO
deleted file mode 100644 (file)
index 5b6b806..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-       - more composers > 70y +
-       - (more) free composers
-       - Beethoven's Coriolan: brass and woodwind 
-       - more Cello Suites
index 8eab69c625e578350e144e7ff423b81e12a3bbf6..88b7220fd64f508249371817739f14526fc1ff59 100644 (file)
@@ -13,7 +13,7 @@ Tested Features: cadenza mode
 Ugh.. Wish we had grace notes....  It adds another dimension to this
 piece of music.  %}
 
-\version "1.0.20";
+\version "1.0.21";
 
 
 cad = \notes  \relative c' {
index a5d5b6cd8fd0cc8a12d63d87928f53c37fed3b60..dda8a525ee7f15d9677f6c3334b3661d9d4a477d 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 }
 
 
-\version "1.0.20";
+\version "1.0.21";
 
 allegro =
        \notes
index 432a60cc1b0dc59c03634aaf227557df08584be4..e8b434fe69728c05ce5809192222e3af27feaa0d 100644 (file)
@@ -45,7 +45,7 @@ Voice engraver by uncommenting the lines in the paper
 definition below. --MB
 %} 
 
-\version "1.0.18";
+\version "1.0.21";
 
 global = \notes {
   \property StaffGroup.timeSignatureStyle = "old"
index 6d52d4ccae555ec2cbbb7a17635ca29f42c1f504..0c89debf8b1f5bdadae189e7c1d72e889ceb5905 100644 (file)
@@ -8,7 +8,7 @@ enteredby =      "jcn";
 copyright =     "public domain";
 latexheaders=    "headers";
 } 
-\version "1.0.20";
+\version "1.0.21";
 
 
 
@@ -17,16 +17,16 @@ latexheaders=    "headers";
 hoboonestart = \notes
   \relative c'{
 % ugh: cant copy: allegro/primo tempo
-       \property Voice . textstyle =  "large"
+       \property Voice . textStyle =  "large"
        [es''16-.^"Allegro" es-. es-. es-.] [es8-. d-.] |
-       \property Voice . textstyle =  "italic"
+       \property Voice . textStyle =  "italic"
 }
 
 hobooneintro = \notes  \relative c'{
 
-%      \property Voice . textstyle =  "roman"
+%      \property Voice . textStyle =  "roman"
 %      [es''16-.-"Allegro" es-. es-. es-.] [es8-. d-.] |
-%      \property Voice . textstyle =  "italic"
+%      \property Voice . textStyle =  "italic"
        [f''8.-> es16(] [)d8 c-.] |
        [bes16( c d es] [)d8 c-.] |
        [bes-. as->~] [as16( g f g] |
@@ -94,18 +94,18 @@ hoboonemid = \notes \relative c'{
        [d16-. d-. d-. d-.] [d8.-. es16->] |
        [d16 d d d] [d8 es16-.] r16-\fermata^"court"^"tr\\`es" |
        % Un peu plus lent.
-       \property Voice . textstyle =  "bold"
+       \property Voice . textStyle =  "bold"
 
 % ugh
-%      d4(\<^"Un peu plus lent" \property Voice . textstyle =  "italic _"tr\\`es \\'el\\'egant"
+%      d4(\<^"Un peu plus lent" \property Voice . textStyle =  "italic _"tr\\`es \\'el\\'egant"
 %      d4(\^"Un peu plus lent et \\'el\\'egant"<
-       \property Voice . textstyle =  "italic" 
+       \property Voice . textStyle =  "italic" 
        d4(\<
        [e8 \!fis8] |
 %      [)b-. a-.] [g16( fis e )d] |
-       \property Voice . textstyle =  "bold"
+       \property Voice . textStyle =  "bold"
        [)b-.^"Un peu plus lent et \\'el\\'egant" a-.] [g,,16( fis' e )d] |
-       \property Voice . textstyle =  "italic" 
+       \property Voice . textStyle =  "italic" 
        [d( c b\< c] [)\!fis'8-. e-.] |
        d,,4-> ~ [d16 e( fis g] |
        [a b\< d fis] [)\!a8-. g-.] |
@@ -141,9 +141,9 @@ hoboonemid = \notes \relative c'{
 hoboonesecondstart = \notes   \relative c'{
 
 % ugh: cant copy: allegro/primo tempo
-       \property Voice . textstyle =  "large"
+       \property Voice . textStyle =  "large"
        [es''16-.\ff^"Tempo 1$^o$" es-. es-. es-.] [es8-. d-.] |
-       \property Voice . textstyle =  "italic"
+       \property Voice . textStyle =  "italic"
        
 }
        
@@ -182,7 +182,7 @@ hoboonelast = \notes   \relative c'{
        [bes'16-.\ff bes-. bes-. bes-.] [bes8-. ces16->] r16^"court"-\fermata |
        % ugh: eight measures rest (ugh: r1 -> four beats...)
        % eiht measures rest..
-       \property Voice . textstyle =  "bold"
+       \property Voice . textStyle =  "bold"
 %      r2^"Un peu plus lent et \\'el\\'egant"
        R2*8
 %      r4 r8\p bes |
@@ -190,7 +190,7 @@ hoboonelast = \notes   \relative c'{
        r8\p bes,, |
 %      g2->^"Un peu plus lent et \\'el\\'egant" ~ |
        g2-> ~ |
-       \property Voice . textstyle =  "italic"
+       \property Voice . textStyle =  "italic"
        g8 r r c |
        c2-> ~ |
        c8 r r bes'\f |
@@ -220,9 +220,9 @@ hoboonelast = \notes   \relative c'{
        g8-. r f4-> ~ |
        [f8 es-. ces8.-. as16-.] |
        % `a deux
-       \property Voice . textstyle =  "large"
+       \property Voice . textStyle =  "large"
        [ces8.->^"Plus vite" bes16-.(] [a bes es d] |
-       \property Voice . textstyle =  "italic"
+       \property Voice . textStyle =  "italic"
        [)c!8.-> bes16] [a( bes es )d] |
        [c->( bes es )d] [c->( bes es )d] |
        % same measure
@@ -231,9 +231,9 @@ hoboonelast = \notes   \relative c'{
        [g )f d( es] [f g as a] |
        [c )bes bes,( c] [d es f g] |
        [as g f g] [as bes c d] |
-       \property Voice . textstyle =  "large"
+       \property Voice . textStyle =  "large"
        [)es-.^"Tempo 1$^o$" g,-. g-. g-.] [g8-. g-.] |
-       \property Voice . textstyle =  "italic"
+       \property Voice . textStyle =  "italic"
        bes4.-> g8-. |
        gis2->( |
        )as! |
@@ -248,9 +248,9 @@ hoboonelast = \notes   \relative c'{
        g4.-> g8-. |
        es4.-> es8-. |
        bes4.-> bes8-. |
-       \property Voice . textstyle =  "large"
+       \property Voice . textStyle =  "large"
        g'4.->^"Presto" g8-. |
-       \property Voice . textstyle =  "italic"
+       \property Voice . textStyle =  "italic"
        es4.-> es8-. |
        [bes-. bes-. es-. g-.] |
        [bes-. bes,-. es-. g-.] |
index d5f9845de1ff1893b1689e9412819177bbf59d42..718515e4ffdc754a7e70d94a461a81c7f2fa6d38 100644 (file)
    (("Clef_item"  "Span_bar") . (minimum_space 3.7))
    (("Time_signature" "Span_bar") . (minimum_space 2.0))
    (("Key_item"  "Span_bar") . (minimum_space 2.5))
-   (("Staff_bar" "Time_signature") . (minimum_space 1.0))
+   (("Staff_bar" "Time_signature") . (minimum_space 2.0))
    (("Time_signature" "begin-of-note") . (extra_space 1.0))    ; Huh? see twinkle.ly
-   (("Key_item" "begin-of-note") . (extra_space 3.0))
+   (("Key_item" "begin-of-note") . (extra_space 2.5))
    (("Staff_bar" "begin-of-note") . (extra_space 1.0))
    (("Clef_item" "begin-of-note") . (minimum_space 5.0))
    )
index b818d04351f6e306471b7c192011d2a52e5a6aaf..b6827083f359be3e254246eafbee95817cd7a8fe 100644 (file)
@@ -8,7 +8,7 @@
 # 
 
 program_name = 'abc-to-ly'
-version = '0.1'
+version = '@TOPLEVEL_VERSION@'
 import __main__
 import getopt
 import sys
@@ -22,6 +22,7 @@ global_voice_stuff = []
 default_len = 4
 global_key = [0] * 7                   # UGH
 DIGITS='0123456789'
+HSPACE=' \t'
 
 def gcd (a, b):
        while  a % b:
@@ -171,6 +172,30 @@ def compute_key (k):
 
        return key_table
 
+tup_lookup = {
+       '3' : '2/3',
+       '4' : '4/3',
+       '6' : '4/6',
+       }
+
+
+def try_parse_tuplet_begin (str, state):
+       if str and str[0] in DIGITS:
+               dig = str[0]
+               str = str[1:]
+               state.parsing_tuplet = 1
+               
+               print '\\times %s {' % tup_lookup[dig]
+       return str
+
+def  try_parse_group_end (str, state):
+       if str and str[0] in HSPACE:
+               str = str[1:]
+               if state.parsing_tuplet:
+                       state.parsing_tuplet = 0
+                       print '}'
+       return str
+
 def try_parse_header_line (ln):
        m = re.match ('^(.): *(.*)$', ln)
 
@@ -180,6 +205,8 @@ def try_parse_header_line (ln):
                if g == 'T':
                        header['title'] =  a
                if g == 'M':
+                       if a == 'C':
+                               a = '4/4'
                        global_voice_stuff.append ('\\time %s;' % a)
                if g == 'K':
                        __main__.global_key  =compute_key (a)# ugh.
@@ -228,7 +255,7 @@ def octave_to_mudela_quotes (o):
 
 def parse_num (str):
        durstr = ''
-       while str[0] in DIGITS:
+       while str and str[0] in DIGITS:
                durstr = durstr + str[0]
                str = str[1:]
 
@@ -252,6 +279,7 @@ class Parser_state:
        def __init__ (self):
                self.next_dots = 0
                self.next_den = 1
+               self.parsing_tuplet = 0
 
 
 # WAT IS ABC EEN ONTZETTENDE PROGRAMMEERPOEP  !
@@ -259,7 +287,10 @@ def try_parse_note (str, parser_state):
        mud = ''
 
        slur_begin =0
-       if str[0] == '(':
+       if not str:
+               return str
+       
+       if  str[0] == '(':
                slur_begin = 1
                str = str[1:]
 
@@ -342,34 +373,75 @@ def junk_space (str):
 
        return str
 
+
+def try_parse_guitar_chord (str):
+       if str and str[0] == '"':
+               str = str[1:]
+               gc = ''
+               while str and str[0] != '"':
+                       gc = gc + str[0]
+                       str = str[1:]
+                       
+               if str:
+                       str = str[1:]
+
+               print "guitar chord: %s\n" % gc
+               
+       return str
+
 def try_parse_escape (str):
-       if str [0] != '\\':
+       if not str or str [0] != '\\':
                return str
        
        str = str[1:]
-       if str[0] == 'K':
-               compute_key ()
+       if str and str[0] == 'K':
+               key_table = compute_key ()
 
        return str
 
 
 def try_parse_bar (str):
-       if str[0] == '|':
+       if str and str[0] == '|':
+               bs = ''
                str = str[1:]
+               if str:
+                       if  str[0] == ']':
+                               bs = '|.'
+                       if str[0] == '|':
+                               bs = '||'
+
+               if bs:
+                       print '\\bar "%s";' % bs
        return str
        
 
+def try_parse_chord_delims (str):
+       if str and str[0] == '[':
+               str = str[1:]
+               print '<'
+
+       if str and str[0] == ']':
+               str = str[1:]
+               print '>'
+
+       return str
 
+# Try nibbling characters off until the line doesn't change.
 def try_parse_body_line (ln, state):
        prev_ln = ''
-       while ln and  ln != prev_ln:
+       while ln != prev_ln:
                prev_ln = ln
+               ln = try_parse_chord_delims (ln)
                ln = try_parse_note  (ln, state)
                ln = try_parse_bar (ln)
-               ln = junk_space (ln)
                ln = try_parse_escape (ln)
+               ln = try_parse_guitar_chord (ln)
+               ln = try_parse_tuplet_begin (ln, state)
+               ln = try_parse_group_end (ln, state)
+               ln = junk_space (ln)
+               
        if ln:
-               print 'Huh %s' % ln
+               print 'Huh?  Don\'t understand `%s\'' % ln
                
 
 
@@ -396,12 +468,14 @@ def parse_file (fn):
 
 
 def identify():
-       print '%s %s' % (program_name, version)
+       print '%s from LilyPond %s' % (program_name, version)
 
 def help ():
        print r"""
 This is a disfunctional ABC to mudela convertor.  It only gulps input, and
-says huh when confused.  Does not do chords.  Go ahead and fix me.
+says huh when confused.  Go ahead and fix me.
+
+Usage: abc-2-ly INPUTFILE
 
 -h, --help   this help.
 """
index ea0ed1e9211d11e137fce95b9ea8eb4022af68b4..4909d29dc743246667837f879a5e893b4a3f9000 100644 (file)
@@ -308,7 +308,7 @@ if 1:
                return newlines
        
        conversions.append ((1,0,18), conv,
-                           '\\repeat NUM Music Alternative -> \repeat FOLDSTR Music Alternative')
+                           '\\repeat NUM Music Alternative -> \\repeat FOLDSTR Music Alternative')
 
 if 1:
        def conv(lines):
@@ -338,6 +338,18 @@ if 1:
                            '{,tie,slur}ydirection -> {v,tieV,slurV}erticalDirection')
 
 
+if 1:
+       def conv(lines):
+               newlines =[]
+               for x in lines:
+                       x =  re.sub ('hshift','horizontalNoteShift', x)
+                       newlines.append (x)
+               return newlines
+
+       conversions.append ((1,0,21), conv,
+                           'hshift -> horizontalNoteShift')
+
+
 
 ############################