]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.1.44
authorfred <fred>
Tue, 26 Mar 2002 21:49:48 +0000 (21:49 +0000)
committerfred <fred>
Tue, 26 Mar 2002 21:49:48 +0000 (21:49 +0000)
216 files changed:
Documentation/GNUmakefile
Documentation/gnu-music.yo
Documentation/tex/refman.yo
Documentation/tex/tutorial.yo
TASKS [new file with mode: 0644]
input/bugs/Overture.ly
input/bugs/bar-space.ly
input/example-3.ly
input/just-friends.ly
input/keys.ly
input/kortjakje.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/abbrev.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.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/collision.cc
lily/include/col-info.hh
lily/include/lily-proto.hh
lily/include/line-of-score.hh
lily/include/p-col.hh
lily/include/rod.hh
lily/include/spacing-engraver.hh [new file with mode: 0644]
lily/include/spacing-spanner.hh
lily/include/spanner.hh
lily/include/spring-spacer.hh
lily/include/spring.hh [new file with mode: 0644]
lily/include/tie.hh
lily/line-of-score.cc
lily/local-key-engraver.cc
lily/p-col.cc
lily/parser.yy
lily/rod.cc
lily/slur-engraver.cc
lily/spacing-engraver.cc
lily/spacing-spanner.cc [new file with mode: 0644]
lily/spanner.cc
lily/spring-spacer.cc
lily/spring.cc [new file with mode: 0644]
lily/stem-engraver.cc
lily/tie-engraver.cc
lily/tie.cc
ly/book-fragment.ly
ly/book-init.ly
ly/center-fragment.ly
ly/center.ly
ly/engraver.ly
ly/fragment.ly
ly/init.fly
ly/init.ly
ly/init.sly
ly/paper16.ly
ly/paper20.ly
ly/property.ly
make/toplevel.make.in
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/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-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-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/parts.ly
mutopia/N.W.Gade/score.ly
mutopia/N.W.Gade/strings.ly
mutopia/N.W.Gade/wood.ly
mutopia/W.A.Mozart/cadenza.ly
mutopia/W.A.Mozart/horn-concerto-3.ly
mutopia/los-toros-oboe.ly
scripts/abc-2-ly.py [new file with mode: 0644]
scripts/convert-mudela.py
scripts/mup-to-ly.py

index 01dfbe9578475c505ea0a7a618ad671167cce78c..b6e67c58bc23c0133217330c04a9d17e19170fb9 100644 (file)
@@ -8,7 +8,7 @@ STEPMAKE_TEMPLATES=documentation
 README_TOP_FILES=NEWS DEDICATION TODO ANNOUNCE-0.1 AIMS
 INFO_FILES = $(wildcard $(outdir)/$(package).info*)
 
-EXTRA_DIST_FILES = gnu-music-history TODO 
+
 
 BLURBS=BLURB COPERTINA FLAPTEKST
 
index 5e57da7854db907c39dd6b61d63d0305edea9feb..4e6e3148edc81eef93b454eb2a07484c100a21f4 100644 (file)
@@ -2,22 +2,7 @@ article(GNU Music project - manifesto)(Han-Wen Nienhuys and Jan Nieuwenhuizen)()
 
 sect(Goal)
 
-Provide musicians with free software for
 
-itemize(
-it()composing
-it()engraving
-it()playing
-it()sequencing
-it()interchanging music
-it()arranging
-it()performing
-it()Metacomposing
-)
-
-These systems should encourage laymen to take up composing, in the
-same way that GNU tools have created a whole new generation of
-programmers.
 
 The public deserves free tools for composing and printing.
 
index eba1f1d98f11cfafbb13b1c142c6df2da7476743..121f41f66d3140021b72268bf2b6fa34542f42e2 100644 (file)
@@ -976,6 +976,9 @@ END OF COMMENT  )
 
 sect(Repeats)
 
+
+OUTDATED. FIXME
+
 In order to specify repeats, use the code(\repeat) keyword.  By
 default, repeats are printed with repeat symbols.  
 mudela(fragment,verbatim,center)(
@@ -1553,9 +1556,6 @@ than the music given in an code(\alternative).
 dit(code(barNonAuto)) If set to 1 then bar lines will not be printed
 automatically; they must be explicitly created with code(\bar) keywords.
 
-dit(code(unfoldRepeats)) If set to 1 then repeats will be unfolded.
-Otherwise, they will be printed using repeat symbols.  
 dit(code(defaultClef)) Determines the default clef.  See code(\clef)
 keyword.
 
index d8f9f5e28d37f77cc584117a34bf765e851f2691..883447e72e6e330b7e9845c9f9baa6680176b062 100644 (file)
@@ -1161,12 +1161,12 @@ property of the context code(Voice).  The context code(Voice) has an
 attribute whose value is the direction to use for stems.  You can
 change it to `up' by issuing the following phrase:
 verb(
-  \property "Voice"."ydirection" = "1"
+  \property "Voice"."verticalDirection" = "1"
 )
 
 This command should be read as ``change the property called
-code(ydirection) within the current code(Voice) context to the value
-code(-1).''  For the property code(ydirection) the value code(1) means
+code(verticalDirection) within the current code(Voice) context to the value
+code(-1).''  For the property code(verticalDirection) the value code(1) means
 `up', and code(-1) means `down'. So, the
 proper way to code the polyphonic example is given in
 bind(Figure)ref(tutorial:multi-voice-fig).
@@ -1175,10 +1175,10 @@ latexcommand(\begin{figure}[h])
 mudela(fragment,verbatim,center)(
   \context "Staff" <
     \context "Voice" =  "one"  {
-      \property Voice.ydirection = "1"
+      \property Voice.verticalDirection = "1"
       r4 as'4 () as'4 g'4 }
     \context "Voice" =  "two"  {
-      \property Voice.ydirection = "-1"
+      \property Voice.verticalDirection = "-1"
       g'2 f'4 e'4 }
   >
 )
@@ -1330,8 +1330,8 @@ definition.  To remedy this, we can use an identifier to capture the
 meaning of a code(\property).
 
 mudela(verbatim)(
-stemup = \property Voice.ydirection = "1"
-stemdown = \property Voice.ydirection = "-1"
+stemup = \property Voice.verticalDirection = "1"
+stemdown = \property Voice.verticalDirection = "-1"
 shift = \property Voice.hshift = "1"
 \score {
   \context "Staff" \notes <
@@ -1350,7 +1350,6 @@ a real command like code(\clef) or code(\bar).  Real commands are
 hardcoded into the language and they have to be terminated by
 semicolons.
 
-
 sect(Sound output)
 label(tutorial:sound)
 
diff --git a/TASKS b/TASKS
new file mode 100644 (file)
index 0000000..b52bec1
--- /dev/null
+++ b/TASKS
@@ -0,0 +1,50 @@
+Call for Volunteers --  The Mutopia project seeks YOUR help.
+
+
+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.
+
+
+
+WHAT NEEDS TO BE DONE
+
+- write legal faq documents
+
+- setup submission guidelines, 
+
+- acquire mutopia.org domain.
+
+- setup FTP server
+
+- cooperate with ABC folks, ftp.gmd.de
+
+
+
+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.
+
+A project leader.
+
+
+
+WHO ARE WE?
+
+We are Han-Wen Nienhuys and Jan Nieuwenhuizen.  We are working on the
+GNU project music typesetter, a program that does for sheet music what
+TeX does for text.  We would like to help start this mutopia project.
+Unfortunately, maintaining and extending LilyPond does not leave us
+enough time to take up the task of setting up Mutopia
+
+
+Signed
+
+Han-Wen Nienhys
+Jan Nieuwenhuizen
+
+[other bigwigs?]
index 1968b768cf41ba61eb8c93c36b5113deca6d669c..1f6f5148378e600872ef1ea34ca3f93cc8168ca9 100644 (file)
@@ -4,7 +4,7 @@ composer = "Johann Christoph Faber";
 piece = "1.  Overture";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 global=\notes{
        \time 2/2;
index e895cb50aa41a513b3b20ddf2e38725eff0496a9..5f01cc9934cf05917d71c118dd142ee8c6456d18 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 scales = \notes\transpose c''{
                f2 f f f f f f f f f\break 
index 1fea3ac1984f391841b06c3fef05b772f804eb07..7bbed535f0ef9de0f36118632b802e85e39c17d3 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 one = \notes\relative c{
        c'' d e f
index 74d87dff77b96869238496239a7c37b2c106ad88..60443d076f34b11a30769c2c7fc1328688c048c5 100644 (file)
@@ -57,4 +57,4 @@ of a certain tune (Jazz, Real Book, for example), like
        }
 }
 
-\version "1.0.18";
+\version "1.0.20";
index d931c9bf9733a565c4a73bf57579a166139ac2df..f203dedaf14cba4f6433932fe1c6670f6dad1592 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 
 blah = \notes {
index 09a1db7e40e3963e3541cd89273a01357a6a475f..376fadc8ba04e651f737e4e2e13bffe1919972c7 100644 (file)
@@ -10,7 +10,7 @@ copyright =    "public domain";
 Tested Features: example file with comments
 
 %}
-\version "1.0.19";
+\version "1.0.20";
 
 
 % the % is a comment.
index 904e05f0d886b2c64f591a536f5ace659cd07a91..e54ca2a2017c98650dce9bfc321afc608f2c2b38 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 part = \notes {
        c-1 c c c
        r1*3
index 1dcb3eb6a35f31afce611fa06f318091197110ac..bfd90fea410d25abad2d4272b4c16f9eb9f1d70f 100644 (file)
@@ -28,7 +28,7 @@
 % \lbheel \lbheel \lfheel \lftoe
 % \rbheel \rbtoe \rfheel \rftoe
 
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
                \notes {
index 5fd8dfff59a21945a7bc94dca622d97217617a7a..a8c26b71f6d1b384d0025e6a77a9229e5d0f9d92 100644 (file)
@@ -23,7 +23,7 @@
    * organ staff...
 %}
 
-\version "1.0.19";
+\version "1.0.20";
 
 
 
@@ -192,23 +192,23 @@ breakmusic = \notes {
     \translator {
     \VoiceContext
     \name "VoiceOne";
-    ydirection = "1";
+    verticalDirection = "1";
     }
     \translator {
     \VoiceContext
     \name "VoiceTwo";
-    ydirection = "-1";
+    verticalDirection = "-1";
     }
     \translator {
     \VoiceContext
     \name "VoiceThree";
-    ydirection = "1";
+    verticalDirection = "1";
     hshift = "1";
     }
     \translator {
     \VoiceContext
     \name "VoiceFour";
-    ydirection = "-1";
+    verticalDirection = "-1";
     hshift = "1";
     }
    \translator { 
index 4b2091264640c74a24c58813f044ca33ddc1c825..e8ab4e3de6b98f456f826a1d047bc71da7233875 100644 (file)
@@ -7,7 +7,7 @@ TestedFeatures =         "multiple meters, beaming, unsynced bars, userdefd engravers";
 
 
 
-\version "1.0.19";
+\version "1.0.20";
 
 ritme = \notes\transpose c'' {
        \time  4/4;
index 8f130977aada3cce9d062753fa4ff39e8e8f9fa0..4b00ac05be613901c2482aed1b5bc933b1186e84 100644 (file)
@@ -16,7 +16,7 @@ copyright =    "public domain";
 % scales with accents.
 %
 
-\version "1.0.19";
+\version "1.0.20";
 blah =         \notes {
                \time 6/8;      
 \transpose c {
index bdd00db6235af8ea165674f7a20c56356e9b96a5..598e45bc38d28e07611b46e535aba443bef9277d 100644 (file)
@@ -1,5 +1,5 @@
        
-\version "1.0.19";
+\version "1.0.20";
 
 
 blah =         \notes{ \transpose c'' {
index 4578d11e304b0fc721f0a9f207e0f74e5458839d..c018bd523c40beee241d26bb5d043c90b461b613 100644 (file)
@@ -118,4 +118,4 @@ global = \notes {
 }
 
 
-\version "1.0.18";
+\version "1.0.20";
index 0e41f5b2478d7d021133cd1ff744af3924d8afe8..33b050ea55fc3b1f08adc22a8169dfc8f16207c0 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.19";
+\version "1.0.20";
 \score{
        \notes \transpose c'''{
                \stemup
index 7df84b510b767906951d2831ff03283ddadcf6bc..acb8b7ab87b8b4481903a18e72871b8be9c0f683 100644 (file)
@@ -121,4 +121,4 @@ xxx\break
        }
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
index c0e8e2b5670aab932a955ed14ad5891b22cd5f94..d176fbc7f274c1085121bb32d61b3079c6e1cad6 100644 (file)
@@ -31,4 +31,4 @@
 
 }}
 
-\version "1.0.19"; 
+\version "1.0.20"; 
index fd08429887372b53118301cc096082d33d132d7a..8990f4686834a3a5198897054369a971f894a22a 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.19";
+\version "1.0.20";
 
 onestaff = \context Staff = foo\notes  {
        \property Staff.instr = instr
index 7b5cb08c97dd83e90260b2a685d704c4d6e64f8f..3ad0189aeb7c9ff7d750f28f9795c67e6f59523b 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
        \notes\transpose c'{
index 660d86d902ae1e98735120343774485ff303c8cc..4554160c4351d4c984ab1d67a5765d2c99008c90 100644 (file)
@@ -30,4 +30,4 @@
        }
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
index ecaaab30c3a0b312ee1374857d0c4cb71e9a0cfe..f71167fdabcffd291a99965a3e12963168ee005a 100644 (file)
@@ -21,4 +21,4 @@
        }
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
index 40f16d56344d0f2ee29dc63f7db10de0171c1ac6..6d69d96723663005d3ee637bdfb2068e5c14e51b 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
        \notes\transpose c''{
index 47ad0f5258b11e32e733a1b16252ae0bdb3e2c31..2e0cbb43ca707ea29868dc5573540cafd31d2fa7 100644 (file)
@@ -6,7 +6,7 @@ copyright =      "PD";
 
 TestedFeatures =        "beams and beamflags";
 }
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
        <
index 93beafe9ae241c53b42354aa36b761a3a7216f6b..83b3e26ff7ae6e179047cfc3e8ceb6d78067af02 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.19";
+\version "1.0.20";
 
 shortlong = \notes{
        c4()c( c c  |
index 443089d7f16252504c2bc2d5ac9906d49cef79dd..29fae53e31db71ce98a606bad6117f517c7f58df 100644 (file)
@@ -22,4 +22,4 @@ inversions = \notes\transpose c''\chords{
        >
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
index b2ad9409ded55a1b33e12fde8da43d53564e6f5c..25ffa4bc7899613c122d2bf26cc85312f2a6e35e 100644 (file)
@@ -41,4 +41,4 @@ tab = \notes\transpose c'''\chords{
 
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
index 0ace585d5556ea90fbefb893bec81e792e0f0588..06cf21a60a36060a83b6af4094b5bffbb60516dd 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 %{
 Would this be acceptable/good enough/convenient for entry?
index 2fb5476b47f19c034629292235f1f7f03d4be656..4050cbfcd5d8364a4cf65dfc32a82cb415286bb9 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 \score {
        \notes{ 
index ce736b98456bb20ac433c54540509321de013921..c938d5bd49237b71aee8a0d28fbadae0aaa153b7 100644 (file)
@@ -5,7 +5,7 @@ enteredby =      "HWN,JCN";
 copyright =     "public domain";
 Tested =        "test the Collision resolution ";
 }
-\version "1.0.19";
+\version "1.0.20";
 
 twovoice = \context Staff \notes < 
        \context Voice=i { \stemdown c4 d e f g2~  g4 a [c8 d e f] c2| }
index 1bf7fb703d9db66348e7a31839ef12ca36ad1544..5c94ae07bf9dede84caa1626007f152196cc96d2 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 
 \score {
index c3debaf4ebbe16eda32de77dcd523fb3e4218d7e..dc382e07a6ab720a981acb7e8894f47bf93286ce 100644 (file)
@@ -7,7 +7,7 @@ TestedFeatures = "This file tests silly line shapes";
 
 \include "paper20.ly"
 
-\version "1.0.19";
+\version "1.0.20";
 
 oden = \lyrics{ 
        O8 |
index bc799418d93c5509df3532ccf3e887cc1c399a0d..6b42c3e8f0940ad96bca38c378680b87ee94ba72 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
        \notes{
index 44aa7cfc6c5c94cd93e1ea835b2353b54b99e530..ea0587909da70b914a34bfc5fc1b92c5c9cb4bf2 100644 (file)
@@ -5,4 +5,4 @@
        >
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
index 03b2e26d45d05dd67749211bb6ed5ba5b0842090..829c0929b946bbd00a4dcdfd9d5f60f6a43b2110 100644 (file)
@@ -42,4 +42,4 @@ extra-staff.ly:
 }
 
 
-\version "1.0.19"; 
+\version "1.0.20"; 
index 84aee9850a14e741215ccee6fdd007020f1abd22..a9992e2dff9778bc2a539a07fb5d1b59884824b5 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
        \notes \relative c {
index a1991223ca5483777f8916b7589076b85abfaaa2..7e2b30aa53fa490ff4239e15a88f6d56031a65d2 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 FontBody=      \notes\transpose c''{ 
                \bar "|:";
index ad8610de6439e6f41f45cad623ac83d92df7356a..c6b011f481f04b8468bbe7127dd4c63f8e5e6eb7 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.19";
+\version "1.0.20";
 
 \include "font-body.ly"
 \score{
index afad636bdc6699f7aa2547915120010f5881e0d2..6a5c020a00b20d1b608322fb554b4f0ed2ac9938 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.19";
+\version "1.0.20";
 \include "paper16.ly"
 \include "font-body.ly"
 
index abefe5b00d93ccb591e6225bbe6c671022ab895a..c83061d51963eb3722a5d06c56851e1a8454729e 100644 (file)
@@ -17,5 +17,5 @@ TestedFeatures =
            gourlay_maxmeasures =5.;
        }
 }
-\version "1.0.19"; 
+\version "1.0.20"; 
 
index cbb749af48d03b316a8ecb7ad93fae376d5b475d..ab4414da7012f2313d8d518994c5b1b689afcd5d 100644 (file)
@@ -4,7 +4,7 @@ copyright =      "PD";
 TestedFeatures =        "This file tests some nasty Gourlay spacings";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 %{
 
index 966da1b65f622dd954f900b757ae323153a1fc2b..0261511d6eb317cdba0432ff97c3322d1dcc37b1 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
        <
index ddbec394f6132f0712f2032b682536c21f8e7e42..5f2ebd04e284c9c68aa9885e4da075d3c40a55cd 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 toeter_i = \notes\relative c <{
                \property Staff.instrument = "Toeters"
index 2c2cbb43f4b7d476261119455e481b06eb973b06..202b65df42c4c03d21d54197e9546a44b0f62ae3 100644 (file)
@@ -6,7 +6,7 @@
    /Mats B
 %}
 
-\version "1.0.19";
+\version "1.0.20";
 
 incipit = \notes\relative c'{
   <b1 fis' b d>
index 4eff652fb66c36da7446308fe58943058f9e0c7c..e35be1b04036bd719f7dfdc1a3ce23fce70d5061 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 %{
 test key itemv breaking
index d0aa3c607ae49b808d96186d401e28d5837b3b71..d595ebe82ae6705b3140de4f2f3551856085c5a3 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 \score{
        \notes\relative c'{
                [c16 \stemdown c'' \stemboth c,, d]
index ad9848e6f097d9a5be41a22d23a2fde5ca70fb78..6d0f2aac3fa6e98820a5a52e7274c1783c4a13e4 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 global = \notes {
   s1 | \mark "A";
index eafe9308b6bc84439b88bf505847282c15046c98..b49a9e028ebce4990952b9e268c8d1a8f8fa8936 100644 (file)
@@ -11,5 +11,5 @@ bla = \notes {
        >
        \paper { Gourlay_maxmeaures = 2.; }
 }
-\version "1.0.19"; 
+\version "1.0.20"; 
 
index 6672b777bb3327e29f5adbdea4fed0fb7155beec..2b30a3e8112bef19075885478af35b82cee4a3e8 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 voice_one = \notes\transpose c''{  \stemup
        R1 * 2 | f'4-. r r2 | R1 * 3 |
index 946b97b13eab453491d93c1aee068b051aae5e12..7cdf9d88f133ce267de12cc5d9d2d682f4b59363 100644 (file)
@@ -12,7 +12,7 @@ c4 c2 c8  c16 c16  c1
    \context ThreadedVoice <
     \context Thread = TA
       { \property Thread.noteHeadStyle = "cross"
-        \property ThreadedVoice.ydirection = \up c16} 
+        \property ThreadedVoice.verticalDirection = \up c16} 
     \context Thread = TB
       { \property Thread.noteHeadStyle = "" a16  }
     
@@ -40,4 +40,4 @@ c4 c2 c8  c16 c16  c1
        }
     }
 }
-\version "1.0.19"; 
+\version "1.0.20"; 
index 18ce9944b473ba1f4ad96aa251ca206a3b925bd4..37d6c8ac296631231234f76931b98b0f94d647c2 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
        \notes \transpose c''{
index be7b99479ce10d58e18abc81fec4e255adf91b9c..eb7d152550a9abf4563a7021c7a5458c972d09a9 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 m = \notes \relative c''{
 c1 | c2 c | c c | c c | c c | c c | c c | c c | 
index 9ffb5c8e7598a0710b56591f499255776daa2162..a43c1ed64b1b98f93d165fd5370a53cc2d17d66c 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 \score {
 
index 92b951c2ce37fc5714e8f3bd8baa11588a3fb922..e509994d67f40ea2bd2e78011a6ade0a18aaef2d 100644 (file)
@@ -34,4 +34,4 @@ restsII = \context Staff \notes {
        }
 }      
 
-\version "1.0.19"; 
+\version "1.0.20"; 
index cb5297585ace39a8058f302de04a294e5f9c7368..a43bb3d02b5f835c53397e929b048cc1dbfca88e 100644 (file)
@@ -1,7 +1,7 @@
 
 
 
-\version "1.0.19";
+\version "1.0.20";
 
 onestaff =     \context Staff = foo\notes  {
                \property Staff.instr = instr
index c290a07d746a425920cff5aa8641306e16573fb0..e3317a331233ed7a6f230ec4afa61048acdc0544 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.19";
+\version "1.0.20";
 
 shortlong = \notes{
        c4()c( c c  |
index 921dfbffe22f08d86945b571fbcdbc1815748d7e..94b53b3560bb85af33ecec4cc31d1d3cfcaef84c 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 % bug
 % excentric slur can't handle this ...
index df6ac36c6953c48a3e5795f9f0fd2c37bbd6b707..7fda627819ad72070834ce2c185d1b51a9ea2259 100644 (file)
@@ -1,5 +1,5 @@
 % test damping
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
        \notes\relative c'{
index 774855cacbba0b805e059687915a869b01dbc836..7fe0156d971ff07fd5325c6cd105bb6261c972fa 100644 (file)
@@ -38,4 +38,4 @@
        }
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
index 17174563fdc0f2e4a7f20260e38dd614cff9085c..77a2194b79378fcd08a0ecd97de12b72f8d18418 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 % urg, the direction of the slur gets swapped!
 \score{
index cf98f6088c1be8ff1ef7912a66c270fea07bd0c2..78792b52f9905ca00ab0ec9ccec9b1824189c9ad 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
        \notes\transpose c'{
index 6d1474439bf1161ff8d58580375bf0bdb158123a..8ad2b838759651d61c5aa5da08de4ec6afa4ddbd 100644 (file)
@@ -14,9 +14,9 @@ source = "Petits Preludes et Fugues.  Urtext. Editions Henry Lemoine, Paris.";
     \notes \relative c''
        \context GrandStaff <
        \context Staff = SA <
-               \context Voice = VA { \property Voice.ydirection= 1
+               \context Voice = VA { \property Voice.verticalDirection= 1
                        e4 dis4 e2 }
-               \context Voice = VB { \property Voice.ydirection= -1
+               \context Voice = VB { \property Voice.verticalDirection= -1
                        [cis8 a] [fis b] gis2 }
                {\key e; }
                >
@@ -25,14 +25,12 @@ source = "Petits Preludes et Fugues.  Urtext. Editions Henry Lemoine, Paris.";
        } 
 > 
 
-\paper 
-{
-}
 \paper 
 {
 %      linewidth = 5.0 \cm; % ly2dvi barfs on -1
        linewidth = 8.0 \cm;
+%      linewidth = 12.0 \cm;   
 }
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
index a1f7a086138ca6f3d897cf00437e1606ea940ba6..4d90e751920413b86b5049a2032ee1bcd0e86f32 100644 (file)
@@ -6,65 +6,66 @@ copyright =    "public domain";
 TestedFeatures =        "This file tests various spacings";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 multipart = \notes \relative c'{ 
     \context StaffGroup < 
-                \context Staff = one { 
+                \context Staff = one \context Voice 
                    c4
                    c 
                    c c 
                 }
-                \context Staff = two { 
+                \context Staff = two \context Voice 
                    [c8 c] 
                    [c c] 
                    [c c] [c c] 
                 }
-                \context Staff = three { 
+                \context Staff = three \context Voice 
                    \times 2/3 { [c8 c c] } 
                    \times 2/3 { [c  c c] } 
-                   \times 2/3 { [c  c c] } \times 2/3 { [c c c] } 
+                   \times 2/3 { [c  c c] }
+                  \times 2/3 { [c c c] } 
                 }
-                \context Staff = four { 
+                \context Staff = four \context Voice 
                    \times 2/4 { [c8 c c c] }
                    \times 2/4 { [c  c c c] } 
                    \times 2/4 { [c  c c c] } \times 2/4 { [c c c c] } 
                 }
-                \context Staff = five { 
+                \context Staff = five \context Voice 
                    \times 2/5 { [c8 c c c c] } 
                    \times 2/5 { [c  c c c c] } 
                    \times 2/5 { [c  c c c c] } \times 2/5 { [c c c c c] } 
                }
-                \context Staff = six { 
+                \context Staff = six \context Voice 
                    \times 2/6 { [c8 c c c c c] } 
                    \times 2/6 { [c  c c c c c] } 
                    \times 2/6 { [c  c c c c c] } \times 2/6 { [c c c c c c] } 
                 }
-                \context Staff = seven { 
+                \context Staff = seven \context Voice 
                    \times 2/7 { [c8 c c c c c c] } 
                    \times 2/7 { [c  c c c c c c] } 
                    \times 2/7 { [c  c c c c c c] } 
                   \times 2/7 { [c  c c c c c c] } 
                 }
-                \context Staff = eight { 
+                \context Staff = eight \context Voice 
                    \times 2/8 { [c8 c c c c c c c] } 
                    \times 2/8 { [c  c c c c c c c] } 
                    \times 2/8 { [c  c c c c c c c] } 
                   \times 2/8 { [c  c c c c c c c] } 
                }
-                \context Staff = nine { 
+                \context Staff = nine  \context Voice 
                    \times 2/9 { [c8 c c c c c c c c] } 
                    \times 2/9 { [c  c c c c c c c c] } 
                    \times 2/9 { [c  c c c c c c c c] } 
                   \times 2/9 { [c  c c c c c c c c] } 
                }
-                \context Staff = ten { 
+                \context Staff = ten  \context Voice 
                    \times 2/10 { [c8 c c c c c c c c c] } 
                    \times 2/10 { [c  c c c c c c c c c] } 
                    \times 2/10 { [c  c c c c c c c c c] } 
                   \times 2/10 { [c  c c c c c c c c c] } 
                }
-                \context Staff = eleven { 
+                \context Staff = eleven  \context Voice 
                    \times 2/11 { [c8 c c c c c c c c c c] } 
                    \times 2/11 { [c  c c c c c c c c c c] } 
                    \times 2/11 { [c  c c c c c c c c c c] } 
index 4e917d1434f4409c834aceaaed433a006df54275..dd60a13a8b7ed2173861fdfafd10cec84272f7be 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.19";
+\version "1.0.20";
 nt = \notes { c1 \break c1 c1 } 
 stuff = \notes \relative c'' <
   \context Staff = stone  { \nt }
index 16d9f787f91231333d0689a8d777a42ffea06177..df215a6cd52336a427dd25418b7ff000bcdf5175 100644 (file)
@@ -1,6 +1,6 @@
 
        
-\version "1.0.19";
+\version "1.0.20";
 
 \score {
 
index 3ff8c6bbf035c9b2aef4a6e10b56fce1ea98de78..65e3d68065db1e6e74a986b6b35672d1eb7e31ed 100644 (file)
@@ -18,4 +18,4 @@
 }
 
 
-\version "1.0.19"; 
+\version "1.0.20"; 
index b631184e6ea669dfa899e04e8157f55c7507fa09..144f638fc917d17489ed76e12754e3f4496d9489 100644 (file)
@@ -14,4 +14,4 @@
 >
 \paper { linewidth = -1.; }
 }
-\version "1.0.19"; 
+\version "1.0.20"; 
index fe722bde6af950dbdeb0bc53b4b963f0e97ba45a..978caa555586e869bab5e98d98a66bb5345f5399 100644 (file)
@@ -8,7 +8,7 @@ of beams";
        
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 beamintervals = \notes{
                \time 7/4;
index 2c5e64e254c6cc8fe6ed7b36627c72605929e286..9cd65c31c113326951839d826b27b14fae71bb0b 100644 (file)
@@ -7,7 +7,7 @@ enteredby =     "Maarten Storm";
 instrument=    "Violoncello";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 % this is an example of extreme dynamics
 
index 4ff7dbad308ed8d95785d4b3c545e930142674f4..8f0294019b6eca3d103ea3be2a484119827e49f9 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 $somewhat_long = \lyrics{
        \property Lyrics . textstyle = "roman" 
index e44462f764e4601dff0ad1e060069acea35404eb..748e754b83e4b83b121d041852f9cc28b395a0c4 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.19";
+\version "1.0.20";
 
 \score { \notes \relative c'' {
                [<a8_\thumb a'8-3(> <)b_\thumb b'-3>
index 49876a236ca0215f6d280d338ccfb3d689ae4aba..1307452524870abaa7add3a3bc188102a0f9797a 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 
 %  middle tie is wrong
index 322bd528377c4a95349682d36c5be9a969385907..61944f402602823913b39e5bfd75932c4082ead1 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 tie = \notes\transpose c''{
 
index d64234015d4c5e3ca2125a399399e0bed15e27d0..91fa42cbd3bc52ae7affdafc931070271807a6bd 100644 (file)
@@ -10,7 +10,7 @@ source =      "urtext";
 instrument=    "Instrument";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
        \notes
index 548dec1260f99e2d154119f3eb7cb142c21b9724..2271026b718c08562d2a5a0d4b8c018330782260 100644 (file)
@@ -22,7 +22,7 @@ copyright =    "public domain";
 }
 
 
-\version "1.0.19";
+\version "1.0.20";
 
 vOne = \notes \relative c''{
         \clef"violin";
index f0f778ac7e68a92d9193494c4ac34ff12c52f738..aaa005aeec5c2cecb12fc96294710b0ac0936297 100644 (file)
@@ -8,4 +8,4 @@
                 }
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
index 259013260f9a1b09763472246bddd853041abd5d..69ba825f68c372df8bcad5c7230c6d533f2008c6 100644 (file)
@@ -8,4 +8,4 @@
 {\voicetwo c}>
 
 
-\version "1.0.19"; 
+\version "1.0.20"; 
index 305dac6480c3f0cfcb1d92fa403644c8af67ac03..52e286e1c2c515906fcdb3e82300df72302cadcc 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.19";
+\version "1.0.20";
 
 \score {
 \notes <
index 6b42433d09f121f0b6b2196bb08dda4cd6c50d63..ec9caaf3717e2e9032a064eb77cd8f7f4be97a80 100644 (file)
@@ -15,4 +15,4 @@
        }
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
index c36e11ffaecbb449a987401c9bb9f0ed84aa3432..c9371664a4947948344bf149afebb0ce418687be 100644 (file)
@@ -21,4 +21,4 @@ What's supposed to be demonstrated here?
        }
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
index 08112efc1263a0369a00b19db01e0def9b22ab8c..b0779db1939c99b21d34bd33bd23e0d97e84f2b3 100644 (file)
@@ -5,7 +5,7 @@ TestedFeatures =         "This file tests trills" +
         "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
        \notes{ 
index 802246a3e6515e126c8241e1ad42ae3232e81920..b9c21ed9500c42e8cfc0fa520b9e958c87676504 100644 (file)
@@ -11,7 +11,7 @@ copyright =    "public domain";
 Tested Features                lyrics and chords
 %}
 
-\version "1.0.19";
+\version "1.0.20";
 
 melodie = \notes\relative c'' {
         \clef "violin";
index 3ab846f61c9b904c0a944e449110ea8936eef717..58d5b5541cd3d0997fc66ea9abe71a31b48e5f35 100644 (file)
@@ -19,7 +19,7 @@ traditional song in various languages.
 Tested Features: lyrics, interleaving lyrics and staffs, repeats
 %}
 
-\version "1.0.18";
+\version "1.0.20";
 
 melody = \notes \relative c'' {
        \clef violin;
index 7df44b352321c8674ecca1c82896738658f538d5..b4136ae520efe85490c286bde43bad70aebd5b11 100644 (file)
@@ -52,8 +52,8 @@ Collision::do_pre_processing()
 
   /*
     [stem up, stem up shifted, stem down shifted, stem down]
-  */
-  Array<Note_column*> clash_group_arr_a[4];
+  */ 
+  Array<Note_column*> clash_group_arr_a[4]; // TODO: use drul.
 
   for (int i=0; i < clash_l_arr_.size(); i++)
     {
index 16dcd2c33257ec00c3e7d0f46d34601c182ba44f..d63c92b9ab65f3344146c75d03a6ada7408a6f42 100644 (file)
@@ -21,6 +21,12 @@ struct Spacer_rod {
   void print () const;
 };
 
+struct Spacer_spring
+{
+  Real distance_f_;
+  Real hooke_f_;
+  Real other_idx_;
+};
 
 /// helper struct for #Spacing_problem#
 struct Column_info {
@@ -33,6 +39,7 @@ struct Column_info {
   bool ugh_b_;         
 
   Drul_array< Array<Spacer_rod> > rods_;
+  Drul_array< Array<Spacer_spring> > springs_;  
   
   Column_info();
   Column_info (Paper_column *,Real const *);
index af50e44ca25296b7b6ca9d28db4ba4190c1378ba..d573c8fdcfb987f98c51824cc21e0ddb6dedf779 100644 (file)
@@ -61,6 +61,7 @@ struct Clef_engraver;
 struct Clef_performer;
 struct Column_x_positions;
 struct Column_info;
+struct Column_spring;
 struct Collision;
 struct Collision_engraver;
 struct Command_req;
@@ -218,12 +219,13 @@ struct Skip_req;
 struct Slur;
 struct Slur_engraver;
 struct Slur_req;
-struct Spacing_req;
+struct Spacing_spanner;
 struct Span_bar;
 struct Span_score_bar;
 struct Span_dynamic_req;
 struct Span_req;
 struct Spanner;
+struct Spring;
 struct Spring_spacer;
 struct Staff_bracket;
 struct Staff_performer;
index 2410acc2855a4f945d53930f40b06b4149d8a570..578c58638b22778b7ff776758f3c21d80834cf2b 100644 (file)
 /// the columns of a score that form one line.
 class Line_of_score : public Axis_group_spanner, public Super_element
 {
-  Link_array<Paper_column> cols_;
 public:
+  Link_array<Paper_column> cols_;
 
   Line_of_score();
     
   /// is #c# contained in #*this#?
   bool contains_b (Paper_column const *c) const;
     
-  Link_array<Line_of_score> get_lines() const;
   Line_of_score * set_breaking (Array<Column_x_positions> const&, int j) const;
 
 
-  void output_all ();
+  void output_all (bool last_line);
   void add_column (Paper_column*);
   
 protected:
index 1211309e1cc9c754cacf302830ab887dc01e8023..bf2d032cf25183ca2a80bdfe2709f86e3d7cb1d9 100644 (file)
@@ -12,7 +12,7 @@
 
 #include "axis-group-item.hh"
 #include "rod.hh"
-
+#include "spring.hh"
 
 /**
    stuff grouped vertically.
@@ -35,6 +35,7 @@ public:
   void preprocess ();
   /// set a minimum distance
   void add_rod (Paper_column * to, Real distance);
+  void add_spring (Paper_column * to, Real dist, Real strength);
 
   virtual Paper_column * column_l () const;
   /// if lines are broken then this column is in #line#
index fbde969355aa575a11070a4def704ba9d7bf0fe3..4d1f13982edfba40270c5e2c52ff60757010c832 100644 (file)
@@ -13,7 +13,8 @@
 #include "direction.hh"
 #include "drul-array.hh"
 
-struct Column_rod {
+struct Column_rod
+{
   Paper_column *other_l_;
   Real distance_f_;
 
@@ -31,19 +32,5 @@ struct Rod
 
   Rod ();
 };
-
-struct Column_spring {
-  Paper_column *other_l_;
-  Real distance_f_;
-  Real strength_f_;
-  
-  Column_spring ();
-  static int compare (const Column_spring &r1, const Column_spring &r2);
-  void print () const;
-};
-
-struct Spring{
-  
-};
 #endif /* ROD_HH */
 
diff --git a/lily/include/spacing-engraver.hh b/lily/include/spacing-engraver.hh
new file mode 100644 (file)
index 0000000..3c1f5f7
--- /dev/null
@@ -0,0 +1,57 @@
+/*   
+  spacing-engraver.hh -- declare Spacing_engraver
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#ifndef SPACING_ENGRAVER_HH
+#define SPACING_ENGRAVER_HH
+
+#include "engraver.hh"
+#include "pqueue.hh"
+
+struct Rhythmic_tuple
+{
+  Score_element_info info_;
+  Moment end_;
+  
+  Rhythmic_tuple ()
+    {
+    }
+  Rhythmic_tuple (Score_element_info i, Moment m )
+    {
+      info_ = i;
+      end_ = m;
+    }
+  static int time_compare (Rhythmic_tuple const &, Rhythmic_tuple const &);  
+};
+
+/**
+   Acknowledge rhythmic elements, for initializing spacing fields in
+   the columns.
+
+   should be the  last one of the toplevel context
+*/
+class Spacing_engraver : public Engraver
+{
+  PQueue<Rhythmic_tuple> playing_durations_;
+  Array<Rhythmic_tuple> now_durations_;
+  Array<Rhythmic_tuple> stopped_durations_;
+
+  Spacing_spanner * spacing_p_;
+protected:
+  VIRTUAL_COPY_CONS(Translator);
+  virtual void acknowledge_element (Score_element_info);
+  virtual void do_post_move_processing ();
+  virtual void do_pre_move_processing ();
+  virtual void do_creation_processing ();
+  virtual void do_removal_processing ();
+public:
+  Spacing_engraver ();
+};
+
+#endif /* SPACING_ENGRAVER_HH */
+
index fbf332b2c7661d97f26847e7ddce2fd0248ca87b..b69209d9061cb133902d0798301eeaf1ecb8f44d 100644 (file)
 #ifndef SPACING_SPANNER_HH
 #define SPACING_SPANNER_HH
 
+#include "spanner.hh"
+
 class Spacing_spanner : public Spanner
 {
-  Link_array<Paper_column> cols_;
-
+public:
   Spacing_spanner ();
+  VIRTUAL_COPY_CONS(Score_element);
+  Score_column *scol (int) const;
+  Array<Spring> do_measure (int,int) const;
+  int col_count () const;
 protected:
-  virtual void do_space_processing ();
+  virtual  Array<Spring> get_springs () const;
+  
 };
 
 #endif /* SPACING_SPANNER_HH */
index 91c75a7aca2b6e3081f508299e129029482f21ff..8ad3caa31fa0dab0385c236ca039367ff6d33439 100644 (file)
@@ -55,7 +55,9 @@ public:
   Spanner ();
   Spanner (Spanner const &);
   bool broken_b () const;
+
   virtual Array<Rod> get_rods () const;
+  virtual Array<Spring> get_springs () const;  
   virtual Spanner* find_broken_piece (Line_of_score*) const;
 protected:
   void set_my_columns ();
@@ -69,7 +71,6 @@ protected:
   Array<Breaking_information> broken_info_;
   friend Axis_group_spanner; // UGH
 
-  virtual void output_processing ();
   virtual void do_space_processing ();
   virtual void do_break_processing ();
   virtual Interval do_width () const;
index 49e9501841dd5124fa1f64e29cfe58840c70ec2b..3b89b247e19c142879a18d59fb02a10690145682 100644 (file)
@@ -39,8 +39,9 @@
     The quality is given by the total potential energy in the
     springs. The lower the energy, the better the configuration.
 
-    TODO: make item widths work per Staff.
 
+    TODO: too complicated.  Revise.
+    Use force iso. energy.  Also optimise for uniform density
 */
 
 class Spring_spacer : public Line_spacer {
diff --git a/lily/include/spring.hh b/lily/include/spring.hh
new file mode 100644 (file)
index 0000000..d4e2e94
--- /dev/null
@@ -0,0 +1,36 @@
+/*   
+  spring.hh -- declare Spring, Column_spring
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#ifndef SPRING_HH
+#define SPRING_HH
+
+#include "lily-proto.hh"
+#include "drul-array.hh"
+
+struct Column_spring {
+  Paper_column *other_l_;
+  Real distance_f_;
+  Real strength_f_;
+  
+  Column_spring ();
+  static int compare (const Column_spring &r1, const Column_spring &r2);
+  void print () const;
+};
+
+struct Spring{
+  Drul_array<Item*> item_l_drul_;
+  Real distance_f_;
+  Real strength_f_;
+  void add_to_cols ();
+  Spring ();
+};
+
+
+#endif /* SPRING_HH */
+
index f8ac1a31f94bb1511c04274b8cf8a37fd302fde6..cb6eb72ebf046234b4e72cb03ee0b6587db00f55 100644 (file)
@@ -22,10 +22,8 @@ public:
   Tie ();
   void set_head (Direction, Note_head*head_l);
   VIRTUAL_COPY_CONS(Score_element);
-  
-  bool same_pitch_b_;
-  Drul_array<Note_head *> head_l_drul_;
 
+  Drul_array<Note_head *> head_l_drul_;
 protected:
   virtual void do_add_processing ();
   virtual void do_post_processing ();
index 084ee6013e10f7726b26969a56dddefc250821da..ec786d7815cb2f4797bc5b14ceaab285b6cf84fd 100644 (file)
@@ -24,6 +24,7 @@ Line_of_score::contains_b (Paper_column const* c) const
   return cols_.find_l ((Paper_column*)(c));
 }
 
+// const?
 Line_of_score*
 Line_of_score::set_breaking (Array<Column_x_positions> const &breaking, int j) const
 {
@@ -83,7 +84,7 @@ Line_of_score::do_substitute_element_pointer (Score_element*o, Score_element*n)
 }
 
 void
-Line_of_score::output_all ()
+Line_of_score::output_all (bool last_line)
 {
   Interval i(extent(Y_AXIS));
   if (i.empty_b())
@@ -93,5 +94,8 @@ Line_of_score::output_all ()
   
   pscore_l_->outputter_l_->start_line (i.length ());
   Super_element::output_all ();
-  pscore_l_->outputter_l_->stop_line ();
+  if (last_line)
+    pscore_l_->outputter_l_->stop_last_line();
+  else
+    pscore_l_->outputter_l_->stop_line ();
 }
index c40679e1f8b2fdd04e92e8e098047054ac86264a..8506350e39b6f27c17959fcc8484a124f80b2a68 100644 (file)
@@ -50,6 +50,7 @@ Local_key_engraver::process_acknowledged ()
 {
   if (!key_item_p_ && mel_l_arr_.size()) 
     {
+      bool forget = get_property ("forgetAccidentals",0).to_bool();
       for (int i=0; i  < mel_l_arr_.size(); i++) 
        {
          Item * support_l = support_l_arr_[i];
@@ -72,9 +73,10 @@ Local_key_engraver::process_acknowledged ()
          key_item_p_->add_pitch (note_l->pitch_,
                                  note_l->cautionary_b_);
          key_item_p_->add_support (support_l);
-         local_key_.set (note_l->pitch_);
+         
+         if (!forget)
+           local_key_.set (note_l->pitch_);
        }
-       
     }
 }
 
@@ -113,8 +115,7 @@ Local_key_engraver::acknowledge_element (Score_element_info info)
     }
   else if (Tie * tie_l = dynamic_cast<Tie *> (info.elem_l_))
     {
-      if (tie_l->same_pitch_b_)
-       tied_l_arr_.push (tie_l-> head_l_drul_[RIGHT]);
+      tied_l_arr_.push (tie_l-> head_l_drul_[RIGHT]);
     }
 }
 
@@ -124,7 +125,8 @@ Local_key_engraver::do_process_requests()
   Time_description const * time_C_ = get_staff_info().time_C_;
   if (time_C_ && !time_C_->whole_in_measure_)
     {
-      if (key_C_)
+      bool no_res = get_property ("noResetKey",0).to_bool ();
+      if (!no_res && key_C_)
        local_key_= *key_C_;
     }
 }
index 8378a68f7a069c69a02f8f278c22697877d46007..fee4a083b78764d5fbd6549d31c25b5db645b6dd 100644 (file)
@@ -38,6 +38,35 @@ Paper_column::add_rod (Paper_column * p, Real d)
   minimal_dists_arr_drul_[dir].push (cr);
 }
 
+void
+Paper_column::add_spring (Paper_column * p, Real d, Real s)
+{
+  Direction dir =  Direction (sign (p->rank_i ()  - rank_i ()));
+  
+  if (!dir)
+    {
+      warning ("Must set spring between differing columns.");
+      return;
+    }
+  
+  for (int i=0; i < spring_arr_drul_[dir].size (); i++)
+    {
+      Column_spring &spring = spring_arr_drul_[dir][i];
+      if (spring.other_l_ == p)
+       {
+         spring.distance_f_ = spring.distance_f_ >? d;
+         return ;
+       }
+    }
+
+  Column_spring cr;
+  cr.distance_f_ = d;
+  cr.strength_f_ = s;  
+  cr.other_l_ = p;
+
+  spring_arr_drul_[dir].push (cr);
+}
+
 int
 Paper_column::rank_i() const
 {
@@ -55,15 +84,20 @@ Paper_column::do_print() const
 {
 #ifndef NPRINT
   DOUT << "rank: " << rank_i_ << '\n';
-  for (int i=0; i < minimal_dists_arr_drul_[LEFT].size (); i++)
-    {
-      minimal_dists_arr_drul_[LEFT][i].print ();
-    }
-  DOUT << "Right: ";
-  for (int i=0; i < minimal_dists_arr_drul_[RIGHT].size (); i++)
+  Direction d = LEFT;
+  do
     {
-      minimal_dists_arr_drul_[RIGHT][i].print ();
+      for (int i=0; i < minimal_dists_arr_drul_[d].size (); i++)
+       {
+         minimal_dists_arr_drul_[d][i].print ();
+       }
+      for (int i=0; i < spring_arr_drul_[d].size (); i++)
+       {
+         spring_arr_drul_[d][i].print ();
+       }
+      
     }
+  while ((flip (&d))!=LEFT);
   Item::do_print ();
 #endif 
 }
@@ -97,10 +131,14 @@ Paper_column::column_l () const
   return (Paper_column*)(this);
 }
 
-
+/*
+  ugh.
+ */
 void
 Paper_column::preprocess ()
 {
   minimal_dists_arr_drul_[LEFT].sort (Column_rod::compare);
   minimal_dists_arr_drul_[RIGHT].sort (Column_rod::compare);  
+  spring_arr_drul_[LEFT].sort (Column_spring::compare);
+  spring_arr_drul_[RIGHT].sort (Column_spring::compare);  
 }
index 34e329be2e236bf75729c44e51321d2264007359..66e5b059b29b6404c623bd6dcd8f612517aa7346 100644 (file)
@@ -9,6 +9,16 @@
            Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
+/*
+       Ambiguities:
+
+       * \alternative
+
+       * use of '-' in various places
+
+*/
+
+
 #include <iostream.h>
 #include "lily-guile.hh"
 #include "notename-table.hh"
@@ -44,8 +54,8 @@
 #include "new-repeated-music.hh"
 
 // mmm
-Mudela_version oldest_version ("1.0.16");
-Mudela_version version ("1.0.19");
+Mudela_version oldest_version ("1.0.20");
+Mudela_version version ("1.0.20");
 
 void
 print_mudela_versions (ostream &os)
@@ -1037,7 +1047,7 @@ request_that_take_dir:
 request_with_dir:
        script_dir request_that_take_dir        {
                if (G_script_req * gs = dynamic_cast<G_script_req*> ($2))
-                       gs->dir_ = $1;
+                       gs->dir_ = Direction ($1);
                else if ($1)
                        $2->warning ("Can't specify direction for this request");
                $$ = $2;
index 008707bbc1da16aac1a7950aa0c36923734b6e22..0bb861423271231cb8eddaf2a069b52b5080b51f 100644 (file)
@@ -42,29 +42,10 @@ Column_rod::compare (const Column_rod &r1, const Column_rod &r2)
 void
 Rod::add_to_cols ()
 {
-  item_l_drul_[RIGHT]->column_l ()->add_rod
-    (item_l_drul_[LEFT]->column_l (), distance_f_);
-  item_l_drul_[LEFT]->column_l ()->add_rod
-    (item_l_drul_[RIGHT]->column_l (), distance_f_);
+  Direction d = LEFT;
+  do {
+    item_l_drul_[-d]->column_l ()->add_rod
+      (item_l_drul_[d]->column_l (), distance_f_);
+  }while ((flip (&d))!=LEFT);
 }
 
-void
-Column_spring::print () const
-{
-#ifndef NDEBUG
-  DOUT << "Column_spring { rank = "
-       << other_l_->rank_i () << ", dist = " << distance_f_ << "}\n";   
-#endif
-}
-
-Column_spring::Column_spring ()
-{
-  distance_f_ = 0;
-  other_l_ = 0;
-}
-  
-int
-Column_spring::compare (const Column_spring &r1, const Column_spring &r2)
-{
-  return r1.other_l_->rank_i() - r2.other_l_->rank_i();
-}
index ed1462a58493693b8c88e262c9eb29977c89b3e6..23fc2ebbe397bb7e94c6e16063e893933a652503 100644 (file)
@@ -91,8 +91,8 @@ Slur_engraver::do_process_requests()
 void
 Slur_engraver::do_pre_move_processing()
 {
-  Scalar dir (get_property ("slurydirection", 0));
-  Scalar dir2 (get_property ("ydirection", 0));
+  Scalar dir (get_property ("slurVerticalDirection", 0));
+  Scalar dir2 (get_property ("verticalDirection", 0));
 
   Direction slurdir = CENTER;
   if (dir.length_i () && dir.isnum_b ())
index 525e7f9adcb8a125fa9831fa136d586dd1141797..c61dd3df3f9222e405240b1cbe68458690af3ecc 100644 (file)
@@ -7,26 +7,10 @@
   
  */
 
-#include "engraver.hh"
-#include "pqueue.hh"
 #include "musical-request.hh"
 #include "score-column.hh"
-
-struct Rhythmic_tuple
-{
-  Score_element_info info_;
-  Moment end_;
-  
-  Rhythmic_tuple ()
-    {
-    }
-  Rhythmic_tuple (Score_element_info i, Moment m )
-    {
-      info_ = i;
-      end_ = m;
-    }
-  static int time_compare (Rhythmic_tuple const &, Rhythmic_tuple const &);  
-};
+#include "spacing-engraver.hh"
+#include "spacing-spanner.hh"
 
 inline int
 compare (Rhythmic_tuple const &a, Rhythmic_tuple const &b)
@@ -35,31 +19,35 @@ compare (Rhythmic_tuple const &a, Rhythmic_tuple const &b)
 }
 
 int
-Rhythmic_tuple::time_compare (Rhythmic_tuple const&h1,
+Rhythmic_tuple::time_compare (Rhythmic_tuple const &h1,
                              Rhythmic_tuple const &h2)
 {
+  
   return (h1.end_ - h2.end_ ).sign ();
 }
 
-/**
-   Acknowledge rhythmic elements, for initializing spacing fields in
-   the columns.  */
-class Spacing_engraver : public Engraver
+Spacing_engraver::Spacing_engraver()
 {
-  PQueue<Rhythmic_tuple> playing_durations_;
-  Array<Rhythmic_tuple> now_durations_;
-  Array<Rhythmic_tuple> stopped_durations_;
-
-protected:
-  VIRTUAL_COPY_CONS(Translator);
-  virtual void acknowledge_element (Score_element_info);
-  virtual void do_post_move_processing ();
-  virtual void do_pre_move_processing ();
+  spacing_p_ = 0;
+}
 
-public:
+void
+Spacing_engraver::do_creation_processing ()
+{
+  spacing_p_  =new Spacing_spanner;
+  spacing_p_->set_bounds (LEFT, get_staff_info ().command_pcol_l ());  
+  announce_element (Score_element_info (spacing_p_, 0));
+}
 
-};
+void
+Spacing_engraver::do_removal_processing ()
+{
+  Paper_column * p = get_staff_info ().command_pcol_l ();
 
+  spacing_p_->set_bounds (RIGHT, p);
+  typeset_element (spacing_p_);
+  spacing_p_ =0;
+}
 
 void
 Spacing_engraver::acknowledge_element (Score_element_info i)
@@ -83,8 +71,9 @@ Spacing_engraver::do_pre_move_processing ()
        shortest_playing = shortest_playing <? m;
     }
 
-  Moment starter;
-  starter.set_infinite (1);
+  Moment starter, inf;
+  inf.set_infinite (1);
+  starter=inf;
   for (int i=0; i < now_durations_.size (); i++)
     {
       Moment m = now_durations_[i].info_.req_l_->length_mom ();
@@ -104,7 +93,6 @@ Spacing_engraver::do_pre_move_processing ()
   sc->shortest_starter_mom_ = starter;
 }
 
-
 void
 Spacing_engraver::do_post_move_processing ()
 {
diff --git a/lily/spacing-spanner.cc b/lily/spacing-spanner.cc
new file mode 100644 (file)
index 0000000..0f639a3
--- /dev/null
@@ -0,0 +1,170 @@
+/*   
+  spacing-spanner.cc --  implement Spacing_spanner
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#include "spacing-spanner.hh"
+#include "score-column.hh"
+#include "dimensions.hh"
+#include "paper-def.hh"
+#include "warn.hh"
+#include "p-score.hh"
+#include "line-of-score.hh"
+
+Spacing_spanner::Spacing_spanner ()
+{
+  set_elt_property (break_helper_only_scm_sym, SCM_BOOL_T);
+  set_elt_property (transparent_scm_sym, SCM_BOOL_T);
+}
+
+int
+Spacing_spanner::col_count () const
+{
+  return pscore_l_->line_l_->cols_.size ();
+}
+
+Score_column *
+Spacing_spanner::scol (int i)const
+{
+  return dynamic_cast<Score_column*> (pscore_l_->line_l_->cols_[i]);
+}
+
+/*
+  cut 'n paste from spring-spacer.cc
+ */
+Array<Spring>
+Spacing_spanner::do_measure (int col1, int col2) const
+{
+  for (int i =col1; i < col2; i++)
+    {
+      scol (i)->preprocess ();
+      scol (i)->print ();
+    }
+
+  Moment shortest;
+  shortest.set_infinite (1);
+  for (int i =col1; i < col2; i++)
+    {
+      if (scol(i)->musical_b ())
+       {
+         shortest = shortest <? scol(i)->shortest_starter_mom_;
+       }
+    }
+
+  Array<Spring> meas_springs;
+
+  for (int i= col1; i < col2; i++)
+    {
+      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)
+           {
+             s = sp_orig;
+             s.item_l_drul_[LEFT] =l ;
+             meas_springs.push (s);
+           }
+
+         if (l && r)
+           {
+             s = sp_orig;
+             s.item_l_drul_[RIGHT] = r;
+             s.item_l_drul_[LEFT] = l;
+             meas_springs.push (s);
+           }
+         
+       }
+    }
+
+  for (int i=col1; i < col2; i++)
+    {
+      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);
+
+
+         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);
+
+         /*
+           UGH. TODO: more
+           advanced spacing here.
+          */
+         Spring sp_orig (sp);
+
+         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);
+           }
+       }
+    }
+  return meas_springs;
+}
+
+Array<Spring>
+Spacing_spanner::get_springs () const
+{
+  Array<Spring> springs;
+  int last_break =0;
+  for (int i=1; i < col_count (); i++)
+    {
+      if (scol (i)->breakable_b ())
+       {
+         springs.concat (do_measure (last_break, i));
+         last_break  = i;
+       }
+    }
+  return springs;
+}
+
+
index 32a047cf8f110ddbd1a498d1eda29d3179c601f3..17ca378449b6f89c74ba553e454ac32c612bcca2 100644 (file)
@@ -13,8 +13,6 @@
 #include "molecule.hh"
 #include "paper-outputter.hh"
 
-
-
 void
 Spanner::do_print() const
 {
@@ -48,7 +46,6 @@ Spanner::break_into_pieces ()
   break_points.insert (left,0);
   break_points.push (right);
 
-
   for (int i=1; i < break_points.size(); i++) 
     {
       Breaking_information info;
@@ -86,7 +83,6 @@ Spanner::set_my_columns()
   while (flip(&i) != 1);
 }       
 
-
 void
 Spanner::set_bounds(Direction d, Item*i)
 {
@@ -95,6 +91,11 @@ Spanner::set_bounds(Direction d, Item*i)
     {
       i->used_b_ = true;
     }
+
+  if (d== LEFT)
+    {
+      dim_cache_[X_AXIS]->parent_l_ = i->dim_cache_[X_AXIS];
+    }
   
   if  (spanned_drul_[Direction(-d)] == spanned_drul_[d]
        && i)
@@ -117,23 +118,11 @@ Spanner::Spanner ()
 }
 
 Spanner::Spanner (Spanner const &s)
-  :Score_element (s)
+  : Score_element (s)
 {
   spanned_drul_[LEFT] = spanned_drul_[RIGHT] =0;
 }
 
-void
-Spanner::output_processing () 
-{
-  if (get_elt_property (transparent_scm_sym) != SCM_BOOL_F)
-    return;
-
-  output_p_ = do_brew_molecule_p ();
-  Offset left_off (spanned_drul_[LEFT]->absolute_coordinate(X_AXIS), 0);
-  Offset o (absolute_coordinate (X_AXIS), absolute_coordinate (Y_AXIS));
-  o += left_off;
-  pscore_l_->outputter_l_->output_molecule (output_p_, o, classname (this));
-}
 
 Interval
 Spanner::do_width() const
@@ -173,7 +162,6 @@ Spanner::find_broken_piece (Line_of_score*l) const
              span_p->set_bounds(LEFT,info.bounds_[LEFT]);
              span_p->set_bounds(RIGHT,info.bounds_[RIGHT]);
              pscore_l_->typeset_element (span_p);
-
              
              info.broken_spanner_l_ = span_p;
              span_p->handle_broken_dependencies();
@@ -192,9 +180,6 @@ Spanner::broken_b() const
   return broken_info_.size();
 }
 
-
-
-
 Array<Rod>
 Spanner::get_rods () const
 {
@@ -202,6 +187,13 @@ Spanner::get_rods () const
   return r;
 }
 
+Array<Spring>
+Spanner::get_springs () const
+{
+  Array<Spring> s;
+  return s;    
+}
+
 void
 Spanner::do_space_processing ()
 {
@@ -210,4 +202,10 @@ Spanner::do_space_processing ()
     {
       rs[i].add_to_cols ();
     }
+
+  Array<Spring> ss (get_springs ());
+  for (int i=0; i < ss.size (); i++)
+    {
+      ss[i].add_to_cols ();
+    }
 }
index 055ab3c6dd670dfdb04bc839d7bf28aa54338230..8ef04b7f0792cd38128bbbd0c1f9a7e4c0ae009e 100644 (file)
@@ -393,6 +393,25 @@ Spring_spacer::add_column (Paper_column  *col, bool fixed, Real fixpos)
       r_rod.other_idx_ = this_rank;
       cols_[left_idx].rods_[RIGHT].push (r_rod);
     }
+#if 1 
+  if (experimental_features_global_b)
+    {
+      for (int i=0; i < col->spring_arr_drul_[LEFT].size (); i++)
+       {
+         Column_spring &cr = col->spring_arr_drul_[LEFT][i];
+         int idx = cr.other_l_->rank_i () - cols_[0].pcol_l_->rank_i ();
+         if (idx < 0)
+           continue;
+
+         if (cols_[idx].pcol_l_ != cr.other_l_)
+           continue;
+
+
+         connect (idx, this_rank, cr.distance_f_,
+                  cr.strength_f_ / cr.distance_f_);
+       }
+    }
+#endif  
   
   cols_.push (c);
 }
@@ -481,11 +500,10 @@ Spring_spacer::connect (int i, int j, Real d, Real h)
 void
 Spring_spacer::prepare()
 {
-  DOUT << "Preparing..";
-  calc_idealspacing();
+  if (!experimental_features_global_b)
+    calc_idealspacing();
   handle_loose_cols();
   print();
-  DOUT << "finished preparing.\n";
 }
 
 Line_spacer*
diff --git a/lily/spring.cc b/lily/spring.cc
new file mode 100644 (file)
index 0000000..8ba0ff7
--- /dev/null
@@ -0,0 +1,58 @@
+/*   
+  spring.cc --  implement Spring
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#include "spring.hh"
+#include "debug.hh"
+#include "item.hh"
+#include "p-col.hh"
+
+Spring::Spring ()
+{
+  item_l_drul_[LEFT]  =item_l_drul_[RIGHT] =0;
+  distance_f_ =0.;
+  strength_f_ =1.0;
+}
+
+void
+Spring::add_to_cols ()
+{
+  Direction d = LEFT;
+  do
+    {
+      item_l_drul_[-d]->column_l ()->add_spring
+       (item_l_drul_[d]->column_l (),
+        distance_f_, strength_f_);
+    }
+  while ((flip (&d))!=LEFT);
+}
+
+
+Column_spring::Column_spring ()
+{
+  other_l_ = 0;
+  distance_f_ =0;
+  strength_f_ =1.0;
+}
+
+
+int
+Column_spring::compare (Column_spring const & r1, Column_spring const &r2)
+{
+  return r1.other_l_->rank_i() - r2.other_l_->rank_i();
+}
+
+void
+Column_spring::print () const
+{
+#ifndef NPRINT
+  DOUT << "Column_spring { rank = "
+       << other_l_->rank_i () << ", dist = " << distance_f_ << "}\n";   
+
+#endif
+}
index f39bf56d2e0e0daae647a126ba51ee1397d4ae0f..aa3aab96286de9ffb8a14e5ba2a8d368466f05fa 100644 (file)
@@ -92,7 +92,7 @@ Stem_engraver::do_pre_move_processing()
 
   if (stem_p_)
     {
-      Scalar prop = get_property ("ydirection", 0);
+      Scalar prop = get_property ("verticalDirection", 0);
       Direction dir = prop.isnum_b () ? (Direction)int(prop) : CENTER;
       if (dir)
        {
index f726aaebf175f1617a2fea08b9fa12785d410ddb..04746dc634cedc8f760ad1fec743f0b5ae5b883f 100644 (file)
@@ -64,6 +64,10 @@ Tie_engraver::process_acknowledged ()
   
   if (req_l_)
     {
+
+      /*
+       JUNKME!
+       */
       if (old_behavior)
        {
          if (now_heads_.size () != stopped_heads_.size ())
@@ -148,8 +152,8 @@ Tie_engraver::do_pre_move_processing ()
     }
   now_heads_.clear ();
 
-  Scalar dir (get_property ("tieydirection", 0));
-  Scalar dir2 (get_property ("ydirection", 0));
+  Scalar dir (get_property ("tieVerticalDirection", 0));
+  Scalar dir2 (get_property ("verticalDirection", 0));
 
   Direction tie_dir = CENTER;
   if (dir.length_i () && dir.isnum_b ())
index 26ea948b441ba565e5a893583fa888a19a0592fd..dc7ac39b9ce60072f60674c0693000b76f4b0260 100644 (file)
@@ -28,7 +28,6 @@ Tie::Tie()
 {
   head_l_drul_[RIGHT] =0;
   head_l_drul_[LEFT] =0;
-  same_pitch_b_ =false;
 }
 
 
index cd93221d6c4277632c633413a61beb35c39980f2..05eb9b5ab495e0bc93626173b2319af25437dbb2 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.19";
+\version "1.0.20";
 
 
 \include "declarations.ly"
index 1e1140e6919ef16749fe37f7988008f7543798b4..eaf3e7bf2a2b0c5fc2e5748ad379dcf21f8033e5 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.19";
+\version "1.0.20";
 
 
 \include "declarations.ly";
index 4f962b8f8ffc3156a56cb8669012a5610634bd46..65c2f669d3c571a58eab10a32e4f47d083f4152f 100644 (file)
@@ -1,7 +1,7 @@
 % Toplevel initialisation file. 
        
 
-\version "1.0.19";
+\version "1.0.20";
 
 
 \include "declarations.ly"
index ee1fbdb1d494cbe03d57c7e8859875cdda85c844..4d5a0bf5dc28e0366fcaa943266c4709dd793779 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.19";
+\version "1.0.20";
 
 
 \include "declarations.ly"
index bb9afa28e9498a12270acd385de75489360691f2..a12244d0c7345a5c25a3456bf781421ef5ec8701 100644 (file)
@@ -158,8 +158,6 @@ StaffGroupContext= \translator {
        
        \accepts "Lyrics";
        \accepts "ChordNames";
-       \consistsend "Axis_group_engraver";
-
 };
 \translator { \StaffGroupContext }
 
index c6d18c374c5f83c042c651d04730cb009c60aa07..13500905ec911bf6195effb79591cdc874662858 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.19";
+\version "1.0.20";
 
 
 \include "declarations.ly"
index 0b32b36d0b6404424a4594cdc41509261e505f98..31215a15ca8d1f834ec03101d50b7ff7ce2d7d69 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.19";
+\version "1.0.20";
 
 
 \include "declarations.ly"
index 5951158137e6272026f036ea24f66bc272b321ad..5f652ecdcfcdce48d706124973b3ad6d36da8569 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.19";
+\version "1.0.20";
 
 
 \include "declarations.ly";
index 9e43e3d773a39e994155c15086c06a68f1296e62..8f03850e7ef4e78777123cb67c653ce7f1ce4982 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.19";
+\version "1.0.20";
 
 
 \include "declarations.ly"
index e7b0b5c41422aa9a99397bf0df837fb46b24c347..e499491a65402aeb3ae5c124f327211bb698b2dc 100644 (file)
@@ -2,7 +2,7 @@
 
 
 
-\version "1.0.19";
+\version "1.0.20";
 
 paper_sixteen = \paper {
        staffheight = 16.0\pt;
index 39cba96769bb3b804c2aeb0b8b66208c468e361e..2de985a5f01e9e496d2d9024a1d1de022d17e2ef 100644 (file)
@@ -1,7 +1,7 @@
 % paper20.ly
 
 
-\version "1.0.19";
+\version "1.0.20";
 
 paper_twenty = \paper {
        staffheight = 20.0\pt;
index 354d0f5664d48856c5cde856b983cdf5a2f51b12..f0f0ddf6c48f51454e466adcb22a359dc227806f 100644 (file)
 
 %{
 
-PROPERTIES
-
-name                   value   effect                  shorthand
-
-[Voice]
-ydirection             -1      force stem down         \stemdown
-ydirection             0       stem direction free     \stemboth
-ydirection             1       force stem up           \stemup
-
-pletvisibility         0       show nothing
-pletvisibility         1       show number
-pletvisibility         2       show (number and bracket)-if-no-beam
-pletvisibility         3       show number, and bracket-if-no-beam
-pletvisibility         4       show number, and bracket
-
-slurdash               0       normal slurs
-slurdash               1       dotted slurs
-slurdash               >1      dashed slurs
-
-slurydirection         -1      force stem down         \slurdown
-slurydirection         0       stem direction free     \slurboth
-slurydirection         1       force stem up           \slurup
-
-slurydirection         -1      force stem down         \slurdown
-slurydirection         0       stem direction free     \slurboth
-slurydirection         1       force stem up           \slurup
-
-textalignment          -1      left alignment of text
-textalignment          0       center alignment of text
-textalignment          1       right alignment of text
-
-beamAuto                0/1     auto-beam on/off
-beamAutoEnd            "num/den"    end auto-beam
-beamAutoEnd_8          "num/den"    end auto-beam of 8ths
-beamAutoEnd_16         "num/den"    end auto-beam of 16ths
-
-[Score?]
-beamslopedamping       0       no damping              \beamslopeproportional  
-beamslopedamping       1       damping1)               \beamslopedamped
-beamslopedamping       100000  zero slope              \beamslopezero
-
-[Score?]
-beamquantisation       0       no quantisations        \beamposfree
-beamquantisation       1       quantise pos and slope  \beamposnormal
-beamquantisation       2       quantise avoide wedge2) \beampostraditional
-
-[Staff]
-keyoctaviation 0       Key signature only for specified octave \specialkey
-keyoctaviation 1       Key signature for all octaves   \normalkey
-
-[Staff]
-barAlways              0       none
-barAlways              1       generate bar at every moment
-
-[Staff]
-barAuto                        0       none
-barAuto                        1       auto-generate bar every measure
-barAtLineStart         0/1     generate bar at beginning of line
-
-[Staff]
-timeSignatureStyle     C       Use C and stroked C for 4/4,2/2
-timeSignatureStyle     old     Use old style mensuration marks
-timeSignatureStyle     1       Use single number
-timeSignatureStyle     ""      Use normal two-digit time signature
-timeSignatureStyle     Cn/m    Set symbol explicitly, n/m=2/2 or 4/4   
-timeSignatureStyle     oldn/m  Set symbol explicitly,
-                               n/m=2/2,3/2,3/4,4/4,6/4 or 9/4.
-[Staff]
-voltaVisibility         0/1     on/off
-voltaSpannerDuration    Rat.    Coda kludge: set length of volta-spanner,
-                                typically set to one measure: "1"
-
-[Staff]
-clefStyle       "fullSizeChanges" Clef changes typeset in full size
-clefStyle       "transparent"     No clef typeset
-
-[Staff?]
-instrument             ascii   midi instrument table lookup
-
-[Score]
-chordInversion         0/1     Find and display chord with inversion?
-
-
-1) after beam slope damping table suggested in [Wanske]
-2) [Wanske] as well as [Ross] suggests that beams sloped upward must not 
-   start sitting on a staffline, and beams sloped downward must not hang 
-   from a staffline (similar for beam-ends).  This would create a wedge
-   that is traditionally being avoided because it could easily be filled-up 
-   with ink.
-   However, avoiding these wedges restricts the freedom of beams quite a lot 
-   while they don't seem to be a problem in modern printing.
-   In no piece of sheetmusic engraved after 1953 (Baerenreiter) i've seen 
-   these wedges being avoided.
+SEE THE REFERENCE MANUAL FOR EXPLANATIONS.
 
 %}
 
+\version "1.0.20";
+
 %hmm, (these) abbrevs suck, imo
 % i guess they're meant as some form of doco
 % that's what i use them for...
-stemup =        \property Voice.ydirection = \up 
-stemboth=      \property Voice.ydirection = \center
-stemdown =     \property Voice.ydirection = \down
+stemup =        \property Voice.verticalDirection = \up 
+stemboth=      \property Voice.verticalDirection = \center
+stemdown =     \property Voice.verticalDirection = \down
 
 slurup = \notes {
        s1*0
-       \property Voice.slurydirection = \up 
+       \property Voice.slurVerticalDirection = \up 
        }
 slurboth= \notes {
        s1*0
-       \property Voice.slurydirection = \center
+       \property Voice.slurVerticalDirection = \center
 }
 slurdown = \notes {    
        s1*0
-       \property Voice.slurydirection = \down
+       \property Voice.slurVerticalDirection = \down
 }
 
 shifton =      \property Voice.hshift = 1
@@ -155,25 +65,25 @@ onestaff =
 
 staffone = {   
        \translator Staff=one
-       \property Staff.ydirection = \center
+       \property Staff.verticalDirection = \center
        \property Staff.hshift = 0
 }
 
 stafftwo = {   
        \translator Staff=two
-       \property Staff.ydirection = \center
+       \property Staff.verticalDirection = \center
        \property Staff.hshift = 0
 }
 
 staffthree = {         
        \translator Staff=three
-       \property Staff.ydirection = \center
+       \property Staff.verticalDirection = \center
        \property Staff.hshift = 0
 }
 
 stafffour = {  
        \translator Staff=four
-       \property Staff.ydirection = \center
+       \property Staff.verticalDirection = \center
        \property Staff.hshift = 0
 }
 
@@ -285,3 +195,4 @@ endincipit = \notes{
     \property Staff.clefStyle = "fullSizeChanges" 
     \nobreak \bar "";
 }
+
index aea7644563353bcbf2844a99093ceb8f96520768..07cd9a06c2df52c2566b1de5be24d78247d21b3f 100644 (file)
@@ -18,7 +18,7 @@ README_FILES = BUGS DEDICATION ANNOUNCE-0.1 ANNOUNCEMENT-1.0 \
  COPYING NEWS-0.1 NEWS-1.0 NEWS-0.0 NEWS  TODO AIMS
 README_TXT_FILES = README.txt AUTHORS.txt INSTALL.txt PATCHES.txt
 IN_FILES := $(wildcard *.in)
-EXTRA_DIST_FILES = dstreamrc mudela-mode.el vimrc VERSION $(README_FILES)  $(SCRIPTS) $(IN_FILES)
+EXTRA_DIST_FILES = dstreamrc mudela-mode.el vimrc VERSION $(README_FILES)  $(SCRIPTS) $(IN_FILES) TASKS
 NON_ESSENTIAL_DIST_FILES = $(README_TXT_FILES)
 
 # bootstrap stepmake:
@@ -37,3 +37,7 @@ examples:
 localinstall:
        mkdir -p $(datadir)
        $(LN_S) $(TEX_TFMDIR) $(datadir)/cmtfm
+
+
+local-WWW-clean:
+       $(depth)/buildscripts/out/clean-fonts
index 58ef2d7a1d0a5714cef0d339fe26fe72581a03b5..e90c55e26d5c9bda79dbd444f22e7127ba68c2a4 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "violoncello.ly"
index 4dac9d5a0a46e5214872205272c3447be326e521..a43c6dfe97ed320556570acea790aadf2495c6ea 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "clarinetti.ly"
index f749b3337b4002e328b314e70bc53835f0e9f1e6..581cf740e573d554226911368f001125495f0f60 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "clarinetto-1.ly"
 \include "clarinetto-2.ly"
index 011fc4b94614c788b42866268c58b2a773e76615..7645f4172b62846390d8d9a5e5316f61d6a4d5f0 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 clarinetto1 = \notes \relative c {
        R1 *2 | d''4-.\ff r r2 | R1 *3 | e4-. r r2 | R1 *3 |
index 2d9b6c1d277a9d1341bc7a1ad9fcfbb25117dfad..7503d18ada2ab86dc7aed7c0e691e77916c2df33 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 clarinetto2 = \notes \relative c { 
        R1*2 bes''4-.\ff r r2 | R1*3 | cis4-. r r2 | R1 *3 | 
index ecf33ea66f4d9281ed2ff02213ade2c05023cbd4..0f0a58c52d009c717950b18e7425a6434887f32b 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "contrabasso.ly"
index 5bc30649fff327c24ad9d9a3967381a6f595a474..c958df6f43b2c6213b1f4f94e3783fb66747cdfc 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 contrabasso = \notes \relative c {
 %      \translator Staff=violoncello
index 1d962bb2b4e2f949e80015353e88b4567275b22e..aaa82c488b615bfe335f4cd6dfba810235e519f3 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 
index d887b9043254f582ee9dceeed9d07e2924644af0..b904ec9b8c63f8a9373cfe34ce1446419c7daad7 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "corni.ly"
index 4a1fe5d350472395e69e51e0708f4daa2aa5cc9d..dc490a270473c86c28140fa43aed784294e21d04 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "corno-1.ly"
 \include "corno-2.ly"
index 9490995a65df5b8a7d75633e50e522c6c1e6c8c0..5db1f242069beedba0575aca9709bea8129df1b0 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 corno1 = \notes \relative c {
        R1 *2 | f''4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
index 4de35788390e6429ba5d1d931116ce707c5f50a3..d05eb04bfd4f003022c3331de37f82a3c63bb559 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 corno2 = \notes \relative c {
        R1 *2 | d''4-.\ff r r2 | R1 *3 | d4-. r r2 | R1 *3 |
index d2cdd5b509ed5bf46ad147f98878d7d8c3dc414c..77cf1e3abfbeb1142dd258497af98d1edf2ee097 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "fagotti.ly"
index 963dc803ccf7c0682b95a85b6de4e3cbbafc4371..f8d277a5841ab389fee61fb736929f6699428544 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "fagotto-1.ly"
 \include "fagotto-2.ly"
index fa1c8fdd890011cce52ff69e04692cfacc9e603f..096176e76594d87b12f0edf81f5d114ba69b3741 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 fagotto1 = \notes \relative c {
        R1 *2 | as'4-.\ff r r2 | R1 *3 | as4-. r r2 | R1 *3 |
index 6968a3d9db529da49b020af81c76243f660c966b..d5aaf3e699ed920a01ac0da90a25344c3b9f22ce 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 fagotto2 = \notes \relative c {
        R1 *2 | f4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
index 41897d5b5df3a90b948593de587c889c35de4911..ff50562870406650053ce02b46659ccb29f241e8 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "flauti.ly"
index 146d4393d8fe04aa3f4117a3338084c7f1d54ce3..1557ba98d15ab994303806b32e64297cd74d2953 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "flauto-1.ly"
 \include "flauto-2.ly"
index dc8e42b044d3fd5f1e91dec7dbd6c7caf2090d9b..faf51d925c2c8e0cc89bdf4b529df069b6814df5 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 flauto1 = \notes \relative c {
        R1 *2 | c'''4-.\ff r r2 | R1 *3 | d4-. r r2 | R1 *3 |
index fc7ea80f260f2aa7b2617692c3c937802d79c076..310d69339831e962411b7f3e1973e30467880f99 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 flauto2 = \notes \relative c {
        R1 *2 | as'''4-.\ff r r2 | R1 *3 | b4-. r r2 | R1 *3 | 
index 29f30c4ac623b96e95a50949101da1305c9a840d..cf487141d8f6d3d629d56a150342c66b1a019cd0 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 global = \notes {
        \time 4/4;
index 14762ae2ae9206bc61897cdc768260c8aeba92d3..67d9d6d3b3650d017e269874dffcc2b267a1375f 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 oboe1 = \notes \relative c'' {
        R1 *2 | as'4-.\ff r r2 | R1 *3 | as4-. r r2 | R1 *3 |
index 6192a67009a9fc6f015cfa172b2879552f8b8366..c92d6d88d1712d126282037900d1d17c9a2d894f 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 oboe2 = \notes \relative c{
        R1 *2| f''4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
index def281f8ab98e7a8d4450d6d7d85317680bf7cbb..599c688daa7b8c09c10e0ff406eae80e6f91feed 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "oboi.ly"
index d11b71327fb6fc6bd1ade3e6667f9ad902f9e36c..b3f61ac178909d10b8e5de436eb6eff73f14e026 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "oboe-1.ly"
 \include "oboe-2.ly"
index 47eac136a94e96206d4598ac469df23c57541a43..b2fefcf9455ad9b7453950dd2419ecb337323998 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 timpani = \notes \relative c {
        R1 *2 | c4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
index 4db3dddbec6b872fe635e02a6649a998c81126f2..4065c85e5c392c45d60e9f002271f44058778e4e 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "trombe.ly"
index 54fe26bdc66d3362119eef76b87692cf89b945ce..f552fd2c6e91c162a3b29dba7b90452003f739d4 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "trombo-1.ly"
 \include "trombo-2.ly"
index f302239fe5420d705b1adb5025dcc7f93982e940..8d8952e75cae29e4c1c77a6de9c7a0bb8e0faabf 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 trombo1 = \notes \relative c {
        R1 *2 | c''4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
index 49235bf749808b13d7e21729d1c0fac76b14210a..3812ea54efa5ee77a8ad8aa9da435a1b5272afe5 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 trombo2 = \notes \relative c {
        R1 *2 | c'4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
index 78ca458dfece6786c34e77584d8d27b95bb8c6c9..92a2f3211fdba1d4e9bee8be3f64a61ff454a96a 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 viola1 = \notes \relative c {
        \context Voice=one
index 57488543b5c24c9be74e024b312de7dc26fc569f..b0e5f7fe04b7ed9244287a97c535e32ee81f1c29 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 viola2 = \notes \relative c {
        % starts on (actualy, most part is on) same staff as viola1
index 1d32273d91df660afa5aae010b37430f7b775170..e3ce9da93c2948083310587ca2085cd7e44b0cd1 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "viola-1.ly"
index 525541b9d7ec1dc0dc8aa07366d9ceedac5b6556..3ed4fb306fbb52ee6b25c4f3b1704da9ee284aea 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "violino-1.ly"
index 0ed1155615e726184569252a813683d1e75753ad..2e4b87f08a8a333b68affcb6da365b28b7a3546e 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 violino1 = \notes \relative c {
        c'1\ff ~ | c | <f4-. c'-. as'-.> r r2 | R1 |
index c9a83493bd0da63f9fe26845fd8f18dab4db4158..e738e9d9453057f0c2213b73b95ed67dbdaa6133 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "violino-2.ly"
index dc3afe6c098c4c0bab00aa3fe76b024289fa42c2..535a41690dd2b96d9ae7b35dfb858725c27b2bec 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 violino2 = \notes \relative c {
        c'1\ff ~ | c | <f4-. c'-. as'-.> r r2 | R1 |
index e7ab26480184d8fb930a1e57c9e778e5c7defe8f..4f40fbf0c86183e9d72e8cbf1d13b27183b0598e 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "violoncello.ly"
index d6c13a21a9632f96c531784e7a7f43c140ffbb68..070c820f6317e373438bdea54038df5270aa26ab 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 violoncello = \notes \relative c {
        c1\ff ~ | c | f,4-. r r2 | r1 | c'1\ff ~ | c | f,4-. r r2 |
index 767eb6d53faaab5e699981afb4f39c59315d0a0e..caf94189236757ba9be6b2a62f33ddb1fd9bc03a 100644 (file)
@@ -807,4 +807,4 @@ Bar_number_engraver;}}
 
 ----------------------------------------------------
 
-\version "1.0.19";
+\version "1.0.20";
index 710fee7651bc485714dcab3e83d713048ee95eff..e135d8343a79393ed46a80493d11df3c37353b34 100644 (file)
@@ -266,4 +266,4 @@ s1
 \paper{barsize=50.0; \translator {\StaffContext \consists
 Bar_number_engraver;}}
 }
-\version "1.0.19";
+\version "1.0.20";
index 0c2555a10b8c841fd56365f9833e1ad70a6be08c..af3e3b6c3d73792d92237b787ed329086f14eaf6 100644 (file)
@@ -336,4 +336,4 @@ g,4. |
 Bar_number_engraver;}}
 }
 
-\version "1.0.19";
+\version "1.0.20";
index a83ded214bdba94adbae2f9798f3c8776f82f9c9..7f861941550e33b08669a476735826ac7aa23018 100644 (file)
@@ -251,4 +251,4 @@ LHtoL = { \tolower \stemdown }
  
 
 }
-\version "1.0.19";
+\version "1.0.20";
index bbff16daa954d33e7973a2f4fbd49dc0ff2359ec..bffe458f1778640073580dd1db996750808c4dea 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.19";
+\version "1.0.20";
index d54e3abbb3d75e0e4cd1caecc3194d9d2f5b4516..524878c6038101be31460a0d9a3eb6f23467a84a 100644 (file)
@@ -17,7 +17,7 @@ title = "Verso II";
        under the Gnu Public Licence.
 %}
        
-\version "1.0.19";
+\version "1.0.20";
 
 $voice_one = \notes \relative c' {
        a'2 bes4. [c16 bes] | a4 d ~ d c ~ | c b ~ [b8 a] a4 ~|
index 7a313540c52f2bd1b3901cc6fc5064a024d63bc6..c2ecc576f91c9efa6d12bbcdacd7ab1d63712596 100644 (file)
@@ -12,7 +12,7 @@
  Tested Features: cross staff beams and slurs, grace notes, no bars
 %}
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "nederlands.ly"
 
@@ -78,7 +78,7 @@ bassbeam = \notes{
 
 lower = \context Voice=two \notes \relative c{
   \stemdown
-  \property Staff.slurydirection = 1
+  \property Staff.slurVerticalDirection = 1
 
   % snapnie, hoevaak relative c heeft ze nodig?
   < \notes\relative c \basloopje \bassbeam >
index 3222aed515f8105a209b41799c12afa5f328e4c3..4216696d5a924d50bdf4260a9a2ef8fb74fdfab3 100644 (file)
@@ -12,7 +12,7 @@
  Tested Features:
 %}
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "nederlands.ly"
 
index b79169a71431dadc90034e0e1e43b175d240177f..2ebcf919e3736b86898dc28c51803b84f0ca29eb 100644 (file)
@@ -9,6 +9,6 @@ description = "A schubert song in 16 pt";
 copyright =     "public domain";
 } 
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "standchen.ly"
index 35480ad44aa905f8c2c8a636c7982743b0b02156..9d32796aa84cb1d2bc0adda3cbb6a6e95c941849 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 description = "A schubert song in 20 pt";
 } 
 
-\version "1.0.19";
+\version "1.0.20";
 
 % fool make-website
 % \include "standchen.ly";
index 3e9096f8ec31d51c1e9d0e5792a3ac51d5de3b00..8012f243ecd8cdcc19343037d0ee60b43882395a 100644 (file)
@@ -16,7 +16,7 @@ multiple \paper{}s in one \score
 Note: Original key F.
 %}
 
-\version "1.0.19";
+\version "1.0.20";
 
 $vocal_verse1 = \notes\relative c''{
        % ugh: treble/bass
index 4f28bd2703964efe6cdd96f8d940df97e73c5041..61a8eac1c2f9e22c2a05db1217535d693df16ddd 100644 (file)
@@ -6,7 +6,7 @@ date = "1868";
 title = "Diademata";
 metre = "6 6. 8 6. D";
 }
-\version "1.0.19";
+\version "1.0.20";
 
 sop=\notes \transpose c''{
        ees2  | ees4 ees4 g2 g2 |  c'1.  \bar "||";
index 5a5f21c891a20a7b197a786ddf1eb54114cb92c1..f208db7e2783f947b5ca65fa7033fe996ed6da0d 100644 (file)
@@ -4,7 +4,7 @@ composer = "Parry";
 metre = "10 10 . 11 11";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 sop = \notes \transpose c''{
        f4 | d' bes c' | f2 \bar "||";
index 61af28cb6bebcc4c093384bf1bb5501a95e4497f..378f138a096998e4fe25aa51439f9e6d74b95d30 100644 (file)
@@ -7,7 +7,7 @@ title = "Maccabaeus";
 metre = "10 11. 11 11. and refrain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 sop=\notes \relative c'' {
        b2 gis4. a8  |b2 e,2 |
index 5f59a39a5d7722e75e644cdc5503dfa4243d867a..3cf2fd36bf80efac4e99ababade33b85fdf0f163 100644 (file)
@@ -7,7 +7,7 @@ title = "Ode to Joy";
 metre = "8 7 8 7 D";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 sop=\notes \relative c'' {
        b4 b c d | d c b a | g g a b | b4. a8 a2 \bar "||";
index 20b145ca573a31feab6d08c53a9fd9da3167ed83..4dd7397fa1eb9e7af2c323f62635ea346308431e 100644 (file)
@@ -8,7 +8,7 @@ poet = "Joseph Mohr";
 }
 
 
-\version "1.0.19";
+\version "1.0.20";
 
 global=\notes {
              \time 6/4;
index 1de961a843439b4dae552b07da01a3cc511052fb..5f7be0b367510b9f7e87a75d88e49d028ef34abe 100644 (file)
@@ -4,7 +4,7 @@
        piece = "Allemande";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 global = \notes{
        \time 4/4;
index d28fca30b1ab515f3d4dbceae6b29e42ce83795e..b5d1f9fd4bf2a02150d49241efec891d008404cc 100644 (file)
@@ -10,7 +10,7 @@
 %% 
 %% Noe liknende skjer ogsÃ¥ i mellom andre og tredje stemme i takt 28
 
-\version "1.0.19";
+\version "1.0.20";
 
 global = \notes{
        \time 2/4;
index 30d3c93c3c37cbc9ef2c5f96bcb7a5d91e87b65a..209c1f86c4e32175d41ea5f004dcb2e0569a5f00 100644 (file)
@@ -10,7 +10,7 @@
   copyright =   "Public Domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 global = \notes {
        \time 4/4;
index 1aea92781d8dc61c95f484bb6311d690d961f29d..728f9e4ca8dbfea5d943bf3a1c2b7cd251312593 100644 (file)
@@ -12,7 +12,7 @@ enteredby =    "jcn";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 % upper = \context Staff \notes\relative c {
 upper = \context Staff=upper \notes\relative c {
index 62fc254829dd18bb9b5ea128da04fcb3ad23ae0c..dac1d147e2d7cc81fd6464c5d318ce64e3fd8b20 100644 (file)
@@ -10,7 +10,7 @@ enteredby =    "jcn";
 copyright =     "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 upper = \context Staff \notes\relative c{
        \context Voice=i
        \property Voice . textstyle = "italic"
index c5ad7649c23e8b2959ce3c688b7f886485c604fa..cfb68c069553852c88521df19bc8e7a43f4a294b 100644 (file)
@@ -8,7 +8,7 @@ composer =      "Johann Sebastian Bach (1685-1750)";
 enteredby =    "jcn";
 copyright =    "public domain";
 }
-\version "1.0.19";
+\version "1.0.20";
 
 one = \context Staff \notes\relative c {
        \context Voice=i
index 0727edd6bd67d96f9a25031aa92d28efd06e7841..73060456769663832ed3c3dc5766b53aa50a0ffe 100644 (file)
@@ -8,7 +8,7 @@ composer =      "Johann Sebastian Bach (1685-1750)";
 enteredby =    "jcn";
 copyright =    "public domain";
 }
-\version "1.0.19";
+\version "1.0.20";
 
 
 upper = \context Staff \notes\relative c{
index 1cf5f26662ff28a7b5458be326ebba265e1bdaed..2aec8613d02fd89086fa4a09a8a5fc94d3316016 100644 (file)
@@ -8,7 +8,7 @@ composer =      "Johann Sebastian Bach (1685-1750)";
 enteredby =    "jcn";
 copyright =    "public domain";
 }
-\version "1.0.19";
+\version "1.0.20";
 
 
 one = \context Staff \notes\relative c{
index 102689731681528a18113f1b282a33b78c6a357c..a1215a3363cc2c70db6abe488db2b14f32e841b5 100644 (file)
@@ -104,4 +104,4 @@ allemande = \context Staff \notes<
 >
 
 
-\version "1.0.19";
+\version "1.0.20";
index f643af802110026db659a8cff26c81b62fc83738..2c80b4b2336e798eba2b818d2d600d20e3450061 100644 (file)
@@ -91,4 +91,4 @@ courante = \context Staff \notes<
  \$courante_b
 >
 
-\version "1.0.19";
+\version "1.0.20";
index 638f519953fa8617e3b8ed9449d0e6ecf74bbc5b..a7e752eec8ad5b74bd7e773f5d97b185e2d30789 100644 (file)
@@ -106,4 +106,4 @@ gigue = \notes<
        \$gigue_b
 >
 
-\version "1.0.19";
+\version "1.0.20";
index 4a750a49bbe913d23dbd41540490652aaf6ebf0a..da320dce164a639844667c8728aaece5038f0a45 100644 (file)
@@ -156,4 +156,4 @@ menuetto_ii = \context Staff\notes \relative c {
        d2.
 }
 
-\version "1.0.19";
+\version "1.0.20";
index c3dc87ebaf16378db5be22a3e545db68f65c2e01..1f6b58cb5fdc4b66c7f883649488844bca3d24db 100644 (file)
@@ -15,7 +15,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "prelude-urtext.ly";
 
index f328ff2e3a684dfdd8c02810643d9b7b3671bf87..d3237c389f7beee3c0de6197de79ac21570fe5c8 100644 (file)
@@ -280,4 +280,4 @@ prelude = \context Staff \notes<
        \$prelude_b
 >
 
-\version "1.0.19";
+\version "1.0.20";
index 1bab6e0727c24068d2ae7dfca87c5a1fe08f9de0..b68aafee14e38f74f629ba1510a9e6cd42be502a 100644 (file)
@@ -15,7 +15,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "prelude-urtext.ly";
 
index 6e5124bbc5dae65108afa4653164a68d5a923c2b..1ecb556ba48deb347e406bdb3ca37c355582ce06 100644 (file)
@@ -92,4 +92,4 @@ sarabande = \context Staff \notes<
        \$sarabande_b
 >
 
-\version "1.0.19";
+\version "1.0.20";
index 4dadc022320d3934e7f9f8c5509fa48e8d6962d5..41f00eb5eb8eed1b82b2ce7f0a72822e60c68126 100644 (file)
@@ -16,4 +16,4 @@ $viola_i_staff = \context Staff = viola <
        \clef alto;
        \$global_i
 >
-\version "1.0.19";
+\version "1.0.20";
index 0d3fff5b460f06406f35e496df17c55d5c1081a3..8634e194fad8217f83ca5b8f9d1988622886ca6e 100644 (file)
@@ -37,4 +37,4 @@ $violino_i_staff = \context Staff = violino <
        >
        \$global_i
 >
-\version "1.0.19";
+\version "1.0.20";
index d347fda26540241c5c7d2a1e92eade237f391a30..97081d2e98253a250281208dd8ce807da1df7856 100644 (file)
@@ -30,4 +30,4 @@ copyright =    "Public Domain";
        }
 }
 
-\version "1.0.19";
+\version "1.0.20";
index 58392fc2eac178f245ec37e8c8ff6a988dd926dc..3443a8d4aa974dc67b72aa3255f525e458e959c4 100644 (file)
@@ -30,4 +30,4 @@ copyright =    "Public Domain";
        }
 }
 
-\version "1.0.19";
+\version "1.0.20";
index db96ad0e509a7ee5526983257e6b0a53f9d154ab..cd0938f9612789e035c1f0793cd4f83384ff94c5 100644 (file)
@@ -28,4 +28,4 @@ $violoncello_i_staff = \context Staff = violoncello <
        \clef bass;
        \$global_i
 >
-\version "1.0.19";
+\version "1.0.20";
index 4a811eb1db3913999b47c7f89b3b14a49a4f05fa..8da979849b45da098689e2de3abf1ec330dc7d0d 100644 (file)
@@ -11,7 +11,7 @@ copyright =    "Public Domain";
 %{
        
 %}
-\version "1.0.19";
+\version "1.0.20";
 
 
 global = 
index 22948fd8e424ddb75349fe8b0011db078f90bc20..606dfabb852d7554ba431aae58e17a315077be0f 100644 (file)
@@ -19,7 +19,7 @@
    * auto beaming
 %}
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "nederlands.ly"                 % for correct parsing of note names
 
@@ -35,7 +35,7 @@ dux = \context Voice=two \notes \relative c''{
   \voicetwo
   \clef violin;
 
-  \property Voice.ydirection = "-1"
+  \property Voice.verticalDirection = "-1"
   
   r8 c16 b c8 g as c16 b c8 d |
   g, c16 b c8 d f,16 g as4 g16 f |
index f7c4d9886e8e03b5af873f4319a7cab8a85aa5eb..6f748109918dc2144e116d8399a7dbec32a6c3a9 100644 (file)
@@ -8,7 +8,7 @@ enteredby =      "Shay Rojansky";
 copyright =     "Public Domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 global = 
     \notes {
index 18e11c3871a0105d79a829f390817cd587f67475..8637d416f426ff5e8e45ee0325689c0f446b6490 100644 (file)
@@ -383,4 +383,4 @@ bassocontinuo = \notes \relative c'{
         \midi{ \tempo 4 = 100; }
 }
 
-\version "1.0.19";
+\version "1.0.20";
index 70378ad16e598ace49d88972310a407841329b80..5624bd37e154cdb4f44ea0ca04ba5b57ce006809 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 corI=\notes\relative c'' {
 \key c;
index 6a06446bc88b442f25ca8caca485c3888d946081..e70c89dbe294ccca907bcb102bef14dfeba553bd 100644 (file)
@@ -8,7 +8,7 @@ copyright =     "Mats Bengtsson, 1999. Free circulation permitted and " +
                "Statens Musikbibliotek, Stockholm, Sweden";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "wood.ly"
index af45976b133bb3f3c1c0288804bbb04f8b377e6f..ec55e58ff8e605af466f94294aff25718f565d7c 100644 (file)
@@ -8,7 +8,7 @@ copyright =     "Mats Bengtsson, 1999. Free circulation permitted and " +
                "Statens Musikbibliotek, Stockholm, Sweden";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "wood.ly"
index 64594ba0c7272eb4ed08f2c4b5763160bc3d2d96..af2739b0ada99fcc377ce375cf150a0c2ec2daa6 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 viI=\notes\relative c'' {
 
index 0167cbc8e11279edf9e97fb9b52a4f934f9ba2dd..25f85920b790e071d06cdde288df6e2f18ea5f80 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 oboe=\notes\relative c'' {
 \clef "treble";
index bb1324dea68c274f7b59781bf517df02253197fe..8eab69c625e578350e144e7ff423b81e12a3bbf6 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.19";
+\version "1.0.20";
 
 
 cad = \notes  \relative c' {
index 9d97c5244aeda69928a87aac2935cc2cdf6617cf..a5d5b6cd8fd0cc8a12d63d87928f53c37fed3b60 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 }
 
 
-\version "1.0.19";
+\version "1.0.20";
 
 allegro =
        \notes
index f889f73d66a44b0abd63ebc293f04c99d62ea17b..6d52d4ccae555ec2cbbb7a17635ca29f42c1f504 100644 (file)
@@ -8,7 +8,7 @@ enteredby =      "jcn";
 copyright =     "public domain";
 latexheaders=    "headers";
 } 
-\version "1.0.19";
+\version "1.0.20";
 
 
 
diff --git a/scripts/abc-2-ly.py b/scripts/abc-2-ly.py
new file mode 100644 (file)
index 0000000..f1e5dd9
--- /dev/null
@@ -0,0 +1,224 @@
+#!@PYTHON@
+
+# once upon a rainy monday afternoon.
+#
+#   ...
+#
+# (not finished.)
+# 
+
+name = 'abc-to-ly'
+version = '0.1'
+
+import getopt
+import sys
+import re
+import string
+header = {}
+global_voice_stuff = []
+default_len = 4
+
+
+def dump_header (hdr):
+       print '\\header {'
+       for k in hdr.keys ():
+               print '%s = "%s";\n'% (k,hdr[k])
+       print '};'
+
+def set_default_length (s):
+       m =  re.match ('1/(.*)$', s)
+       if m:
+               default_len = string.atoi ( m.group (1))
+
+def parse_timesig (s):
+       m =  re.match ('^M: *(.*)$', s)
+       if m:
+               print '\meter %s; ' % m.group (1)
+
+def parse_key (s):
+       m =  re.match ('^K: *(.*)$', s)
+       if m:
+               print '\key %s; ' % m.group (1)
+       
+def gulp_file(f):
+       try:
+               i = open(f)
+               i.seek (0, 2)
+               n = i.tell ()
+               i.seek (0,0)
+       except:
+               print 'can\'t open file: ' + f + '\n'
+               return ''
+       s = i.read (n)
+       if len (s) <= 0:
+               print 'gulped empty file: ' + f + '\n'
+       i.close ()
+       return s
+
+
+def try_parse_header_line (ln):
+       m = re.match ('^(.): *(.*)$', ln)
+
+       if m:
+               g =m.group (1)
+               a = m.group (2)
+               if g == 'T':
+                       header['title'] =  a
+               if g == 'M':
+                       global_voice_stuff.append ('\\time %s;' % a)
+               if g == 'K':
+                       global_voice_stuff.append ('\\key %s;' % a)
+               if g == 'O': 
+                       header ['origin'] = a
+               if g == 'X': 
+                       header ['crossRefNumber'] = a
+
+               if g == 'A':
+                       header ['area'] = a
+               if g == 'H':
+                       header ['history'] = a
+               if g == 'B':
+                       header ['book'] = a
+               if g == 'S':
+                       header ['subtitle'] = a
+               if g == 'L':
+                       set_default_length (ln)
+       
+
+       return m
+
+
+# WAT IS ABC EEN ONTZETTENDE PROGRAMMEERPOEP  !
+
+def try_parse_note (str):
+       mud = ''
+
+       slur_begin =0
+       if str[0] == '(':
+               slur_begin = 1
+               str = str[1:]
+
+       acc = None
+       if str[0] in '^=_':
+               c = str[0]
+               str = str[1:]
+               if c == '^':
+                       acc = 1
+               if c == '=':
+                       acc = 0
+               if c == '_':
+                       acc = -1
+
+        octave = 0;
+       if str[0] in "ABCDEFG":
+               str = string.lower (str[0]) + str[1:]
+               octave = -1
+
+
+       notename = 0
+       if str[0] in "abcdefg":
+               notename = ord(str[0]) - ord('a')
+               str = str[1:]
+       else:
+               return str              # failed; not a note!
+
+       while str[0] == ',':
+                octave = octave - 1
+                str = str[1:]
+       while str[0] == '\'':
+                octave = octave + 1
+                str = str[1:]
+       divide =0
+       if str[0] == '/':
+               divide =1
+               str = str[1:]
+       durstr = ''
+       while str[0] in "1234567890":
+               durstr = durstr + str[0]
+               str = str[1:]
+
+       duration_mult = 1
+       if durstr:
+               duration_mult = string.atoi (durstr)
+
+       
+       slur_end =0
+       if str[0] == ')':
+               slur_begin = 1
+               str = str[1:]
+
+
+       return str
+
+def junk_space (str):
+       while str and str[0] in '\t\n ':
+               str = str[1:]
+
+       return str
+
+def try_parse_bar (str):
+       if str[0] == '|':
+               str = str[1:]
+       return str
+       
+def try_parse_body_line (ln):
+       prev_ln = ''
+       while ln and  ln != prev_ln:
+               prev_ln = ln
+               ln = try_parse_note  (ln)
+               ln = try_parse_bar (ln)
+               ln = junk_space (ln)
+       if ln:
+               print 'Huh %s' % ln
+               
+
+def parse_file (fn):
+       f = open (fn)
+       ls = f.readlines ()
+
+       head = 1
+       for l in ls:
+               if re.match ('^[\t ]*(%.*)?$', l):
+                       continue
+               
+               if head:
+                       m = try_parse_header_line (l)
+                       if not m:
+                               head = 0
+
+               if not head:
+                       m = try_parse_body_line (l)
+
+
+def identify():
+       print '%s %s' % (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.
+
+-h, --help   this help.
+"""
+
+identify()
+(options, files) = getopt.getopt (sys.argv[1:], 'h', ['help'])
+
+for opt in options:
+       o = opt[0]
+       a = opt[1]
+       if o== '--help' or o == '-h':
+               help ()
+       else:
+               print o
+               raise getopt.error
+
+
+for f in files:
+       if f == '-':
+               f = ''
+       
+       parse_file (f)
+       dump_header (header)
+       print global_voice_stuff, 1
+       
index ec6eaa10694a69950fbd66eb0fe04f22bb89aff4..ea0ed1e9211d11e137fce95b9ea8eb4022af68b4 100644 (file)
@@ -324,6 +324,20 @@ if 1:
                            'fontsize -> fontSize, midi_instrument -> midiInstrument, SkipBars -> skipBars')
 
 
+if 1:
+       def conv(lines):
+               newlines =[]
+               for x in lines:
+                       x =  re.sub ('tieydirection','tieVerticalDirection', x)
+                       x =  re.sub ('slurydirection','slurVerticalDirection', x)
+                       x =  re.sub ('ydirection','verticalDirection', x)                       
+                       newlines.append (x)
+               return newlines
+
+       conversions.append ((1,0,20), conv,
+                           '{,tie,slur}ydirection -> {v,tieV,slurV}erticalDirection')
+
+
 
 ############################
        
index 0b5875526ead28e88c103ce6eae161163aa6810e..c9eb62d4b5b6e20bb6d17b1c29d1573e95666243 100644 (file)
@@ -1,4 +1,3 @@
-#!/usr/bin/python
 #!@PYTHON@
 
 # mup-to-ly.py --