]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 0.0.31 release/0.0.31
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 12 Feb 1997 20:25:34 +0000 (21:25 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 12 Feb 1997 20:25:34 +0000 (21:25 +0100)
60 files changed:
.dstreamrc
Documentation/Makefile
Documentation/make_website [new file with mode: 0755]
NEWS
Sources.make
TODO
Variables.make
hdr/break.hh
hdr/complexwalker.hh
hdr/directionalspanner.hh
hdr/inputcommand.hh
hdr/inputcommands.hh
hdr/inputstaff.hh
hdr/item.hh
hdr/key.hh
hdr/keyitem.hh
hdr/lookup.hh
hdr/notehead.hh
hdr/paper.hh [deleted file]
hdr/paperdef.hh [new file with mode: 0644]
hdr/qlp.hh
hdr/qlpsolve.hh
hdr/request.hh
hdr/sourcefile.hh
init/symbol.ini
input/Makefile
input/coriolan-alto.ly [new file with mode: 0644]
input/error.ly
input/standchen.ly
input/wohltemperirt.ly
src/bar.cc
src/beam.cc
src/break.cc
src/calcideal.cc
src/clefitem.cc
src/complexprint.cc
src/headreg.cc
src/inputscore.cc
src/keyitem.cc
src/localkeyitem.cc
src/lyricitem.cc
src/meter.cc
src/note.cc
src/notehead.cc
src/paper.cc [deleted file]
src/paperdef.cc [new file with mode: 0644]
src/parser.y
src/pscore.cc
src/rest.cc
src/score.cc
src/scoreline.cc
src/script.cc
src/slur.cc
src/staff.cc
src/staffline.cc
src/staffsym.cc
src/stem.cc
src/textdef.cc
src/textitem.cc
src/textspanner.cc

index 088fbcc81a976d2d14b6b4d7b8a683b6dc8666c3..5c98922777e4cc878b0293ada0171398189a6ca4 100644 (file)
@@ -22,15 +22,15 @@ Lexer                       1
 parse_duration         1
 parse_pitchmod         1
 Col_configuration      1
-Request                        1
+Request                        0
 Note_req               1
-Rhythmic_req           1
+Rhythmic_req           0
 Rest_req               1
 delete_identifiers     1
 Command                        1
 Staff_commands         1
 Stem                   1
-Staff                  1
+Staff                  0
 Score                  1
 Voice                  1
 Voice_element          1
@@ -39,7 +39,7 @@ Commands_at           1
 Input_command          1
 Time_description       1
 Melodic_req            1
-Stem_req               1
+Stem_req               0
 Group_change_req       1
 Script_req             1
 Colinfo                        1
index f8b08366bcc6c702523c7b54bbc459fe5b974186..c025773895212f810670c8909f639c7502da691c 100644 (file)
@@ -3,7 +3,7 @@ PODS=README.pod CodingStyle.pod lilygut.pod lilyinput.pod error.pod\
 TXTS=$(PODS:.pod=.txt)
 MANS=$(PODS:.pod=.1)
 HTMLS=$(PODS:.pod=.html)
-DISTFILES=$(PODS) Makefile lelie_logo.png #lelieblond.gif 
+DISTFILES=$(PODS) Makefile lelie_logo.png make_website #lelieblond.gif 
 
 
 default:
@@ -23,5 +23,8 @@ clean:
        pod2man --center="LilyPond documentation" --section="0"\
                --release="LilyPond $(MAJVER).$(MINVER).$(PATCHLEVEL)" $< > $@
 
-html: 
-       pod2html
\ No newline at end of file
+html: $(pod)
+       pod2html
+
+htmldist: html
+       make_website
diff --git a/Documentation/make_website b/Documentation/make_website
new file mode 100755 (executable)
index 0000000..d241527
--- /dev/null
@@ -0,0 +1,33 @@
+#!/usr/bin/perl -w
+sub
+       set_hrefs
+{
+    while (<HTMLIN>) {
+       s#href=([A-Za-z.]+)#href=$base/$1#g;
+       print HTMLOUT $_;
+    }
+}
+
+local $base="lilypond/";
+local @examples=("wohltemperirt");
+
+system  'make html';
+
+print "resetting refs.\n";
+
+foreach $a (<*.html>)
+{
+    rename $a, "$a~";
+    open HTMLIN, "$a~";
+    open HTMLOUT, ">$a";
+    set_hrefs;
+}
+
+foreach $a (@examples) {
+    $texfile="test";
+    system "cd ..; lilypond input/$a; tex $texfile; dvips $texfile;";    
+    system "mv ../$texfile.ps $a.ps";
+    system "gs -q -sDEVICE=ppmraw -sOutputFile=- -r200 -dNOPAUSE  $a.ps -c quit |pnmscale 0.5| ppmtogif > $a.gif"
+}
+
+system "tar cfz website.tgz *.html *.gif *.png *.ps " 
diff --git a/NEWS b/NEWS
index 0646a2661dfd79318f529327b3d7563908d90e32..1899d8f4c7ff9c1ce73aae4bbba6b956b6acec9c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,11 @@
+pl 31
+
+Examples
+       - Coriolan example (JN)
+       - standchen updated
+Bugfix
+       - calcideal assertion bugfix
+
 pl 30
 
 Features
@@ -13,7 +21,7 @@ Internal
        - split register source files
        - hardcoded dimensions compile time
        - Lookup::tex_hairpin
-Bugs
+Bugfix
        - non G-clef clefs
        - script junking (2x)
        - empty files
index e7e7a22782eeceeae3f1822b72da4cc243b5bebf..dad8bf273410848c8d25ce7d94d9e902d612b77c 100644 (file)
@@ -12,7 +12,7 @@ hdr=   bar.hh beam.hh boxes.hh break.hh clef.hh clefitem.hh\
        localkeyitem.hh localkeyreg.hh lookup.hh \
        lyriccolumn.hh  lyricitem.hh lyricstaff.hh lyricwalker.hh\
        main.hh  meter.hh misc.hh\
-       molecule.hh moment.hh notehead.hh notename.hh offset.hh paper.hh\
+       molecule.hh moment.hh notehead.hh notename.hh offset.hh paperdef.hh\
        parseconstruct.hh pcol.hh proto.hh pscore.hh pstaff.hh qlp.hh\
        qlpsolve.hh register.hh request.hh rest.hh \
        sccol.hh score.hh\
@@ -40,7 +40,7 @@ mycc=bar.cc beam.cc boxes.cc break.cc calcideal.cc clef.cc\
        lyriccolumn.cc lyricitem.cc lyricstaff.cc lyricwalker.cc\
        main.cc  meter.cc\
        misc.cc molecule.cc mylexer.cc note.cc notehead.cc  notename.cc\
-       paper.cc pcol.cc pscore.cc pstaff.cc qlp.cc qlpsolve.cc\
+       paperdef.cc pcol.cc pscore.cc pstaff.cc qlp.cc qlpsolve.cc\
        register.cc request.cc rest.cc  sccol.cc score.cc\
        scoreline.cc scores.cc script.cc scriptdef.cc scriptreg.cc \
         slur.cc\
@@ -60,7 +60,7 @@ mycc=bar.cc beam.cc boxes.cc break.cc calcideal.cc clef.cc\
 stablecc=request.cc bar.cc boxes.cc break.cc  clef.cc getcommands.cc grouping.cc\
        item.cc keyword.cc leastsquares.cc \
        linepstaff.cc linespace.cc lookup.cc molecule.cc meter.cc\
-       paper.cc parser.cc lexer.cc pstaff.cc qlp.cc qlpsolve.cc\
+       paperdef.cc parser.cc lexer.cc pstaff.cc qlp.cc qlpsolve.cc\
        template1.cc template2.cc template3.cc template4.cc\
        template5.cc template6.cc version.cc tstream.cc  tex.cc\
        voice.cc wordwrap.cc spanner.cc 
diff --git a/TODO b/TODO
index 44068657a7177b73dced4765fdae983dc282031c..ab8df4498746cc5a1ed66dbc9ce0114dfd2caeed 100644 (file)
--- a/TODO
+++ b/TODO
@@ -26,6 +26,8 @@ INPUTLANGUAGE
 
 SMALLISH PROJECTS
 
+       * read from mmap directly: study yy_scan_buffer
+
        * binsearch for notenames
 
        * stafftypes: voice names/ instrument names.
@@ -65,6 +67,8 @@ DOC
 
        * all errors
 
+       * a decent webpage
+
 FUTURE
 
        * warning: beam(): Beam too narrow: beam gen not per stem
@@ -121,4 +125,4 @@ IDEAS
 
        * PostScript output (esp. Beams, Slurs, etc)
 
-       * caching breakpoints
\ No newline at end of file
+       * caching breakpoints\r
index 38280146fd2dc66dea5b4c60b50de2a4453f537e..6d2ad10580f5a1454dc34c7c8e4cf5cafb330f13 100644 (file)
@@ -3,9 +3,9 @@
 # version info
 MAJVER=0
 MINVER=0
-PATCHLEVEL=30
+PATCHLEVEL=31
+
 
-include Site.make
 
 ####
 #### USER CONFIGURABLE
@@ -107,4 +107,6 @@ SUBDIRS=Documentation $(OBJECTDIR) $(CCDIR) $(HEADERDIR) $(INITDIR) $(DEPDIR) \
 depfile=deps/$(subst .o,.dep,$(notdir $@)) 
 DODEP=rm -f $(depfile); DEPENDENCIES_OUTPUT="$(depfile) $(OBJECTDIR)/$(notdir $@)"
 
-STRIPDEBUG=strip --strip-debug
\ No newline at end of file
+STRIPDEBUG=true # replace to do stripping of certain objects
+
+include Site.make
\ No newline at end of file
index 7d17470228d7a59756f25a1e6a9a91aae358f377..886e2d788bbcad26e802e109366fb2097a5b2577 100644 (file)
@@ -10,6 +10,8 @@
 #include "proto.hh"
 #include "colhpos.hh"
 
+/** Class representation of an algorithm which decides where to put
+  the column, and where to break lines.  */
 struct Break_algorithm {
     PScore &pscore_;
     Real linelength;
index 2ada9fe642b4322e207119a31531d6ed565095ee..a4ba27b03b925d30e5a6a0394bdd8e4bb60c282c 100644 (file)
 #include "register.hh"
 #include "localkeyreg.hh"
 
+
+/**
+  A staff walker which uses registers to what to print
+ */
 struct Complex_walker: Staff_walker {
     Local_key local_key_;
     Key key_;
index 8868bbfd6def48ba8c9d492a66c5950b73eb962a..1578edf5740e121dacf974604b9083758217b509 100644 (file)
@@ -9,6 +9,7 @@
 
 #include "spanner.hh"
 
+/// a spanner which can be pointing "up" or "down"
 struct Directional_spanner : Spanner{
     
     /// -1 below heads, +1 above heads.
index d937f9ab8aa13490fc1446d8b96744d7e096da6c..8437454d9a732e116b6f8ea2619096ad51476eff 100644 (file)
@@ -10,7 +10,7 @@
 #include "scalar.hh"
 #include "varray.hh"
 #include "moment.hh"
-
+/// command without time assoced 
 struct Input_command {
     /// analogous to argv[]
     Array<Scalar> args;
index d40885407afd8e074cf54e739ca56b69d02f4035..94d94c42021d367422934169239c612f09ca8b7b 100644 (file)
@@ -7,7 +7,6 @@
 #ifndef INPUTCOMMANDS_HH
 #define INPUTCOMMANDS_HH
 
-//#include "pcursor.hh"
 #include "proto.hh"
 #include "plist.hh"
 #include "real.hh"
index c1252ad01d21df2d0bf716f67e32c22ca2a95830..cc9f823885b06a8c4fc26ef87737b5faaea47528 100644 (file)
@@ -14,7 +14,7 @@
 
 struct Input_staff {
     
-    /// defined where?    
+
     const char * defined_ch_c_l_;
     String type;
     IPointerList<Input_command*> commands_;
index e934f279f7374a639b8c0d47d34270c5727bb952..a5a9442dc971439c76fc1099433aa18e37fc2c2c 100644 (file)
@@ -16,7 +16,6 @@
   spacing calculation. 
   
 */
-
 struct Item : Staff_elem {
     /// indirection to the column it is in
     PCol * pcol_l_;
index fa41082fd87b0e0c911f7a8b51d3f8b9217c84af..7a755244a850762f61a17d0b28985f69082748b9 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  key.hh -- part of LilyPond
+  key.hh -- declare Key
 
   (c) 1996,97 Han-Wen Nienhuys
 */
@@ -10,6 +10,7 @@
 #include "varray.hh"
 #include "scalar.hh"
 
+/// administration of current key
 class Key {
     Array<int> accidentals;
 
@@ -24,6 +25,7 @@ public:
     int acc(int i) { return accidentals[i]; }
 };
 
+/// administration of accidentals
 struct Local_key
 {
     void reset(Key);    
index 1d1d2e37f06ba1eae122d92ac4d927b9fe9fe4d3..b882c9551a15eaf5e8c9230c4399e41b74f8b076 100644 (file)
@@ -12,7 +12,7 @@
 
 struct Clef;
 
-///   An item which places accidentals at the start of the line
+/// An item which places accidentals at the start of the line
 struct Keyitem : Item {
     const char * name() const;
     Array<int> pitch;
index 540bf664f7eb2160100604d7c88fd8087d147e28..28bd8677eac7df8026d1ffe57939d7844317f385 100644 (file)
@@ -8,6 +8,7 @@
 #include "fproto.hh"
 #include "scalar.hh"
 
+/// intuitive interface to symbol table
 struct Lookup {
     Symtables *symtables_;
     String texsetting;
index b3b7d3ad23b8b43c8e29f3b06def58b925a5a82d..febbe4d9559792712e476f02c988ca891a579618 100644 (file)
@@ -19,7 +19,7 @@ takes care of:
 
 struct Notehead : Item {
     const char * name() const;
-    const char* defined_ch_c_l_m; //sorry, trying to find error in martien.ly
+
     int position;
     /// -1 = lowest, 0 = inside, 1 = top
     int extremal;
diff --git a/hdr/paper.hh b/hdr/paper.hh
deleted file mode 100644 (file)
index da9ebd1..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#include "proto.hh"
-#include "real.hh"
-#include "string.hh"
-#include "moment.hh"
-
-
-/** symbols, dimensions and constants
-
-  This struct takes care of all kinds of symbols, dimensions and
- constants. Most of them are related to the point-size of the fonts,
- so therefore, the lookup table for symbols is also in here.
-
- see TODO
- */
-struct Paperdef {
-    Lookup *lookup_p_;
-    String outfile;
-
-    Real linewidth;
-
-    /// how much space does a whole note take (ideally?)
-    Real whole_width;
-
-    /// ideal = geometric_ ^ log2(duration)
-    Real geometric_;
-    
-    /* *************** */
-    void reinit();
-    Paperdef(Lookup*);
-    void set(Lookup*);
-    ~Paperdef();
-    Paperdef(Paperdef const&);
-    Real interline()const;
-    Real internote()const;
-    Real rule_thickness()const;
-    Real standard_height()const;
-    Real note_width() const;
-    void print() const;
-    Real duration_to_dist(Moment);
-};
-
diff --git a/hdr/paperdef.hh b/hdr/paperdef.hh
new file mode 100644 (file)
index 0000000..03abf6a
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+  paperdef.hh -- declare 
+
+  source file of the LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#ifndef PAPERDEF_HH
+#define PAPERDEF_HH
+#include "proto.hh"
+#include "real.hh"
+#include "string.hh"
+#include "moment.hh"
+
+
+/** symbols, dimensions and constants
+
+  This struct takes care of all kinds of symbols, dimensions and
+ constants. Most of them are related to the point-size of the fonts,
+ so therefore, the lookup table for symbols is also in here.
+
+ see TODO
+ */
+struct Paperdef {
+    Lookup *lookup_p_;
+    String outfile;
+
+    Real linewidth;
+
+    /// how much space does a whole note take (ideally?)
+    Real whole_width;
+
+    /// ideal = geometric_ ^ log2(duration)
+    Real geometric_;
+    
+    /* *************** */
+    void reinit();
+    Paperdef(Lookup*);
+    void set(Lookup*);
+    ~Paperdef();
+    Paperdef(Paperdef const&);
+    Real interline()const;
+    Real internote()const;
+    Real rule_thickness()const;
+    Real standard_height()const;
+    Real note_width() const;
+    void print() const;
+    Real duration_to_dist(Moment);
+};
+
+#endif // PAPERDEF_HH
+
index 6e82aa9c40fa717135191392102abbaceafff6f8..7bc667b95693f13c66f66982713d196e51f0d560 100644 (file)
@@ -1,3 +1,11 @@
+/*
+  qlp.hh -- declare Ineq_constrained_qp, Mixed_qp
+
+  source file of the LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
 #ifndef QLP_HH
 #define QLP_HH
 
@@ -18,8 +26,8 @@ public:
     /**
       use a KKT method to assert optimality of sol
       */
-     void assert_solution(Vector sol) const;
-  /// solve the problem using a projected gradient method
+    void assert_solution(Vector sol) const;
+    /// solve the problem using a projected gradient method
     Vector solve(Vector start) const;
     
     /** return the number of variables in the problem */
@@ -61,8 +69,6 @@ public:
 
     x^T QUAD x /2 + b^T x 
 */
-
-
 class Mixed_qp :public Ineq_constrained_qp {
     Array<int> eq_cons;
     Array<Real> eq_consrhs;
index aefcc767e7d75b3ec53d0205f0a1802c1252c635..811556c362b680a69af431f9d5575f5e4328e41e 100644 (file)
@@ -1,3 +1,14 @@
+/*
+  qlpsolve.hh -- declare  Active_constraints, Inactive_iter
+
+  source file of the LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#ifndef QLPSOLVE_HH
+#define QLPSOLVE_HH
 #include "qlp.hh"
 #include "matrix.hh"
 
@@ -76,3 +87,5 @@ public:
     Real rhs() const { return ac->rhs(constraint_id()); }
     bool ok() const { return j < ac->inactive.size(); }
 };
+
+#endif // QLPSOLVE_HH
index d07bbd346995a6795d0b4c417cb87fcd9f97b1c3..b533a3fbb53c0db029efc30574bc42a05fef47d4 100644 (file)
@@ -124,7 +124,7 @@ struct Lyric_req : public Rhythmic_req, Text_req {
     REQUESTMETHODS(Lyric_req, lreq_l);
 };
 
-
+/// request which has some kind of pitch
 struct Melodic_req :virtual  Request
 {
     /// 0 is c
@@ -244,21 +244,15 @@ struct Staff_command_req : Request {
 
 #if 0
 
-///Put a lyric above or below (?) this staff.
-struct Lyric_req : Request {
-    String text;
-};
-
-
 
 ///Draw a (Guitar) chord above or below this ``note''
-struct Chord : Request {
-       // don't know how this looks.
-};
 /**
 Why a request?
 Because everything else is done in requests.
 */
+struct Chord : Request {
+       // don't know how this looks.
+};
 
 
 /// for absolute dynamics
@@ -268,13 +262,13 @@ enum Loudness {
 
 
 ///Start / stop a slur or a bracket.
-struct Bracket_req : Span_req {
-    int nplet;                 // print a number over the beam.
-};
 /**
 Start/stop a bracket at this note. if #nplet# is set, the staff will
 try to put an appropriate number over the bracket
 */
+struct Bracket_req : Span_req {
+    int nplet;                 // print a number over the beam.
+};
 
 struct Subtle_req {
     Moment subtime;
index 38a420248b3bde368d7c9e7a6e5380288e2080d3..f92631dbe06db523704c6fbe917f5279d9ddd4cf 100644 (file)
@@ -1,11 +1,12 @@
 //
-//  sourcefile.hh -- part of LilyPond
+//  sourcefile.hh -- declare Source_file
 //
 //  copyright 1997 Jan Nieuwenhuizen <jan@digicash.nl>
 
 #ifndef SOURCE_FILE_HH
 #define SOURCE_FILE_HH
 
+/// class for reading and mapping a file. 
 class Source_file
 {
 public:
index eab55e899f500a446e0101c0aab341d5a0fce822..7de1e0f52114984bfd420a9994d570350e3c87dd 100644 (file)
@@ -1,7 +1,7 @@
 
 
-include "init/dutch.ini"
-include "init/script.ini"
-include "init/table_sixteen.ini"
+include "dutch.ini" # do not include init/ path
+include "script.ini"
+include "table_sixteen.ini"
 
 
index 182b105fb00d8177a56802424ffdfb6b963f0008..c9888dd680c8e1f6ede0a0d2aa962b2a270a2dbd 100644 (file)
@@ -4,6 +4,7 @@ DISTFILES=Makefile  kortjakje.ly pavane.ly  maartje.ly\
        cadenza.ly scales.ly standchen.ly twinkle.ly\
        wohltemperirt.ly error.ly\
        martien.ly mlalt.ly mlvio1.ly mlvio2.ly mlcello.ly\
+       coriolan-alto.ly\
        standchen.tex pavane.tex scsii-menuetto.tex scsii-menuetto.ly\
        martien.tex
 
diff --git a/input/coriolan-alto.ly b/input/coriolan-alto.ly
new file mode 100644 (file)
index 0000000..959c4d7
--- /dev/null
@@ -0,0 +1,85 @@
+% Ludwig van Beethoven (1770-1792)
+%
+% Opus 62
+% Ouverture zu Collins Trauerspiel "Coriolan"
+%
+% a 5 bar fragment of the alto part
+%
+% Copyright (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+%
+% when lily can handle this, i-ll type the other 304 bars 
+% (maybe even sooner :-)
+%
+
+alto = music { 
+       $
+       \duration{ 8 }
+
+       % these are chords (i.e. non-divisi)
+       % that-s why i-d rather type chords, 
+       % but how to type slurs?
+%30     
+               {       
+               \music{ 
+                       [ c c-. ] c2.( | 
+%31
+                       [ ) c c-. ] c2.( | 
+%32
+                       [ ) c c-. ] c4. c-. c4( |
+%33
+                       [ ) c c-. ] c4. c-. c4 
+               }
+%30:2
+               \music{ 
+                       \octave{ ` }
+                       \textstyle "italic"
+                       % this should be a dynamic, rather than text
+                       [ c c_"cresc. \ \ - \ \ \ \ - \ \ \ \ - \ \ \ \
+                               - \ \ \ \ - \ \ \ \ - \ \ \ \ - \ \ \ \
+                               - \ \ \ \ - \ \ \ \ - \ \ \ \ - \ \ \ \
+                               - \ \ \ \ - \ \ \ \ -" ] c2.( |  
+                       \textstyle "roman"
+%31:2
+                       [ ) c c-. ] c2.( | 
+%32:2
+                       [ ) c c-. ] c4. c-. c4( | 
+%33:2
+                       [ ) c c-. ] c4. c-. c4 |
+                       \octave{ }
+               }
+       }
+%34
+       % these are two voices (i.e. divisi)
+       % the c4 and c2, however are really 16th...
+       % e.g.: c16*4 and c16*8  or
+       %       [ c4 c2 ]*16 ?
+       % we-ll say "simile" for now...
+       % 
+               { \multivoice
+               \music{ \stem{ 1 }[ c16^"div." c16 c16 c16 ] c4 c2 }
+               \music  { 
+                       \octave{ ` }
+                       \textstyle "italic"
+                       \stem{ -1 } [ as16_"\ff" as16 as16 as16 ] as4_"simile" as2
+                       \textstyle "roman"
+               }
+       }
+       $
+}
+
+score {
+       staff { melodic music { alto }
+               commands {
+                       clef "alto"
+                       key $c es as$ % c ??? 
+               }
+       }
+       commands { 
+               meter 4*4
+               skip 5:0
+       }
+       paper { 
+               unitspace 14mm
+               geometric 1.4
+       }
+}
index 82e5d190c68bd8e25712a3cc3d042650ad6b229a..9cc63116978f73466b34157b3345086d4706c482 100644 (file)
@@ -1,5 +1,8 @@
 mwa = music {
        $
+%      [ a8 a8 a8 a8 a8 ]      % assertion fail
+%      [ a8 a8 a8 ]    % assertion fail
+%      [ a8 ]  % assertion fail
        a ) b ] c       % warning
        &               % ok; error
        a b ) ]         % ok; error
index d10b99a27b5d4943dc68d6c8c2823911d6fd3666..279cd513be7d13dedf171f1cc24436444f5c427a 100644 (file)
@@ -12,9 +12,9 @@
 % comments with # note missing stuff
 % heu, make that %#%
 %
-%% Still looks fairly on the "ugh" side the beauty scale, mainly because of
-%% LilyPond's naive idealspacing calc.
-%%
+% thanks to \music "2" group changing, all notes 
+% (except for grace notes) are printed
+%
 
 %#%%
 %#%\title{St\"andchen}
 %%1
 melodie = music { $ 
        \duration{ 8 }
-%      r_"\pp" { [ d `a-| } f-| { d `a-| } f-| { d `a-| ] }
-       r { [ d `a-|_"\pp" } f-| { d `a-| } f-| { d `a-| ] }
+       r_"\pp" { [ d `a-| } f-| { d `a-| } f-| { d `a-| ] } |
 %%2
-       r { [ d `bes-| } f-| { d `bes-| } f-| { d `bes-| ] }
+       r { [ d `bes-| } f-| { d `bes-| } f-| { d `bes-| ] } |
 %%3
        \textstyle "italic"
        r_"simile" { [ d `bes } e { d `bes } e { d `bes ] }
-       \textstyle "roman"
+       \textstyle "roman" |
 %%4
-       r { [ `a cis } e { `a cis } e { `a cis ] }
+       r { [ `a cis } e { `a cis } e { `a cis ] } |
 %#%:|
 %%5
-       \plet{ 2/3 } [ a()bes a ] \plet{ 1/1 } 'd4. a
+       \plet{ 2/3 } [ a()bes a ] \plet{ 1/1 } 'd4. a |
 %%6
-       \plet{ 2/3 } [ g()a g ] \plet{ 1/1 } 'd4 a r
+       \plet{ 2/3 } [ g()a g ] \plet{ 1/1 } 'd4 a r |
 %#%\tighten
 %#%\newline
 %%7
-       a4.^> g \plet{ 2/3 } [ g( f )e ] \plet{ 1/1 }
+       a4.^> g \plet{ 2/3 } [ g( f )e ] \plet{ 1/1 } |
 %%8
-       f2 r4
+       f2 r4 |
 %%9
-%#%    { 'a4.( 'cis4.\stemdown_p } { ) 'g 'e_{dolce} }
-%#%    { 'g( 'e } 'f ) 'e
-       'a4.( )'g \plet{ 2/3 } { 'g 'e } { 'f } { 'e } \plet{ 1/1 }
+       { \music{ 'a4.( )'g \plet{ 2/3 } [ 'g( 'f )'e ] \plet{ 1/1 } }
+         \music{ 'cis4. 'e_"dolce" \plet{ 2/3 } 'e \plet{ 1/1 } } } |
 %%10
-       { 'f2. 'd2. }
+       { 'f2. 'd2. } |
 %%11
-       \plet { 2/3 } [ a_"\pp"( )bes a ] \plet { 1/1 } 'f4. a
+       \plet { 2/3 } [ a_"\pp"( )bes a ] \plet { 1/1 } 'f4. a |
 %%12
-       \plet { 2/3 } [ g( ) a g ] \plet { 1/1 } 'e4. 'd
+       \plet { 2/3 } [ g( ) a g ] \plet { 1/1 } 'e4. 'd |
 %%13
-       'c4. bes \plet { 2/3 } [ bes( ) a g ] \plet { 1/1 }
+       'c4. bes \plet { 2/3 } [ bes( ) a g ] \plet { 1/1 } |
 %%14
-%#%    a2 r { 'd(^ f_p(v }
-       a2 r { 'd f_"\p" }
-%%15
-%#%    { ) e4. ) 'c4.\stemup_{dolce} } { bes g }
-       { e4. 'c4._"dolce" } { bes g }
-       \plet { 2/3 } { [ bes g } a g ] \plet { 1/1 }
+       a2 r 
+       { \music{ 'd( | )'c4. g \plet { 2/3 } [ bes a g ] \plet { 1/1 } }
+         \music{ f_"\p"( | )e4._"dolce" bes \plet { 2/3 } [ g ] \plet { 1/1 } } } |
 %%16
-       { a2. f2. }
+       { a2. f2. } |
 %%17
        \textstyle "italic"
        [ a8._"cresc." 'cis16 ] 'f4. 'e
-       \textstyle "roman"
+       \textstyle "roman" |
 %%18
-       [ 'd8. a16 ] f4. d
+       [ 'd8. a16 ] f4. d |
 %%19
 %#%    'c\grace\stemup
-       \plet { 2/3 } [ bes_"\pp"( ) a bes ] \plet { 1/1 } 'd4. bes
+       \plet { 2/3 } [ bes_"\pp"( ) a bes ] \plet { 1/1 } 'd4. bes |
 %%20
-       a2.
+       a2. |
 %%21
 %#%    a\grace
-       \plet { 2/3 } [ g( )fis g ] \plet { 1/1 } bes4.^> g
+       \plet { 2/3 } [ g( )fis g ] \plet { 1/1 } bes4.^> g |
 %%22
-%#%    =f2.
-       f2.
+%#%    =f2. |
+       f2. |
 %%23
-       [ a8._"\mf" 'cis16 ] 'f4. 'e
+       [ a8._"\mf" 'cis16 ] 'f4. 'e |
 %%24
-       [ 'd8. a16 ] fis4. d
+       [ 'd8. a16 ] fis4. d |
 %%25
 %#%    'cis\grace\stemup
-       \plet { 2/3 } [ b_"\mf"( ) ais b ] \plet { 1/1 }        'd4. b
+       \plet { 2/3 } [ b_"\mf"( ) ais b ] \plet { 1/1 }        'd4. b |
 %%26
-       { a2. fis2. }
+       { a2. fis2. } |
 %#%\tighten\newline
 %%27
-       \plet { 2/3 } [ 'e_"\f"( )'dis 'e ] \plet { 1/1 } 'g4. 'cis
+       \plet { 2/3 } [ 'e_"\f"( )'dis 'e ] \plet { 1/1 } 'g4. 'cis |
 %%28
-       { 'd2. fis2. }
+       { 'd2. fis2. } |
 %#%\volta1
 %%29
-%#%    { bes2(^++++ g2_{mf} } 
-       { bes2 g2_"\mf" } 
-%#%    [v { 'd8.( bes8. } { bes16 ) )++ g16 } ]
-       { [ 'd8. bes8. } { bes16 g16 ] }
+       { \music { bes2( [ 'd8.( ))g16 ] } \music{ g2_"\mf" [ bes8. bes16 ] } } |
 %%30
-       { a4. fis4. } 
-%#%    [ { [ a_. f_.( } { a_. f_. } { a_. ) f_. } ]
-       { [ a_. f_. } { a_. f_. } { a_. f_. ] }
+       { \music{ a4. [ a-. a-. a-. ] } \music{ fis4. [ f-.( f-. )f-. ] } } |
 %%31  
-       { a4. g4. }
-%#%    [ { a cis_.( } { a e_. } { a )- g_. } ]
-       { [ a cis_. } { a e_. } { a g_. ] }
+       { \music{ a4. [ a-. a-. a-. ] } \music{ g4. [ cis-.( e-. )g-. ] } } |
 %%32
-       { a2 fis2_"\pp" } { a4 fis4 }
+       { a2 fis2_"\pp" } { a4 fis4 } |
 %%33
-%#%    { b2(^ g2 } [v { 'd8.( b8. } { b16 ) ) g16 } ]
-       { b2 g2 } { [ 'd8. b8. } { b16 g16 ] }
+%#%    { b2(^ g2 } [v { 'd8.( b8. } { b16 ) ) g16 } ] |
+       { \music{ b2( [ 'd8.( ) )g16 ] } \music{ g2 [ b8. b16 ] } } |
 %%34
-%#%    { a4. fis4. } [ { a_. fis_.( } { a_. fis_. } { a_. ) fis_. } ]
-       { a4. fis4. } { [ a_. fis_. } { a_. fis_. } { a_. fis_. ] }
+%#%    { a4. fis4. } [ { a-. fis-.( } { a-. fis-. } { a-. ) fis-. } ] |
+%      { a4. fis4. } { [ a-. fis-. } { a-. fis-. } { a-. fis-. ] } |
+       { \music{ a4. [ a-. a-. a-. ] } \music{ fis4. [ fis-.( fis-. )fis-. ] } } |
 %%35
-%#%    { a4. g4. } [ { a cis_.( } { a e_. } { a )- g_. } ]
-       { a4. g4. } { [ a cis_. } { a e_. } { a g_. ] }
+%#%    { a4. g4. } [ { a cis-.( } { a e-. } { a )- g-. } ] |
+%      { a4. g4. } { [ a cis-. } { a e-. } { a g-. ] } |
+       { \music{ a4. [ a-. a-. a-. ] } \music{ g4. [ cis-.( e-. )g-. ] } } |
 %%36
-       { a2. fis2. }
+       { a2. fis2. } |
 %#%\volta2
 %#%:|
 %%37
-       [ a8. a16 ] [ 'cis8. 'cis16 ] [ 'e8. 'e16 ]
+       [ a8. a16 ] [ 'cis8. 'cis16 ] [ 'e8. 'e16 ] |
 %%38
-       'd4( )'cis4 r4
+       'd4( )'cis4 r4 |
 %%39
-%#%    > a4. [ 'cis 'e8. >! 'd16 ]
-       a4. [ 'cis 'e8. 'd16 ]
+%#%    > a4. [ 'cis 'e8. >! 'd16 ] |
+       a4. [ 'cis 'e8. 'd16 ] |
 %%40
-       'cis2 r4
+       'cis2 r4 |
 %%41
-%#%    { > 'fis4. 'cis4._f } 'e [ 'e( ) 'd >! 'cis ] \plet { 1/1 }
-       { 'fis4. 'cis4._"\f" } 'e \plet { 2/3 } [ 'e( )'d 'cis ] \plet { 1/1 }
+%#%    { > 'fis4. 'cis4._f } 'e [ 'e( ) 'd >! 'cis ] \plet { 1/1 } |
+       { 'fis4. 'cis4._"\f" } 'e \plet { 2/3 } [ 'e( )'d 'cis ] \plet { 1/1 } |
 %%42
-       [ b8. 'cis16 ] 'd4^> b r
+       [ b8. 'cis16 ] 'd4^> b r |
 %%43
-%#%    [^ { b8._{ }_{ }_{ }_{ }_{ }_f g2. } 'cis16 ] 'd4^> b r
-       [ b8._"\f" 'cis16 ] 'd4^> b r
+%#%    [^ { b8._{ }_{ }_{ }_{ }_{ }_f g2. } 'cis16 ] 'd4^> b r |
+       [ b8._"\f" 'cis16 ] 'd4^> b r |
 %%44
-%#%    [^ { > b8. fis2 } 'cis16 ] 'd4^> b >! r
-       [ b8. 'cis16 ] 'd4^> b r
+%#%    [^ { > b8. fis2 } 'cis16 ] 'd4^> b >! r |
+       [ b8. 'cis16 ] 'd4^> b r |
 %%45
 %#%    'cis\grace\stemup
-       \plet { 2/3 } [ b_"\p"( )ais b ] \plet { 1/1 } 'd4. b
+       \plet { 2/3 } [ b_"\p"( )ais b ] \plet { 1/1 } 'd4. b |
 %%46
-%#%    { =a2. fis2. }
-       { a2. fis2. }
+%#%    { =a2. fis2. } |
+       { a2. fis2. } |
 %%47
-       \plet { 2/3 } [ 'e_"\f"( )'dis 'e ] \plet { 1/1 } 'g4.^> 'cis
+       \plet { 2/3 } [ 'e_"\f"( )'dis 'e ] \plet { 1/1 } 'g4.^> 'cis |
 %%48
 %#%    { fis2.(v ='d2.\stemup(^ }
-       { fis2. 'd2. }
+%      { fis2. 'd2. } |
 %%49
 %#%    { ) 'd4 ) =f2._> } { r4 s4_{decr} } 'd4\stemup
        \textstyle "italic"
-       'd4 r4_"decresc." 'd4
-       \textstyle "roman"
+       { \multivoice \music{ \stem{ 1 } fis2.( | \stem{ -1 } )f2. } \music  { \stem{ 1 } 'd2.( | \stem{ 1 } )'d4 r4_"decresc." 'd4 } }
+       \textstyle "roman" |
 %%50
-       { bes2. e2. }
+       { bes2. e2. } |
 %%51
-       { a2. cis2. }
+       { a2. cis2. } |
 %%52
-       { fis2 d2 } { a4 f4_"\pp" }
+       { fis2 d2 } { a4 f4_"\pp" } |
 %%53
-%#%    { bes2 g2 } [ { 'd8.^>( bes8. } { ) bes16 g16 } ]
-       { bes2 g2 } { [ 'd8.^> bes8. } { bes16 g16 ] }
+%#%    { bes2 g2 } [ { 'd8.^>( bes8. } { ) bes16 g16 } ] |
+       { bes2 g2 } { [ 'd8.^> bes8. } { bes16 g16 ] } |
 %%54
-%#%    { a4. fis4. } [ { a_. fis_.( } { a_. fis_. } { a_. ) fis_. } ]
-       { a4. fis4. } { [ a_. fis_. } { a_. fis_. } { a_. fis_. ] }
+%#%    { a4. fis4. } [ { a-. fis-.( } { a-. fis-. } { a-. ) fis-. } ] |
+%      { a4. fis4. } { [ a-. fis-. } { a-. fis-. } { a-. fis-. ] } |
+       { \music{ a4. [ a-. a-. a-. ] } \music{ fis4. [ fis-.( fis-. )fis-.] } } |
 %%55
-%#%    { a4. g4. } [ { a cis_.( } { a e_. } { a )- g_. } ] 
-       { a4. g4. } { [ a cis_. } { a e_. } { a g_. ] }
+%#%    { a4. g4. } [ { a cis-.( } { a e-. } { a )- g-. } ]  |
+%      { a4. g4. } { [ a cis-. } { a e-. } { a g-. ] } |
+       { \music{ a4. [ a-. a-. a-. ] } \music{ g4. [ cis-.( e-. )g-. ] } } |
 %%56
        \textstyle "italic"
        { a2. fis2._"dim." }
-       \textstyle "roman"
+       \textstyle "roman" |
 %%57
-       { a2. fis2. }
+       { a2. fis2. } |
 %%58
-       { a2.^\fermata fis2. }
+       { a2.^\fermata fis2. } |
 %#%\tighten
 $ }
 
@@ -217,146 +209,126 @@ begeleiding = music { $
 %#%\stemlength2
 \duration{ 8 }
 %#%    { =`f `d2 } `a d `a { d r4 } `a
-% i-d rather type:
-%      { \music{ [ `f `a d `a d `a ] } \music{ `d2 r4 } }
-% output little better...
-%      { `d2 \music{ [ `f `a d `a } } { \music{ d `a ] } r4 }
-       [ `f `a d `a d `a ]
+       { \multivoice \music{ \stem{1}[ `f `a d `a d `a ] } \music  { \stem{ -1 } `d2 r4 } } |
 %%6
-%#%    { `d ``bes2 } `e `g `e { `g r4 } `e
-       [ `d `e `g `e `g `e ]
-%%7
-%#%    { `cis ``a2 } `e `g `e { `g r4 } `e
-       [ `cis `e `g `e `g `e ]
+       { \multivoice \music{\stem{1} [ `d `e `g `e `g `e ] } \music { \stem{ -1 } ``bes2 r4 } } |
+%%7 
+% this (one note missing) fails with assertion:
+% lilypond: src/beam.cc:144: void Beam::set_grouping(struct Rhythmic_grouping,
+% struct Rhythmic_grouping): Assertion `cur.children.size() == stems.size()' failed.
+
+%% seems fixed now, HWN
+%      { \multivoice \music{ \stem{1}[ `cis `e `g `e `g ] } \music { \stem{ -1 } ``a2 r4 } } |
+       { \multivoice \music{\stem{1} [ `cis `e `g `e `g e ] } \music { \stem{ -1 } ``a2 r4 } } |
 %%8
-%#%    { `d `d2 } `a d `a { d r4 } `a
-       [ `d `a d `a d `a ]
+       { \multivoice \music{ \stem{1}[ `d `a d `a d `a ] } \music { \stem{ -1 } `d2 r4 } } |
 %%9
-%#%    `a e f e f e
-       [ `a e f e f e ]
+       [ `a e f e f e ] |
 %%10
-%#%    `d `a d `a d `a
-       [ `d `a d `a d `a ]
+       [ `d `a d `a d `a ] |
 %%11
-%#%    [^ { `f `d2 } `a d `a { d r4 } `a ]
-       [ `f `a d `a d `a ]
-
+       { \multivoice \music{ \stem{1} [ `f `a d `a d `a ] } \music  { \stem{ -1 } `d2 r4 } } |
 %%12 == 6
-%#%    { `d ``bes2 } `e `g `e { `g r4 } `e
-       [ `d `e `g `e `g `e ]
+       { \multivoice \music{ \stem{1}[ `d `e `g `e `g `e ] } \music  { \stem{ -1 } ``bes2 r4 } } |
 %13
-%#%    { `e ``bes2 } `e `g `e { `g r4 } `e
-       [ `e `e `g `e `g `e ]
+       { \multivoice \music{ \stem{1}[ `e `e `g `e `g `e ] } \music  { \stem{ -1 } ``bes2 r4 } } |
 %%14
-%#%    { `a `f2 } c f c { f r4 } c
-       [ `a c f c f c ]
+       { \multivoice \music{ \stem{1}[ `a c f c f c ] } \music  { \stem{ -1 } `f2 r4 } } |
 %%15
-       [ `c `g `bes `g `bes `g ]
+       [ `c `g `bes `g `bes `g ] |
 %%16
-       [ ``f `c `f `c `f `c ]
+       [ ``f `c `f `c `f `c ] |
 %%17
-%#%    [^ { ``a ``a2 } `e `g `e { `g r4 } `e ]
-       [ ``a `e `g `e `g `e ]
+       { \multivoice \music{ \stem{1}[ ``a `e `g `e `g `e ] } \music  { \stem{ -1 } ``a2 r4 } } |
 %%18
-%#%    [^ { `d `d2 } `a d `a { d r4 } `a ]
-       [ `d `a d `a d `a ]
+       { \multivoice \music{ \stem{1}[ `d `a d `a d `a ] } \music  { \stem{ -1 } `d2 r4 } } |
 %%19
-%#%    s8               % skip space of `grace note
-%#%    [^ { ``bes ``bes2 } `f `bes `f { `bes r4 } `f ]
-       [ ``bes `f `bes `f `bes `f ]
+       { \multivoice \music{ \stem{1}[ ``bes `f `bes `f `bes `f ] } \music  { \stem{ -1 } ``bes2 r4 } } |
 %%20
-%#%    [^ { ``f ``f2 } `c `f `c { `f r4 } `c ]
-       [ ``f `c `f `c `f `c ]
+       { \multivoice \music{ \stem{1}[ ``f `c `f `c `f `c ] } \music  { \stem{ -1 } ``f2 r4 } } |
 %%21
-%#%    s8               % skip space of `grace note
-%#%    [ { `e `c } `g c `g c `g ]
-       { [ `e `c } `g c `g c `g ]
+%#%    s8               % skip space of grace note
+       { [ `e `c } `g c `g c `g ] |
 %%22
-       [ `f `a c `a `f `c ]
+       [ `f `a c `a `f `c ] |
 %%23
-%#%    [^ { ``a ``a2 } `e `g `e { `g r4 } `e ]
-       [ ``a `e `g `e `g `e ]
+       { \multivoice \music{ \stem{1}[ ``a `e `g `e `g `e ] } \music  { \stem{ -1 } ``a2 r4 } } |
 %%24
-%#%    [^ { `d `d2 } `fis `a `fis { `a r4 } `fis]
-       [ `d `fis `a `fis `a `fis ]
+       { \multivoice \music{ \stem{1}[ `d `fis `a `fis `a `fis ] } \music  { \stem{ -1 } `d2 r4 } } |
 %%25
-%#%    s8               % skip space of `grace note
-%#%    [^ { ``g ``g2 } `d `b `d { `b r4 } `d]
-       [ ``g `d `b `d `b `d ]
+%#%    s8               % skip space of grace note
+       { \multivoice \music{ \stem{1}[ ``g `d `b `d `b `d ] } \music  { \stem{ -1 } ``g2 r4 } } |
 %%26
-%#%    [^ { `d `d2 } `a d `a { d r4 } `a]
-       [ `d `a d `a d `a ]
+       { \multivoice \music{ \stem{1}[ `d `a d `a d `a ] } \music  { \stem{ -1 } `d2 r4 } } |
 %%27
-       { [ `cis ``a } `e `a `e `a `e ]
+       { [ `cis ``a } `e `a `e `a `e ] |
 %%28
-       [ `d `a d `a d `a ]
+       [ `d `a d `a d `a ] |
 %%29
-%#%    [ `d `g @ `bes `g `bes `g       ]
-       [ `d `g `bes `g `bes `g ]
+%#%    [ `d `g @ `bes `g `bes `g ] |
+       [ `d `g `bes `g `bes `g ] |
 %#%\volta1
 %%30 
-       [ `d `fis `a `fis `a `fis ]
+       [ `d `fis `a `fis `a `fis ] |
 %%31
-       [ `a `e `a `e `a `e ]
+       [ `a `e `a `e `a `e ] |
 %%32
-       [ `d `fis `a `fis `a `fis ]
+       [ `d `fis `a `fis `a `fis ] |
 %%33
-       [ `d `g `b `g `b `g ]
+       [ `d `g `b `g `b `g ] |
 %%34
-       [ `d `fis `a `fis `a `fis ]
+       [ `d `fis `a `fis `a `fis ] |
 %%35
-       [ `a `e `a `e `a `e ]
+       [ `a `e `a `e `a `e ] |
 %%36
-       [ `d `fis `a `fis `a `fis ]
+       [ `d `fis `a `fis `a `fis ] |
 %#%\volta2
 %#%:|
 %%37
-       [ `a `e `g `e ``bes^> `e ]
+       [ `a `e `g `e ``bes^> `e ] |
 %%38
-       [ `a { e cis `a } { e cis `a } { e cis `a } { e cis `a } { e cis `a ] } 
+       [ `a { e cis `a } { e cis `a } { e cis `a } { e cis `a } { e cis `a ] }  |
 %%39
-       [ `a `e `g `e ``bes^> `e ]
+       [ `a `e `g `e ``bes^> `e ] |
 %%40
-       [ `a { e cis `a } { e cis `a } { e cis `a } { e cis `a } { e cis `a ] } 
+       [ `a { e cis `a } { e cis `a } { e cis `a } { e cis `a } { e cis `a ] }  |
 %%41
-       [ `ais `e `gis `e `gis `e ]
+       [ `ais `e `gis `e `gis `e ] |
 %%42
-       { [ `d ``b } `fis `b `fis `b `fis ]
+       { [ `d ``b } `fis `b `fis `b `fis ] |
 %%43
-       { [ `e ``b } `g `b `g `b `g ]
+       { [ `e ``b } `g `b `g `b `g ] |
 %%44
-       { [ `d ``b } `fis `b `fis `b `fis ]
+       { [ `d ``b } `fis `b `fis `b `fis ] |
 %%45
-%#%    s8               % skip space of `grace note
-%#%    [^{ ``g ``g2 } `d `b `d { `b r4 } `d]
-       [ ``g `d `b `d `b `d ]
+%#%    s8               % skip space of grace note
+       { \multivoice \music{ [ ``g `d `b `d `b `d ] } \music  { \stem{ -1 } ``g2 r4 } } |
 %%46
-%#%    [^ { `d `d2 } `a d `a { d r4 } `a ]
-       [ `d `a d `a d `a ]
+       { \multivoice \music{ [ `d `a d `a d `a ] } \music  { \stem{ -1 } `d2 r4 } } |
 %%47
-       { [ `cis ``a } `e `a `e `a `e ]
+       { [ `cis ``a } `e `a `e `a `e ] |
 %%48
-       [ `d `fis `a `fis `a `fis ]
+       [ `d `fis `a `fis `a `fis ] |
 %%49
-       [ `d `a d `a d `a ]
+       [ `d `a d `a d `a ] |
 %%50
-       [ ``g `e `g `e `g `e ]
+       [ ``g `e `g `e `g `e ] |
 %%51
-       [ `a `e `g `e `g `e ]
+       [ `a `e `g `e `g `e ] |
 %%52
-       [ ``d `d `fis `d `fis `d ]
+       [ ``d `d `fis `d `fis `d ] |
 %%53
-       [ `d `g `bes `g `bes `g ]
+       [ `d `g `bes `g `bes `g ] |
 %%54
-       [ `d `fis `a `fis `a `fis ]
+       [ `d `fis `a `fis `a `fis ] |
 %%55
-       [ `a `e `g `e `g `e ]
+       [ `a `e `g `e `g `e ] |
 %%56
-       [ ``d ``a `d ``a `d ``a ]
+       [ ``d ``a `d ``a `d ``a ] |
 %%57
        [ ``d ``a `d ``a `d ``a ]
 %%58
-       { `d2.^\fermata ``d2. }
+       { `d2.^\fermata ``d2. } |
 $ }
 
 
@@ -450,7 +422,7 @@ tekst2 = music {
        _ _ _ 
        _ _ _
 
-% 17 ok tot hier
+% 17
        Sie-8. ver-16 stehn4. des8
        Bus-8. ens16 Seh-4. nen,8
        \plet{ 2/3 } Ken- nen8 \plet{ 1/1 } Lieb-4. es-8 
index aa8120ade856641fcd066b2dbc64ba76a5bb0626..53187772f919370846ad21f6a031d98d1d9f561e 100644 (file)
@@ -2,7 +2,7 @@
 %
 % a 7 bar fragment
 %
-%      Public Domain -- by HWN
+%      Public Domain -- typed by by HWN
 %
 
 dux = music { $
@@ -31,7 +31,7 @@ comes = music { $
 $}
 
 bassdux = music { $
-       r1 r1 r1 r1 r1 r1
+       r1 r r r r r
        \octave { }
        r8 [c16 B] [c8 G] [As c16 B] [c8 d] |
        [G c16 B] [c8 d] [F16 G] As4 [G16 F] | $
@@ -65,4 +65,5 @@ score {
        paper { %unitspace 2.5cm
                %geometric 1.4
        }
-}
\ No newline at end of file
+}
+
index 4b3a0716eb37f8b9689223212def5791c22ed2b6..4f26d2531024667eb2dd63d4c7ed59eaa6b87152 100644 (file)
@@ -1,7 +1,7 @@
 #include "bar.hh"
 #include "string.hh"
 #include "molecule.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "lookup.hh"
 
 NAME_METHOD(Bar);
index f31a15d0172330f30a79cd402475d59556f8ef43..44d51e0af9215ba967c7e933a96b3f5891af9a7a 100644 (file)
@@ -9,7 +9,7 @@
 #include "leastsquares.hh"
 #include "pcol.hh"
 #include "stem.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "lookup.hh"
 #include "grouping.hh"
 
index 70ff864e9de23b1d46e70b00432e411cdfa967ce..576bf4c67a3d7c30ecc37751e09f79fdd8670e19 100644 (file)
@@ -2,7 +2,7 @@
     do calculations for breaking problem    
     */
 #include "break.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "linespace.hh"
 #include "debug.hh"
 #include "scoreline.hh"
index 7ec06433e9883e60663e4b4bc97226e7b7a8481f..79db657588e043ef0a1eb93c6f1bfd7813d5a5ea 100644 (file)
@@ -1,9 +1,8 @@
 #include "idealspacing.hh"
 #include "score.hh"
 #include "pscore.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "sccol.hh"
-//#include "debug.hh"
 #include "dimen.hh"
 
 
@@ -31,7 +30,8 @@ Score::calc_idealspacing()
                
                while (j->when() < d + i->when())
                    j++;
-               assert( j->when()== d+i->when());
+               Moment delta_desired = j->when() - (d+i->when());
+               dist += paper_p_->duration_to_dist(delta_desired);
                
                pscore_p_->connect(i->pcol_l_, j->pcol_l_, dist, strength);
            }
index 0e0054acd34e4821793affad8737c2039f0b939f..30703026daf4642fa2aff007bdc23b4d43f21677 100644 (file)
@@ -1,7 +1,7 @@
 #include "clefitem.hh"
 #include "string.hh"
 #include "molecule.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "lookup.hh"
 #include "clef.hh"
 
index ec38b575e1d5b79784663a674d25d6065c69b043..6abe7659d2373239b0433566b1ef462ef1a86599 100644 (file)
@@ -2,7 +2,7 @@
 
 #include "request.hh"
 #include "pscore.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "complexstaff.hh"
 #include "sccol.hh"
 #include "debug.hh"
index ecb24074fdaea66ee5c764257b747254292178ef..94ad2291e19e04785b31c3e29066176f60bf2eaa 100644 (file)
@@ -6,7 +6,7 @@
 #include "rest.hh"
 #include "notehead.hh"
 #include "headreg.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "complexwalker.hh"
 
 
index cb9086b1a3ebcc313fd70ec10a93d8c13f567aa8..764c8e8509ff8116ca8f55a95044077b7462124d 100644 (file)
@@ -3,7 +3,7 @@
 #include "inputscore.hh"
 #include "inputstaff.hh"
 #include "score.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "staff.hh"
 
 void
index 85bf74c620b00e4795a3673181875d3b43df57b3..22cf0e6d01a885827ccc0844bfb6d6b014b0ca6d 100644 (file)
@@ -2,7 +2,7 @@
 #include "key.hh"
 #include "debug.hh"
 #include "molecule.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "lookup.hh"
 #include "clef.hh"
 
index 6fa9b1dfe3162cb6a8aba97f76a6e5ad5beb2733..fb288b76a7d2cb0bba3c054a531de4425980f40e 100644 (file)
@@ -2,7 +2,7 @@
 #include "molecule.hh"
 #include "scalar.hh"
 #include "lookup.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "request.hh"
 #include "notehead.hh"
 
index 81b61552c54f65a2bed8756043fb302e45d3bdc0..5b290d3634aea6503ff1f2602a5e40bbef623a87 100644 (file)
@@ -1,5 +1,5 @@
 #include "request.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "lyricitem.hh"
 #include "stem.hh"
 #include "molecule.hh"
index bd3f763c006274861add735a6476d8f91432948d..8c4af238188dfbc5017d4add2a7994593398fe4f 100644 (file)
@@ -1,7 +1,7 @@
 #include "scalar.hh"
 #include "molecule.hh"
 #include "meter.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "lookup.hh"
 NAME_METHOD(Meter);
 Meter::Meter(Array<Scalar>a)
index 5c9daee9fd8050985ff403d66c338fb3d7cdfe4e..796090f04dc874e79e93601dd6e38765d7abd8ab 100644 (file)
@@ -289,7 +289,6 @@ Request*
 get_script_req(int d , Script_def*def)
 {
     Script_req* script_req_p = new Script_req(d, def);
-//    script_req_p->defined_ch_c_l_m = req_defined_ch_c_l;
     // all terminal symbols, rather set directly here:
     script_req_p->defined_ch_c_l_m = lexer->here_ch_c_l();
     return script_req_p;
index d96b4d0599b076dcdea3d27f8ea130e2170ad73f..2eabd2ff73172d5c5cf505df325f42e36cb0f436 100644 (file)
@@ -2,7 +2,7 @@
 #include "notehead.hh"
 #include "dimen.hh" 
 #include "debug.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "lookup.hh"
 #include "molecule.hh"
 #include "request.hh"
@@ -17,7 +17,6 @@ Notehead::Notehead(int ss)
     balltype = 0;
     dots = 0;
     extremal = 0;
-    defined_ch_c_l_m = 0;
 }
 
 void
@@ -25,8 +24,6 @@ Notehead::set_rhythmic(Rhythmic_req*r_req_l)
 {
     balltype = r_req_l->balltype;
     dots = r_req_l->dots;
-    if ( r_req_l->defined_ch_c_l_m )
-       defined_ch_c_l_m = r_req_l->defined_ch_c_l_m;
 }
     
 void
diff --git a/src/paper.cc b/src/paper.cc
deleted file mode 100644 (file)
index ec5fde4..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-#include <math.h>
-#include "misc.hh"
-#include "paper.hh"
-#include "debug.hh"
-#include "lookup.hh"
-#include "dimen.hh"
-
-
-
-// golden ratio
-const Real PHI = (1+sqrt(5))/2;
-
-// see  Roelofs, p. 57
-Real
-Paperdef::duration_to_dist(Moment d)
-{
-    return whole_width * pow(geometric_, log_2(d));
-}
-
-Real
-Paperdef::rule_thickness()const
-{
-    return 0.4 PT;
-}
-
-Paperdef::Paperdef(Lookup *l)
-{
-    lookup_p_ = l;
-    linewidth = 15 *CM_TO_PT;          // in cm for now
-    whole_width = 8 * note_width();
-    geometric_ = sqrt(2);
-}
-
-Paperdef::~Paperdef()
-{
-    delete lookup_p_;
-}
-Paperdef::Paperdef(Paperdef const&s)
-{
-    lookup_p_ = new Lookup(*s.lookup_p_);
-    geometric_ = s.geometric_;
-    whole_width = s.whole_width;
-    outfile = s.outfile;
-    linewidth = s.linewidth;
-}
-
-void
-Paperdef::set(Lookup*l)
-{
-    assert(l != lookup_p_);
-    delete lookup_p_;
-    lookup_p_ = l;
-}
-
-Real
-Paperdef::interline() const
-{
-    return lookup_p_->ball(4).dim.y.length();
-}
-
-Real
-Paperdef::internote() const
-{
-    return lookup_p_->internote();
-}
-Real
-Paperdef::note_width()const
-{
-    return lookup_p_->ball(4).dim.x.length( );
-}
-Real
-Paperdef::standard_height() const
-{
-    return 20 PT;
-}
-
-void
-Paperdef::print() const
-{
-#ifndef NPRINT
-    mtor << "Paper {width: " << print_dimen(linewidth);
-    mtor << "whole: " << print_dimen(whole_width);
-    mtor << "out: " <<outfile;
-    mtor << "}\n";
-#endif
-}
diff --git a/src/paperdef.cc b/src/paperdef.cc
new file mode 100644 (file)
index 0000000..21cc42f
--- /dev/null
@@ -0,0 +1,89 @@
+#include <math.h>
+#include "misc.hh"
+#include "paperdef.hh"
+#include "debug.hh"
+#include "lookup.hh"
+#include "dimen.hh"
+
+
+
+// golden ratio
+const Real PHI = (1+sqrt(5))/2;
+
+// see  Roelofs, p. 57
+Real
+Paperdef::duration_to_dist(Moment d)
+{
+    if (!d)
+       return 0;
+    
+    return whole_width * pow(geometric_, log_2(d));
+}
+
+Real
+Paperdef::rule_thickness()const
+{
+    return 0.4 PT;
+}
+
+Paperdef::Paperdef(Lookup *l)
+{
+    lookup_p_ = l;
+    linewidth = 15 *CM_TO_PT;          // in cm for now
+    whole_width = 8 * note_width();
+    geometric_ = sqrt(2);
+}
+
+Paperdef::~Paperdef()
+{
+    delete lookup_p_;
+}
+Paperdef::Paperdef(Paperdef const&s)
+{
+    lookup_p_ = new Lookup(*s.lookup_p_);
+    geometric_ = s.geometric_;
+    whole_width = s.whole_width;
+    outfile = s.outfile;
+    linewidth = s.linewidth;
+}
+
+void
+Paperdef::set(Lookup*l)
+{
+    assert(l != lookup_p_);
+    delete lookup_p_;
+    lookup_p_ = l;
+}
+
+Real
+Paperdef::interline() const
+{
+    return lookup_p_->ball(4).dim.y.length();
+}
+
+Real
+Paperdef::internote() const
+{
+    return lookup_p_->internote();
+}
+Real
+Paperdef::note_width()const
+{
+    return lookup_p_->ball(4).dim.x.length( );
+}
+Real
+Paperdef::standard_height() const
+{
+    return 20 PT;
+}
+
+void
+Paperdef::print() const
+{
+#ifndef NPRINT
+    mtor << "Paper {width: " << print_dimen(linewidth);
+    mtor << "whole: " << print_dimen(whole_width);
+    mtor << "out: " <<outfile;
+    mtor << "}\n";
+#endif
+}
index 71926f60ca6d4d5267c7fd9fbf5f67d628aa3cce..5a307d847d8139c59d01c44daf1c2c1ce46e34a1 100644 (file)
@@ -4,7 +4,7 @@
 #include "lookup.hh"
 #include "misc.hh"
 #include "lexer.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "inputscore.hh"
 #include "main.hh"
 #include "keyword.hh"
index a022f5e087a710b2fedce5ad9e8cbc526c19cf60..34f0e09c28bf466e8074a407ff71a8f260c204e6 100644 (file)
@@ -2,7 +2,7 @@
 #include "debug.hh"
 #include "lookup.hh"
 #include "spanner.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "molecule.hh"
 #include "dimen.hh"
 #include "scoreline.hh"
index b8d30654154f1f876b06a61f571e8f75ed31fe16..e334d17bac332f03144588b45f5ac1bb6e3726d9 100644 (file)
@@ -1,7 +1,7 @@
 #include "rest.hh"
 #include "dimen.hh" 
 #include "debug.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "lookup.hh"
 #include "molecule.hh"
 
index ab9a9d9a93d374718b565365ac7e3c0755e0c4e2..1adcf7dd057837c04ff8cc92b397c3bec00ee25a 100644 (file)
@@ -4,7 +4,7 @@
 #include "pscore.hh"
 #include "staff.hh"
 #include "debug.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "main.hh"
 #include "source.hh"
 #include "sourcefile.hh"
@@ -39,13 +39,15 @@ Score::process()
     pscore_p_->process();    
 }
 
-// remove empty cols.
+/**
+  Remove empty cols, preprocess other columns.
+  */
 void
 Score::clean_cols()
-{    
+{
     for (iter_top(staffs_,i); i.ok(); i++)
        i->clean_cols();
-    
+
     for (iter_top(cols_,c); c.ok(); ) {
        if (!c->pcol_l_->used()) {
            delete c.get();
@@ -55,7 +57,8 @@ Score::clean_cols()
        }
     }
 }
-/*
+
+/**
   this sux.  We should have Score_column create the appropriate PCol.
   Unfortunately, PCols don't know about their position.    
   */
index ed28c5b543a9cf85705fb3a9d98b0b15aff6aadb..505d7e79cf034c218731d5244c76aecc9b0f7380 100644 (file)
@@ -3,7 +3,7 @@
 #include "dimen.hh"
 #include "spanner.hh"
 #include "symbol.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "pcol.hh"
 #include "pscore.hh"
 
index 4b1ae191d04008c06a32d21b63dbde9ea3b88695..6316baad54b4d27bfe7080884d845f2f28422f08 100644 (file)
@@ -1,5 +1,5 @@
 #include "request.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "script.hh"
 #include "stem.hh"
 #include "molecule.hh"
index 856ca990352b46f0c5af5c180812eed76f1b5ca6..386b178a200ed67f0eaf5c0f5ce94b011e89ed3c 100644 (file)
@@ -6,7 +6,7 @@
 #include "slur.hh"
 #include "scalar.hh"
 #include "lookup.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "notehead.hh"
 #include "pcol.hh"
 #include "molecule.hh"
index be98be9fc2a0c01e5e39740fe52460936d20d123..2e650b008fb7578cf56d366e179cbac7e62bc5ed 100644 (file)
@@ -149,6 +149,7 @@ Staff::setup_staffcols()
            s_l->add(j);
            now += j->duration;     
        }
+       get_col(now, false);
     }
     OK();
     set_time_descriptions();
index a7fcbbeb01216643b6e80e47bf98008a3ba36cf8..7b79f09212adfd93a9e18166c8977288a17b9b16 100644 (file)
@@ -3,7 +3,7 @@
 #include "dimen.hh"
 #include "spanner.hh"
 #include "symbol.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "molecule.hh"
 #include "pcol.hh"
 #include "pscore.hh"
index 2e2d9f30665cf9f4953f16e66744e3e95943c7f4..49f559f2e8424f8f640858c5f7e23bd9c5a88414 100644 (file)
@@ -7,7 +7,7 @@
 */
 #include "staffsym.hh"
 #include "lookup.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "debug.hh"
 
 NAME_METHOD(Staff_symbol);
index dc63e9e7eb8bc61270249380c672ea5ce1e321b2..2a1f99e21a8adfffb1e7b88b0c4fdf216a264a15 100644 (file)
@@ -1,7 +1,7 @@
 #include "stem.hh"
 #include "dimen.hh" 
 #include "debug.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "notehead.hh"
 #include "lookup.hh"
 #include "molecule.hh"
index 5dd44d91a15aede8a1c571e7c14e93a994fade08..09fb2257a10c164b7c7811921d29e416607b86c6 100644 (file)
@@ -1,6 +1,6 @@
 #include "debug.hh"
 #include "lookup.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "molecule.hh"
 #include "textdef.hh"
 
index 13790d740e51eed555e9ae60e613d607afa1ea08..c9ead7ce03d811a056b38fd57ee34a0bbae8fd28 100644 (file)
@@ -1,5 +1,5 @@
 #include "request.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 #include "textitem.hh"
 #include "stem.hh"
 #include "molecule.hh"
index b6d90cbef4a5fd61b195e5881dc8091b229db46f..8cd1b8ac3f2f9dc2d8d0fb6e1cce4b4f1e691fed 100644 (file)
@@ -3,7 +3,7 @@
 #include "textspanner.hh"
 #include "textdef.hh"
 #include "debug.hh"
-#include "paper.hh"
+#include "paperdef.hh"
 
 NAME_METHOD(Text_spanner);