]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.1.64
authorfred <fred>
Tue, 26 Mar 2002 22:24:08 +0000 (22:24 +0000)
committerfred <fred>
Tue, 26 Mar 2002 22:24:08 +0000 (22:24 +0000)
47 files changed:
Documentation/faq.yo
Documentation/tex/lilypond-regtest.doc
Documentation/tex/reference-manual.yo
TODO
debian/control
input/bugs/ch.ly [new file with mode: 0644]
input/bugs/dots.fly [new file with mode: 0644]
input/test/allfontstyle.ly
input/test/chords.ly
input/test/dots.fly
input/test/gmsusd.ly [new file with mode: 0644]
input/test/spacing-loose.ly [new file with mode: 0644]
input/test/spacing-natural.ly [new file with mode: 0644]
input/test/spacing-tight.ly
input/test/stem-direction.sly
lib/duration-iter.cc
lily/break-align-item.cc
lily/chord.cc
lily/dot-column.cc
lily/grace-engraver-group.cc
lily/lookup.cc
lily/rhythmic-column-engraver.cc
lily/spacing-spanner.cc
lily/stem.cc
ly/engraver.ly
ly/ledger.ly [new file with mode: 0644]
ly/letter.ly [new file with mode: 0644]
ly/nederlands.ly
ly/paper11.ly
ly/params.ly
mf/GNUmakefile
mf/feta-autometric.mf
mf/feta-generic.mf
midi2ly/midi-parser.cc
mutopia/Coriolan/coriolan-part-paper.ly
mutopia/Coriolan/coriolan.ly
mutopia/Coriolan/fagotto-2.ly
mutopia/Coriolan/flauto-2.ly
mutopia/Coriolan/viola-1.ly
mutopia/Coriolan/viola-part.ly
mutopia/Coriolan/violino-1.ly
mutopia/Coriolan/violoncello.ly
mutopia/Hymns/stille.ly
stepmake/NEWS
stepmake/VERSION
stepmake/stepmake/metapost-rules.make
stepmake/stepmake/substitute-vars.make

index e365332c99fb91754782b3e2432d0dfb1455490c..12593304605fe2833ddaf92dae45a2bb6176767e 100644 (file)
@@ -242,12 +242,47 @@ verb(
        >
 )
 
+question(How do I combine multiple pieces into one document)
+
+There are several solutions:
+
+itemize(
+it() 
+verb(
+       ly2dvi foo.ly bar.ly
+) 
+produces one combined file(foo.dvi)
+it() make a toplevel file(.ly) file that contains al pieces:
+verb(
+       % booklet.ly
+       \input "piece-1.ly"
+       \input "piece-2.ly"
+       \input "piece-3.ly"
+) 
+it() make a hybrid TeX()/LilyPond file(.doc) document (see the
+     file(Documentation/tex) directory).
+)
+
+For the first two solutions, you will need to move code(\header) info 
+in each individual piece from toplevel into the code(\paper) block.
+
+There are several examples in the file(mutopia) directory.
+
 
 question(How do I get bar numbers?)
 
 See file(input/test/bar-scripts.ly).
 
 
+question(How do I change the tagline 'Lily was here')
+
+In the code(\header) field, add a code(tagline) entry, eg
+verb(
+tagline="Typeset by GNU LilyPond"
+)
+
+to get a bit less frivolous tagging.
+
 sect(Development)
 
 COMMENT(look out: can't have line breaks in subsect() macro)
index 6c6cdc4796739aff7b22cd47a9c9759a33629110..74ca05df7a4879cfec510d376d983d3d7a34058c 100644 (file)
@@ -25,11 +25,11 @@ you must create a special context called Thread.
 
 \mudelafile{noteheadstyle.ly}
 
-Noteheads can have dots, and ---although this is bad style--- rests
-can too.  Augmentation dots should never be printed on a staff line,
-but rather be shifted: down stem notes shift dots down, up stem up.
-In case of chords, all dots should be in a column.  The dots go along
-as  rests are shifted to avoid collisions.
+Noteheads can have dots, and ---although this is bad style in duple
+meters--- rests can too.  Augmentation dots should never be printed on
+a staff line, but rather be shifted: down stem notes shift dots down,
+up stem up.  In case of chords, all dots should be in a column.  The
+dots go along as rests are shifted to avoid collisions.
 
 \mudelafile{dots.fly}
 
@@ -54,7 +54,8 @@ the two systems for y dimensions (1 unit = staffspace, 1 unit = 1
 point) are mixed.
 
 Stems, beams, ties and slurs should behave similarly, when placed
-on the middle staff line.
+on the middle staff line. Of course stem-direction is down for high
+notes, and up for low notes.
 
 \mudelafile{stem-direction.sly}
 
@@ -190,12 +191,23 @@ effects.  In this example, space for opposite pointed stems is adjusted
 
 \mudelafile{stem-spacing.sly}
 
-Even if a line is very tightly spaced,  there will still be room
-between prefatory matter and the following notes.  The same holds at
-the end of line.
+Even if a line is very tightly spaced, there will still be room
+between prefatory matter and the following notes.  The space after the
+prefatory is very rigid.  In contrast, the space before the barline
+must stretch like the space within the measure.
+
+Tight:
 
 \mudelafile{spacing-tight.ly}
 
+Natural:
+
+\mudelafile{spacing-natural.ly}
+
+Loose:
+
+\mudelafile{spacing-loose.ly}
+
 
 \section{Global stuff}
 
@@ -206,9 +218,8 @@ knowing it.  Consequently, they fall over  often.
 \mudelafile{bar-scripts.ly}
 
 Staff margins are also markings attached to barlines.  They should be
-left otf the staff, and be centered vertically wrt the staff.  They
-may be on normal staffs, but also on compound staffs, like the
-PianoStaff
+left of the staff, and be centered vertically wrt the staff.  They may
+be on normal staffs, but also on compound staffs, like the PianoStaff
 
 \mudelafile{staff-margin.ly}
 
@@ -222,7 +233,7 @@ two measures all have the same distance from each other:
 
 Fonts are  available in a default set of sizes: 11, 13, 16, 20, 23 and
 26pt staffheight.  Sizes of the text fonts and symbol fonts are made
-to match the staff dimensions. 
+to match the staff dimensions.    
 
 \mudelafile{size11.ly}
 
index 4e5e209a0c8a4b7fbca3c0debccce7e0f066ef19..34e88a3dea6f34af4289b6a20883d93aeab121fb 100644 (file)
@@ -1944,6 +1944,34 @@ can contain code(\translator) keywords.  The code(\paper) block can
 also contain identifier assignments and parameter assignments.  Unlike
 at the top level, these assignments must be terminated by a semicolon.
 
+subsect(Changing Font Size and Paper Size)
+
+The Feta font provides musical symbols at six different sizes.  These
+fonts are 11 point, 13 point, 16 point, 20 point, 23 point, and 26
+point.  The point size of a font is the height of the five line staff
+when displayed in the font.  The default font is 20 points.  To select
+a different font size you must load the desired size with an
+code(\include) keyword at the top level and then you must select the
+desired size with an identifier in the code(\paper) block.  To load a
+font use the command code(\include "paper)var(N)code(.ly") where
+var(N) is the desired font size.  For example, using code(\include
+"paper26.ly") will produce very large music.  This statement should
+appear at the top level at the top of your Mudela file.  To select the
+font for printing, this you must include code(\paper_twentysix) in the
+code(\paper) block of your file.  The identifiers that are used to
+select different font sizes are code(paper_eleven),
+code(paper_thirteen), code(paper_sixteen), code(paper_twenty),
+code(paper_twentythree), and code(paper_twentysix).
+
+To change the paper size, you must first set the code(papersize)
+variable at the top level.  Set it to code(a4), code(letter), or
+code(legal).  After this specification, you must set the font as
+described above.  If you want the default font, then use the 20 point
+font.  The new paper size will not take effect if the font is not
+loaded and selected afterwords.  Paper size selection works by loading
+a file named after the paper size you select.
+
+
 
 subsect(Paper variables)
 
diff --git a/TODO b/TODO
index 35ff2f3e2406841dd9d7a47dc9488a099f872a05..a0dde3ec7999d931e157d06e8e25e526de231bc5 100644 (file)
--- a/TODO
+++ b/TODO
@@ -11,24 +11,21 @@ Grep for TODO and ugh/ugr/urg.
 .* TODO before 1.2
 . * align left edge of broken (de)cresc/slur/tie/tuplet/volta
 . * auto-staff-switching.
+. * warning if feta-nummer.tfm not found
 . * broken examples:
 input/star-spangled-banner.ly: hw?
-mutopia/J.S.Bach/Petites-Preludes/preludes-paper.ly? hw?
 mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly: hw: slurs + autobeamer ?
 mutopia/Coriolan/*
-
 . * spacing of accidentals
 . * key restorations & repeats
 . * spanners from grace to  normal ctxt
+. * rename \paper?
 . * Grace_slur_engraver.
 . * paperXX.ly \quartwidth, font setting not up to date. (Should read from AFM?)
 . * input/star-spangled-banner.ly: fold for lyrics?
 . * Break_req handling is silly (break_forbid () + \break fucks up.)
 . * account for accidentals in spacing.
-. * indent = 0.0 with linewidth=-1.0
 . * \shape 1st dim skipped? 
-. * PostScript
-.  * half notes in pfa
 . * We need feta-din*.mf files for more sizes than 10.
 . * fix dynamics decently, ie. use kerning & ligatures.
 
@@ -74,6 +71,7 @@ one of the spacing bugs mentioned in the TODO.
         The words are aligned with the main note, not the start of the
         grace note.  This is usually wrong, but is sometimes right.
 . * decimal point in \paper {}
+. * tie-direction
 . * use melismaBusy in Lyric context to typeset melismata correctly.  
 . * ly2dvi/lilypond logfile.
 . * hang Item on Spanner
@@ -268,13 +266,14 @@ touching it.
       Address 0xefffeca8 is 728 bytes below frame pointer in function 
 . * GNU diff 2.7: diff -rN does not see a new directory with empty file
 . * patch: don't touch timestamp if all patches fail.
-. * mf-to-table -> add space before ; in AFM output.  (-> check AFM
-    spec. Is this a bug in afm2tfm?)
+. * MetaPost: should not generate setgray for unfill
+. * mfplain.ini not in tetex 0.9
+. * mf-to-table -> add space 'before ; in AFM output.  (-> check AFM
+spec. Is this a bug in afm2tfm?)
 . * check out GCC signatures?
 . * glibc 2.0:
          f = fopen ("/dev/null", "r")
          assert (feof (f))
-
 . * tetex: mfplain.mem
 . * timesig: sometimes bottom digit  too high: Xdvi doesn't handle
     newly created fonts correctly.
index 3076aee6f777fc85ea7c4602331deadec1d0515e..597acece90ec21edce6a068a424dab7367723d17 100644 (file)
@@ -10,8 +10,9 @@ Depends: ${shlibs:Depends}, tetex-bin (>= 0.9.981031-2)
 Recommends: python-base (>= 1.5.1), python-misc (>= 1.5.1), tetex-base (>= 0.9.981030-1), tetex-extra (>= 0.9.981030-1)
 Conflicts: musixtex-fonts, tetex-base (<< 0.9)
 Description: The GNU Project music typesetter.
- LilyPond produces beautiful sheet music using a high level description
- file as input.  LilyPond is part of the GNU project.
+ LilyPond is a music typesetter.  It produces beautiful sheet music
+ using a high level description file as input.  It is part of the GNU
+ project.
  
  
  .
diff --git a/input/bugs/ch.ly b/input/bugs/ch.ly
new file mode 100644 (file)
index 0000000..3f48697
--- /dev/null
@@ -0,0 +1,3 @@
+
+ \score {\notes \context Voice = VA \relative c' {
+       <g4. e'> <g'4. e'> <a4. e' a> <a,4. a'>} }
diff --git a/input/bugs/dots.fly b/input/bugs/dots.fly
new file mode 100644 (file)
index 0000000..66f99d1
--- /dev/null
@@ -0,0 +1,2 @@
+
+<f, c' d e f>
index 0e995e64ab600ce7dbcb7ce5cdbb8b430e0c2cba..aae8b05cd7b18dcf27ab14554af31c84e8369325 100644 (file)
@@ -3,8 +3,15 @@
 
 \score {  \notes
        \relative c'' \context Staff {
-               \repeat "semi" 2 { \time 4/4; c4^"foo" }
-                \alternative { d-4 e-\fermata  } \grace { c16 } f-\ff
+               \property Staff.textEmptyDimension = "1"
+               \repeat "semi" 2 { \time 4/4; c4^"cuivr\\'e"_\fermata }
+                \alternative {
+                       { \property Voice.textStyle = "italic" d-4_"cantabile" }
+                       {  e }  } \grace { c16 }
+                       \property Voice.textStyle = "large"
+                        f4-\ff^""^"Largo" \mark "B"; g 
+       }
+       \paper { linewidth = -1.0;
+       \translator { \BarNumberingStaffContext}
        }
-       \paper { linewidth = -1.0; }
 }
index 44e92b17a7a7f084888df2277b99a08d7ef4ba90..bc75dbddc2245f33ad2d29b2011109f56c2ed881 100644 (file)
@@ -20,6 +20,7 @@ scales = \notes \transpose c'' \chords{
                %<c1 e g>
                c1-m c-min c4-dim c-aug c-sus c-maj
                 c1-6 c4-7 c-9 c-11 c-13
+               c-m7 c-m.sus c-m7.sus
                c1-7^5 c-13^5.7.9.11
                % c1-7^5 c-13^5
                c1 g d a e b fis
index a111a6df2f9e522451c0aab303f8ed407d4e59a7..8a00b4861fb8157c07a194aa0c7b5945e8d00c3e 100644 (file)
@@ -1,6 +1,7 @@
 
 d''4. b c4 | <b4. c d e>  <f g a b>
-%This doesn't really work yet.
+<g b d> <c, g' d' a'>
+
 
 \context Staff <
        \context Voice = VA { \stemup <b c> r4.  }
diff --git a/input/test/gmsusd.ly b/input/test/gmsusd.ly
new file mode 100644 (file)
index 0000000..8535e06
--- /dev/null
@@ -0,0 +1,32 @@
+% the Gm7sus4/D chord prints as Gm/4/7/D
+% it took me quite a while by experiment to work out how to enter it -- PC
+
+% perhaps the current modifier approach is too simplistic
+
+\version "1.1.52";
+
+gmsus=\notes\relative c \chords{ 
+       g1
+       % Gm7sus4: the hard way
+       g1-3-.4.7
+
+       % another hard way:
+       \notes< g'1 bes c d f >
+
+       % bit easier:
+       g1-m.4.7
+
+       g1-m7.sus
+       g1-m7.sus4
+
+       % and finally:
+       \property Score.chordInversion = 1 
+       g1-m7.sus/d
+}
+
+\score{
+       <
+               \context ChordNames \gmsus
+               \context Staff \gmsus
+       >
+}
diff --git a/input/test/spacing-loose.ly b/input/test/spacing-loose.ly
new file mode 100644 (file)
index 0000000..e0893af
--- /dev/null
@@ -0,0 +1,6 @@
+\score {
+       \notes { \time 2/2; c'2 c'2 \time 2/2; }
+       \paper { linewidth = 5.0\cm;
+       indent = 0.0;
+       }
+}
diff --git a/input/test/spacing-natural.ly b/input/test/spacing-natural.ly
new file mode 100644 (file)
index 0000000..3a31c99
--- /dev/null
@@ -0,0 +1,8 @@
+
+\score {
+       \notes { \time 2/2; c'2 c'2 \time 2/2; }
+       \paper { linewidth = -1.0 \cm;
+       indent = 0.0;
+       }
+}
+
index 93ae30563da2a9ca6f5a9add8b6d61a6246acddd..90a6e8bafccf0637e9d48ea18c28cb380e14f8e1 100644 (file)
@@ -1,5 +1,7 @@
 
 \score {
        \notes { \time 2/2; c'2 c'2 \time 2/2; }
-       \paper { linewidth = 2.9\cm; }
+       \paper { linewidth = 2.5 \cm;
+       indent = 0.0;
+       }
 }
index 0ac11c4480812b979b67ce42e584b667f26c58fb..70df9e2cfb8f2383486f6b3a18739f1b347be053 100644 (file)
@@ -1 +1 @@
-b''4 ~ b8()b8
+b''4 ~ b8()b8 e4 e,
index 5b16deeb887e40b65cba0059de9c26ef1594a0cc..9472c0217d512044927fc81587f43a78768e85b3 100644 (file)
@@ -114,6 +114,5 @@ Duration_iterator::forward_dur ()
 bool
 Duration_iterator::ok ()
 {
-  return (cursor_dur_.durlog_i_ 
-         && !((cursor_dur_.durlog_i_ == 0) && (cursor_dur_.dots_i_ > 2)));
+  return cursor_dur_.length_mom () <= Moment (4);
 }
index 3e1ba4e18c1b9c80a8d506a85cee5e8d6ec2cdb3..cf7cc9a649512b5caf90cdfafe9f83ee4d1e9d85 100644 (file)
@@ -104,8 +104,12 @@ Break_align_item::do_pre_processing()
   
   Axis_align_item::do_pre_processing();
 
-  Real pre_space = elems[0]->extent (X_AXIS)[LEFT];
-  Real spring_len = elems.top ()->extent (X_AXIS)[RIGHT];
+
+  Real pre_space = elems[0]->extent (X_AXIS)[LEFT]
+    + elems[0]->relative_coordinate (column_l ()->dim_cache_[X_AXIS], X_AXIS);
+  Real spring_len = elems.top ()->extent (X_AXIS)[RIGHT]
+    + elems.top ()->relative_coordinate (column_l ()->dim_cache_[X_AXIS], X_AXIS);
+  
   Real stretch_distance =0.;
   
   if (SCM_CAR (symbol_list) == extra_space_scm_sym)
@@ -121,13 +125,16 @@ Break_align_item::do_pre_processing()
 
   /*
     Hint the spacing engine how much space to put in.
+
+
+    The pairs are in the format of an interval (ie. CAR <  CDR).
   */
   column_l ()->set_elt_property (extra_space_scm_sym,
                                 scm_cons (gh_double2scm (pre_space),
                                           gh_double2scm (spring_len)));
 
   column_l ()->set_elt_property (stretch_distance_scm_sym,
-                                gh_cons (gh_double2scm (dists[0]),
+                                gh_cons (gh_double2scm (-dists[0]),
                                          gh_double2scm (stretch_distance)));
                                 
 }
index 03594ceed338a2e92701c02f04346c987458e424..867add9c73235cee71b597822b330ae05c5aa5d2 100644 (file)
@@ -128,24 +128,50 @@ Chord::Chord (Musical_pitch tonic, Array<Musical_pitch>* add_arr_p, Array<Musica
   fifth.transpose (Musical_pitch (2));
   fifth.transpose (Musical_pitch (2, -1));
 
+  /*
+    remove double adds (urg: sus4)
+   */
+  for (int i = add_arr_p->size () - 1; i >= 0 ; i--)
+    {
+      int j = ::find_pitch_i (add_arr_p, (*add_arr_p)[i]);
+      if ((j != -1) && (i != j))
+        {
+           add_arr_p->get (i);
+       } 
+    }
+
   /*
     default chord includes upto 5: <1, 3, 5>
    */
   add_arr_p->insert (tonic, 0);
-  int highest_trap = trap_i (tonic, add_arr_p->top ());
+  Array<Musical_pitch> tmp = *add_arr_p;
+  int highest_trap = trap_i (tonic, tmp.top ());
   if (highest_trap < 5)
-    add_arr_p->push (fifth);
+    tmp.push (fifth);
 
   /*
     find missing triads
    */
-  Array<Musical_pitch> missing_arr = missing_triads_pitch_arr (add_arr_p);
+  Array<Musical_pitch> missing_arr = missing_triads_pitch_arr (&tmp);
+  if (highest_trap < 5)
+    missing_arr.push (fifth);
 
   /*
-    if additions include 4, assume sus4 and don't add third implicitely
+    if additions include some 3, don't add third
    */
   Musical_pitch third = tonic;
   third.transpose (Musical_pitch (2));
+  if (::find_notename_i (add_arr_p, third) != -1)
+    {
+      int i = ::find_pitch_i (&missing_arr, third);
+      if (i != -1)
+       missing_arr.get (i);
+    }
+  
+  /*
+    if additions include 4, assume sus4 and don't add third implicitely
+     C-sus (4) = c f g (1 4 5)
+   */
   Musical_pitch sus = tonic;
   sus.transpose (Musical_pitch (3));
   if (::find_pitch_i (add_arr_p, sus) != -1)
@@ -154,6 +180,17 @@ Chord::Chord (Musical_pitch tonic, Array<Musical_pitch>* add_arr_p, Array<Musica
       if (i != -1)
        missing_arr.get (i);
     }
+
+  /*
+    if additions include some 5, don't add fifth
+   */
+  if (::find_notename_i (add_arr_p, fifth) != -1)
+    {
+      int i = ::find_pitch_i (&missing_arr, fifth);
+      if (i != -1)
+       missing_arr.get (i);
+    }
+  
   
   /*
     complete the list of triads to be added
@@ -176,7 +213,7 @@ Chord::Chord (Musical_pitch tonic, Array<Musical_pitch>* add_arr_p, Array<Musica
            break;
          }
       if (j == sub_arr_p->size ())
-        pitch_arr_.push (p);
+       pitch_arr_.push (p);
     }
 
   pitch_arr_.sort (Musical_pitch::compare);
index 56ffe94762cbf597796c28d97efc3575aecdd042..d510fba7f46850ae6151e2332455b0019c72b557 100644 (file)
@@ -55,6 +55,21 @@ Dot_column::Dot_column ()
   set_axes(X_AXIS,X_AXIS);
 }
 
+/*
+  Will fuck up in this case.
+
+  X.  .
+  X.X .
+   |X .
+   |
+   |
+   |X .
+   |
+   |
+
+
+   Should be smarter.
+ */
 void
 Dot_column::do_post_processing ()
 {
@@ -62,11 +77,21 @@ Dot_column::do_post_processing ()
     return;
   Slice s;
   s.set_empty ();
-  
+
+  Array<int> taken_posns;
+  int conflicts = 0;
   for (int i=0; i < dot_l_arr_.size (); i++)
     {
+      for (int j=0; j < taken_posns.size (); j++)
+       if (taken_posns[j] == dot_l_arr_[i]->position_i_)
+         conflicts++;
+      taken_posns.push (dot_l_arr_[i]->position_i_);
       s.unite (Slice (dot_l_arr_[i]->position_i_,dot_l_arr_[i]->position_i_));      
     }
+
+  if (!conflicts)
+    return;
+  
   int  middle = s.center ();
   /*
     +1 -> off by one 
index 220b8c82f37a22818b3bd2047e2831681e4016c1..6c7547362d3492df7c2e715b5a78bbcff110a7c0 100644 (file)
@@ -116,7 +116,8 @@ Grace_engraver_group::pass_to_top_b (Music *m) const
   if (Span_req * sp = dynamic_cast<Span_req*> (m))
     {
       if (sp->span_type_str_ == "slur")
-       return true;
+       //      return true;
+       return false;
     }
   return false;
 }
index cc9466bc12dae5be0c80b1ad31c24f9003a16aa7..d82c1f55baec45046d2ef0b9fa204b0910561038 100644 (file)
@@ -10,7 +10,7 @@
   TODO
       Glissando
 */
-
+#include <math.h>
 #include <ctype.h>
 #include "lookup.hh"
 #include "debug.hh"
@@ -361,7 +361,7 @@ Lookup::filledbox (Box b ) const
 /**
    Magnification steps.  These are powers of 1.2. The numbers are
  taken from Knuth's plain.tex: */
-static Real mag_steps[] = {1, 1, 1.200, 1.440, 1.7280,  2.074, 2.488};
+
 
 /**
    TODO: THIS IS UGLY.  Since the user has direct access to TeX
@@ -381,10 +381,13 @@ Lookup::text (String style, String text, Paper_def *paper_l) const
     {
       font_h = paper_l->get_var ("font_" + style);
     }
-   
+
+
+  Real realmag = 1.0;
   if (paper_l->scope_p_->elem_b ("magnification_" + style))
     {
       font_mag = (int)paper_l->get_var ("magnification_" + style);
+      realmag = pow (1.2, font_mag);
     }
 
   /*
@@ -426,13 +429,6 @@ Lookup::text (String style, String text, Paper_def *paper_l) const
        }
     }
 
-  if (font_mag > 1 && font_mag < 7 )
-    {
-      /* UGH  */ 
-      w *= mag_steps[font_mag];
-      ydims *= mag_steps[font_mag];
-    }
-
   if(brace_count)
     {
       warning (_f ("Non-matching braces in text `%s', adding braces.", text.ch_C()));
@@ -447,9 +443,8 @@ Lookup::text (String style, String text, Paper_def *paper_l) const
        }
     }
 
-  
-  DOUT << "\n" << to_str (w) << "\n";
-  m.dim_.x () = Interval (0, w);
+  ydims *= realmag;
+  m.dim_.x () = Interval (0, w*realmag);
   m.dim_.y () = ydims;
 
   
index d1d322af164c393165b26b3418c30ea5f3256fe5..5e03c9b3fb9ac94fe7cb2ba934e2fe3495df4585 100644 (file)
@@ -57,11 +57,10 @@ Rhythmic_column_engraver::process_acknowledged ()
          stem_l_ = 0;
        }
 
-      /*
-       since ncol_p_ is announced, it already has its grace_scm_sym set, if we're
-       in a Grace context.
-       */
-      if (ncol_p_->get_elt_property (grace_scm_sym) == SCM_BOOL_F)
+
+      bool wegrace = get_property ("weAreGraceContext",0).to_bool ();
+
+      if (!wegrace)
        for (int i=0; i < grace_slur_endings_.size(); i++)
          grace_slur_endings_[i]->add_column (ncol_p_);
       grace_slur_endings_.clear ();
@@ -71,8 +70,9 @@ Rhythmic_column_engraver::process_acknowledged ()
 void
 Rhythmic_column_engraver::acknowledge_element (Score_element_info i)
 {
-  if (get_property ("weAreGraceContext",0).to_bool () !=
+  if ((get_property ("weAreGraceContext",0).to_bool () !=
       (i.elem_l_->get_elt_property (grace_scm_sym) != SCM_BOOL_F))
+    && !dynamic_cast<Slur*> (i.elem_l_))
     return ;
   
   Item * item =  dynamic_cast <Item *> (i.elem_l_);
@@ -125,8 +125,4 @@ Rhythmic_column_engraver::do_post_move_processing()
   stem_l_ =0;
 }
 
-
-
-
-
 ADD_THIS_TRANSLATOR(Rhythmic_column_engraver);
index 5063bfa7a4b8700ceadbc68a4fb3a0cf463f7baa..5b4a599fe32f5be233180a3d09eb4e2a4cbf4213 100644 (file)
@@ -79,10 +79,10 @@ Spacing_spanner::do_measure (int col1, int col2) const
 
       Item* combinations[4][2]={{l,r}, {lb,r}, {l,rb},{lb,rb}};
 
-      for (int i=0; i < 4; i++)
+      for (int j=0; j < 4; j++)
        {
-         Score_column * lc = dynamic_cast<Score_column*> (combinations[i][0]);
-         Score_column *rc = dynamic_cast<Score_column*> (combinations[i][1]);
+         Score_column * lc = dynamic_cast<Score_column*> (combinations[j][0]);
+         Score_column *rc = dynamic_cast<Score_column*> (combinations[j][1]);
          if (!lc || !rc)
            continue;
 
@@ -112,14 +112,20 @@ Spacing_spanner::do_measure (int col1, int col2) const
            }
 
          s.distance_f_ = left_distance;
-         if (!lc->musical_b () || !rc->musical_b ())
+         /*
+           Only do tight spaces *after* barlines, not before.
+
+           We want the space before barline to be like the note
+           spacing in the measure.
+         */
+         if (!lc->musical_b ())
            s.strength_f_ = non_musical_space_strength;
 
          Real right_dist = 0.0;
          if (next_hint != SCM_BOOL_F)
            {
              next_hint = SCM_CADR(next_hint);
-             right_dist += gh_scm2double (next_hint);
+             right_dist += gh_scm2double (next_hint);
            }
          else
            {
@@ -142,10 +148,8 @@ Spacing_spanner::do_measure (int col1, int col2) const
            stretch_dist += left_distance;
          
          if (next_stretch_hint != SCM_BOOL_F)
-           {
-             // see regtest spacing-tight
-             //              stretch_dist += gh_scm2double (SCM_CADR (next_stretch_hint));
-           }
+           // see regtest spacing-tight
+           stretch_dist += - gh_scm2double (SCM_CADR (next_stretch_hint));
          else
            stretch_dist += right_dist;
 
index 3551ad97cfdf43cf191fe80ff1e40b34458fc9c4..2dd984cac7a9f698f915af59a4e7017fcfbb5aa5 100644 (file)
@@ -149,10 +149,13 @@ Stem::get_center_distance (Direction d) const
 Direction
 Stem::get_default_dir () const
 {
-  return (get_center_distance (UP) >
-         get_center_distance (DOWN)) 
-    ? DOWN 
-    : UP;
+  int du = get_center_distance (UP);
+  int dd = get_center_distance (DOWN);
+
+  if (sign (dd - du))
+    return Direction (sign (dd -du));
+
+  return Direction (int(paper_l ()->get_var ("stem_default_neutral_direction")));
 }
 
 Direction
index 4c21a7d1f5826eb1e0d35f2f5d830cf93058cbd5..7cca986936e887d0d148aaa14f3dc693969d58eb 100644 (file)
@@ -82,6 +82,7 @@ RhythmicStaffContext=\translator{
 \translator{\RhythmicStaffContext}
 VoiceContext = \translator {
        \type "Engraver_group_engraver";
+       dynamicPadding = "5.0";
        \consists "Dynamic_engraver";   % must come before text_engraver.
        \name Voice ;
 
@@ -99,6 +100,7 @@ VoiceContext = \translator {
 
        % ugh.  Order matters here.
        \consists "Melisma_engraver";
+       textScriptPadding = "3.0";
        \consists "Text_engraver";
        \consists "Script_engraver";
        \consists "Script_column_engraver";
diff --git a/ly/ledger.ly b/ly/ledger.ly
new file mode 100644 (file)
index 0000000..6aee59c
--- /dev/null
@@ -0,0 +1,7 @@
+
+% ledger.ly
+
+hsize = 11.0 \in;
+vsize = 17.0 \in;
+
+
diff --git a/ly/letter.ly b/ly/letter.ly
new file mode 100644 (file)
index 0000000..9d7cf77
--- /dev/null
@@ -0,0 +1,6 @@
+% letter.ly
+
+hsize = 8.5 \in;
+vsize = 11.0 \in;
+
+
index 9b652a6bd2297e55044f4c3913d29e51e3f2fbe3..78fc35ed04ef4f0a2f516c32c3191d95ea2419f5 100644 (file)
@@ -68,7 +68,9 @@
        Dis     = \musicalpitch { -2 1 1 }
        Disis   = \musicalpitch { -2 1 2 }
        Eses    = \musicalpitch { -2 2 -2 }
+       Eeses   = \musicalpitch { -2 2 -2 }
        Es      = \musicalpitch { -2 2 -1 }
+       Ees     = \musicalpitch { -2 2 -1 }
        E       = \musicalpitch { -2 2 0 }
        Eis     = \musicalpitch { -2 2 1 }
        Eisis   = \musicalpitch { -2 2 2 }
index f41bc11c7eb647343e3df972b9ad1494686cc1fe..2026d92ba536c8371940c524855661a87fb907c9 100644 (file)
@@ -5,8 +5,8 @@ paper_eleven = \paper {
        staffheight = 11.0\pt;
 
         % ugh see table11 for sizes
-       quartwidth = 3.63\pt;
-       wholewidth = 5.45\pt;
+       quartwidth = 3.63 \pt;
+       wholewidth = 5.45 \pt;
 
        font_large = 8.;
        font_Large = 6.;
@@ -17,7 +17,7 @@ paper_eleven = \paper {
        font_number = 4.;
        font_dynamic = 10.;
        font_mark = 6.;
-
+       magnification_dynamic = -4.0;
        -1=\font "feta11"
        -2=\font "feta11"
        0=\font "feta11"
index e9fc341694ab13a58c00008395514debdae3a6f7..033f1c9a3ff1733f39a18773ee7cb4172739d5d4 100644 (file)
@@ -201,12 +201,14 @@ stemSpacingCorrection = 0.5*\interline;
 
 
 % relative strength of space following  tprefatory matter, and inline clefs.
-non_musical_space_strength = 40.0; 
+non_musical_space_strength = 8.0; 
 
 
 %If columns do not have spacing information set, set it to this much
 loose_column_distance = 2.0 * \interline;
 
+% if stem is on middle line, choose this direction.
+stem_default_neutral_direction = 1.0;
 
 \include "engraver.ly";
 
index 21c285a5a40477b67b7ff2fe90725572e0e6ffc7..a6804652c5376d74a09e8655fb34cc6dec0331bd 100644 (file)
@@ -4,9 +4,7 @@ depth = ..
 
 STEPMAKE_TEMPLATES=metafont metapost install install-out
 
-EXTRA_DIST_FILES += README feta.mp
-
-# wtf is feta.mp ?
+EXTRA_DIST_FILES += README
 
 FET_FILES = $(wildcard feta[0-9]*.mf)
 
@@ -42,4 +40,4 @@ $(outdir)/%.afm  $(outdir)/%.tex $(outdir)/%.dep: $(outdir)/%.log
        $(PYTHON) $(buildscripts)/mf-to-table.py --package=$(topdir) --outdir=$(outdir) --dep $(outdir)/$(<F:.log=.dep)  --afm $(outdir)/$(<F:.log=.afm) --tex $(outdir)/$(<F:.log=.tex) $<
 
 localclean:
-       rm -f mfplain.mem mfplain.log
+       rm -f mfplain.mem mfplain.log mpout.log
index 97d88a6bc822f4c3675b4481b63ecb47a36dfe98..76a21ed49dfb7b413346ccb70be5a676aec68561 100644 (file)
@@ -113,7 +113,7 @@ enddef;
 def breapth_endchar =
        scantokens extra_endchar;
        if proofing > 0: makebox_with_breapth(proofrule); fi
-%      chardx := 10*(w + b);
+       chardx := (w + b);      %what the hack is chardx
        shipit;
        endgroup
 enddef;
index b1cdd49fbc1befe81933133826ee94c0bc84e406..ad64170dff288c119ba782e0ea9b26c9c94c71f9 100644 (file)
@@ -37,7 +37,7 @@ if test = 0:
 else:
 %      input feta-bolletjes;   
 %      input feta-banier;
-       input feta-eindelijk;
+%      input feta-eindelijk;
 %      input feta-klef;
 %      input feta-toevallig;
 %      input feta-schrift;
index 6b4fbe0d6d442d31d5c6cbea76a8d86dbe4905ec..ed9c5a49e3c0cf719ad2182ebd3a20cf87442e63 100644 (file)
@@ -53,7 +53,7 @@ unsigned
 Midi_parser::get_u (int n)
 {
   assert (n <= (int)sizeof(int));
-  return String_convert::bin2_i (get_str (n));
+  return String_convert::bin2_u (get_str (n));
 }
 
 String
index 2154b4118ff8c6c88411abf419c708d139a42a2f..9b1377d6662cf22a438b29f19080dac95968267c 100644 (file)
@@ -1,8 +1,6 @@
 \paper {
        \translator { \OrchestralPartStaffContext }
-       \translator { \ScoreContext
-               skipBars = 1;
-       }
+       \translator { \VoiceContext beamAuto=0; }
+       \translator { \ScoreContext skipBars = 1; }
        castingalgorithm = \Wordwrap;
-       
 }
index f1f569d53f6870498e1f1a3dfd45283292e624fb..530d6daed8b1f0d004c7ee861f2dfdac526ea629 100644 (file)
@@ -74,9 +74,9 @@ strijkers = \context StaffGroup = strijkers_group <
                \$strijkers
        >
        \paper{
-               % Give hara-kiri something to do...
-               % URG fixme Score+HaraKiri!
                linewidth = 130.0\mm;
+               \translator { \VoiceContext beamAuto=0; }
+               \translator { \HaraKiriStaffContext }
                \translator { \OrchestralScoreContext }
        }
        \midi{ \tempo 4 = 160; }
index 1ee6a0f2c8c7eab8cd7832916e638d396427c274..a7da1b1e91438d0cc5fc3074974167c39fd3dfc3 100644 (file)
@@ -14,7 +14,7 @@ fagotto2 = \notes \relative c {
        fis4-. r r2 | r1 | g4-. r r2 | g4-. r r2 | R1 *5 |
        %20
        r2 r4 g,4-. |
-       R1*6 | r4 g'\f r2 | R1*5 | as1\ff %~ |
+       R1*6 | r4 g'\f r2 | R1*6 | as1\ff %~ |
        %35
 }
 
index 5a0299cfdd36abeb45de619e008dc9dc92645497..5a85db28d2377d2b2d371a7513ce2298ccbb8f46 100644 (file)
@@ -14,7 +14,7 @@ flauto2 = \notes \relative c {
        c4-. r r2 | r1 | es4-. r r2 | d,4-. r r2 | R1 *4 |
        r2 r2 | 
        %20
-       r2 r4 b4-. | R1*6 | r4 c r2 | R1*5 | c1 % ~ |
+       r2 r4 b4-. | R1*6 | r4 c r2 | R1*6 | c1 % ~ |
        %35
 }
 
index 44b23129502c24d2e832af22c4555076c639d3a3..1ee2457763c8c868ef98c283af2390d289535d84 100644 (file)
@@ -79,8 +79,8 @@ viola1 = \notes \relative c {
        [d8-"cresc." d-.] es4. es8-. d4 ~ |
        [d8 d-.] es4. es8-. d4 ~ |
        [d8 d-.] es4. es8-. d4 ~ |
-       [d8 d-.] es4. es8-. d4 |
-       fis,2:\ff fis4: g: |
+       [d8 d-.] es4. es8-. d4 (|
+       )fis,2:\ff fis4: g: |
        %85
        d2: d: | fis: fis4: g: | c,: d: c: d: | b2: b4: c: | f': es: f: es: |
        %90
@@ -222,8 +222,8 @@ viola1 = \notes \relative c {
        [g8 g-.] as4. as8-. g4 ~ |
        %210
        [g8 g-.] as4. as8-. g4 ~ |
-       [g8 g-.] as4. as8-. g4 |
-       b,2:16\ff b4: c: | g'2: g: | 
+       [g8 g-.] as4. as8-. g4 (|
+       )b,2:16\ff b4: c: | g'2: g: | 
        %214
        b,2:16\ff b4: c: | g'2: g: | 
        e2:16\ff e4: f: | b,: c: b: c: | 
index 451392a4912a2c13f25346b807cd02e2bf9bc819..d7448fa7a73910a6a44a1c34b1de999065f66e1f 100644 (file)
@@ -13,21 +13,21 @@ copyright =  "public domain";
 \include "viola-1.ly"
 \include "viola-2.ly"
 
-$viola_staff = \context Staff = violai <
-       \property Staff.midiInstrument = "viola"
-       \property Staff.instrument = "Viola"
-       \property Staff.instr = "Vla."
-       \clef "alto";
-       \notes \context Voice=one < 
-               \global 
-               \$viola1
-               \$viola2
-       >
+$viola_staff = \context GrandStaff = viola <
+       \$viola1_staff
+       \$viola2_staff
 >
 
 \score{
        \$viola_staff
-       \include "coriolan-part-paper.ly"
+       %%\include "coriolan-part-paper.ly"
+       \paper{
+               castingalgorithm = \Wordwrap;
+               \translator { \VoiceContext beamAuto=0; }
+               \translator { \HaraKiriStaffContext }
+               % \translator { \ScoreContext skipBars = 1; }
+               \translator { \OrchestralScoreContext skipBars = 1; }
+       }
        \midi{ \tempo 4 = 160; }
 }
 
index 8579677fe88fbf3a2a8ef338136a4a26f3dc1a4f..5ea0add43d360fc69227eb08b322e01ccdff7063 100644 (file)
@@ -76,8 +76,8 @@ violino1 = \notes \relative c {
        [a8 bes-.] bes4. bes8-. bes4~|
        [bes8 bes-.] bes4. bes8-. bes4~|
        [bes8 c-.] c4. c8-. c4~|
-       [c8 d-.] d4. d8-. d4~|
-       es2:16\ff es4: d: |
+       [c8 d-.] d4. d8-. d4(|
+       )es2:16\ff es4: d: |
        %85
        fis: g: fis: g: |
        es2: es4: d: | 
index 2ea3f661e97e47bbf0b13a58b10941aab7b601ed..b2743d9e0bbec2932605dea5f88a2bf0ff48edd6 100644 (file)
@@ -204,8 +204,8 @@ violoncello = \notes \relative c {
        %185
        [g(f' d f][g f d )g,~] |
        [g(e' c d][g e c )g~] |
-       [g(d' b d][g d b )g~] |
-       e2\ff d' | cis a ~ |
+       [g(d' b d][g d b )g(] |
+       )e2\ff d' | cis a ~ |
        %190
        [a8( f' d f][a f d )a!~] |
        [a( e' cis e][a e c )a!~] |
index a2d5573c886dcfe715827370dd5bccc3105efc13..6974285d121f95c4594a7d88a7859c2cf206821e 100644 (file)
 \header {
-title = "Stille Nacht";
-subtitle = "(Silent Night)";
-filename = "stille.ly";
-enteredby = "Peter Chubb";
-composer = "Franz X. Gruber";
-poet = "Joseph Mohr";
+  title = "Stille Nacht";
+  subtitle = "(Silent Night)";
+  filename = "stille.ly";
+  enteredby = "Peter Chubb";
+  composer = "Franz X. Gruber";
+  poet = "Joseph Mohr";
 }
 
 
 \version "1.1.52";
 
+%{
+       Note:  there are other verses, but the three here seem to be
+       the most commonly sung ones.
+       I don't know who did the translation or the arrangement.
+%}
+
 global=\notes {
-             \time 6/4;
-             \key Bes;
+      \time 6/4;
+      \key Bes;
+      \skip 1.*12;
+      \bar "|.";
 }
 
 sop=\notes \relative f' {
+       \property Voice . articulationScriptVerticalDirection = \up
 %1
-          f4. ( ) g8 f4 d2. |
-          f4. ( ) g8 f4 d2 r4 |
-          c'2 c4 a2 r4 |
-          bes2 bes4 f2. |
+       f4. ( ) g8 f4 d2. |
+       f4. ( ) g8 f4 d2 r4 |
+       c'2 c4 a2 r4 |
+       bes2 bes4 f2. |
 %5
-          g2 g4 bes4.( )a8 g4 |
-          f4.()g8 f4 d2 r4 |
-          g2 g4 bes4.( )a8 g4 |
-          f4.()g8 f4 d2 r4 |
+       g2 g4 bes4.( )a8 g4 |
+       f4.()g8 f4 d2 r4 |
+       g2 g4 bes4.( )a8 g4 |
+       f4.()g8 f4 d2 r4 |
 %9        
-          c'2 c4 es4.()c8 a4 |
-          bes2.~ ( <bes2-- )d2-- > r4 |
-          bes4 ( )f d f4.( )es8  c4 | 
-          bes2. ~ bes2 r4 \bar "|.";
+       c'2 c4 es4. c8 a4 |
+       bes2. (  < ~bes2-- )d2-- > r4 |
+       bes4 ( )f d f4.( )es8  c4 | 
+       bes2. ~ bes2 r4
 }
 
 alt=\notes\relative c' {
+       \property Voice . articulationScriptVerticalDirection = \down
 %1
-          d4. es8 d4 bes2. |
-          d4. es8 d4 bes2 r4 |
-          es2 es4 ges2 r4 |
-          f2 es4 d2. |
+       d4. es8 d4 bes2. |
+       d4. es8 d4 bes2 r4 |
+       es2 es4 ges2 r4 |
+       f2 es4 d2. |
 %5
-          es2 es4 es4. f8 es4 |
-          d4. es8 d4 bes2 r4 |
-          es2 es4 es4. f8 es4 |
-          d4. es8 d4 c( )bes r4 |
+       es2 es4 es4. f8 es4 |
+       d4. es8 d4 bes2 r4 |
+       es2 es4 es4. f8 es4 |
+       d4. es8 d4 c( )bes r4 |
 %9
-          es4( )f g a4. a8 ges4|
-          f2.~ e!2-- r4 |
-          d2 bes4 d4. c8 c4 |
-          bes2. ~ bes2 r4 \bar "|.";
+       es4( )f g a4. a8 ges4|
+       f2.( )e!2-- r4 |
+       d2 bes4 d4. c8 c4 |
+       bes2. ~ bes2 r4
 }
 
 ten=\notes\relative c' {
-          bes2 bes4 f2. |
-          bes2 a4 f2 r4 |
-          a2 a4 c2 r4 |
-          bes2 a4 f2 ( ) bes4 |
+       \property Voice . articulationScriptVerticalDirection = \up
+
+       bes2 bes4 f2. |
+       bes2 a4 f2 r4 |
+       a2 a4 c2 r4 |
+       bes2 a4 f2 ( ) bes4 |
 %5
-          bes2 bes4 g4. a8 bes4 |
-          bes4. bes8 bes4 f2 r4 |
-          bes2 bes4 g4. a8 bes4 |
-          bes4. bes8 bes4 f2 r4 |
+       bes2 bes4 g4. a8 bes4 |
+       bes4. bes8 bes4 f2 r4 |
+       bes2 bes4 g4. a8 bes4 |
+       bes4. bes8 bes4 f2 r4 |
 %9
-          g2 bes4 c4. c8 c4 |
-          bes2. ~ g2-- r4 |
-          bes2 g4 a4. bes8 a4 | 
-          bes2. ~ bes2 r4 \bar "|.";
+       g2 bes4 c4. c8 c4 |
+       bes2. ( ) g2-- r4 |
+       bes2 g4 a4. bes8 a4 | 
+       bes2. ~ bes2 r4
 }
 
 bass=\notes\relative c {
+       \property Voice . articulationScriptVerticalDirection = \down
 %1
-          bes2 bes4 bes2. |
-          bes2 bes4 bes2 r4 |
-          f'2 f4 es2 r4 |
-          d2 c4 bes2. |
+       bes2 bes4 bes2. |
+       bes2 bes4 bes2 r4 |
+       f'2 f4 es2 r4 |
+       d2 c4 bes2. |
 %5
-          es2 es4 es2 es4 |
-          bes4. bes8 bes4 bes2 r4 |
-          es2 es4 es4. es8 es4 |
-          bes4. bes8 bes4 bes2 r4 |
+       es2 es4 es2 es4 |
+       bes4. bes8 bes4 bes2 r4 |
+       es2 es4 es4. es8 es4 |
+       bes4. bes8 bes4 bes2 r4 |
 %9
-          c4 d es f4. f8 es4 |
-          d2. ~ c2-- r4 |
-          f2 f4 f4. g8 a4 |
-          bes2. ~ bes2 r4 \bar "|.";
-}
-
-chords=\lyrics{
-       "B\\textflat"1 ""2
-       "B\\textflat maj7"1 ""2
-       "F7"2. "E\\textflat dim"2. |
-       "B\\textflat /D"2 "Cm7"4 "B\\textflat"2. |
-       "E\\textflat"1 ""2 |
-       "B\\textflat"1 ""2 |
-       "E\\textflat"1 ""2 |
-       "B\\textflat"1 ""2 |
-       "Cm  "4 "Gm7sus4/D "4 "Cm/E\\textflat "4 "F7"2 "E\\textflat dim"4 |
-       "B\\textflat /D"2. "C9"2 ""4 |
-       "B\\textflat /F"2. "F7"2. |
-       "B\\textflat"2 ""2 ""2
+       c4 d es f4. f8 es4 |
+       d2. ( ) c2-- r4 |
+       f2 f4 f4. g8 a4 |
+       bes2. ~ bes2 r4
+}
+
+harm=\chords{
+       \property Score.chordInversion = 1
+
+       bes1. |
+       bes-7+ |
+       f2.-7 es-dim |
+       bes2/d c4-m7 bes2. |
+       es1. |
+       bes1. |
+       es1. |
+       bes1. |
+       c4-m  
+       g-m7.4/d      % should be Gm7sus4
+       c-m/es f2-7 es4-dim |
+       bes2./d c2.-9 |
+       bes2./f f-7 |
+       bes1.
 }
 
 v1 = \lyrics {
-       Stil-2 le4 Nacht,2. hei-4. li-8 ge4 Nacht,2. 
-       Al-2 les4 schl\"aft,2. ein-2 sam4 wacht2.
-       Nur2 das4 trau-2 te,4 hoch-4. heil8 ige4 Paar,2.
-       Hold-2 er4 Knabe2 im4 lock-4. i-8 gen4 Haar2. 
-       Schlaf2 in4 himm-4. li-8 scher4 Ruh'!2 - -
-       Schlaf2 in4 himm-4. li-8 scher4 Ruh'!2 - -
+       Stil2 -- le4 Nacht,2. hei4. -- li8 -- ge4 Nacht,2. 
+       Al2 -- les4 schl\"aft,2. ein2 -- sam4 wacht2.
+       Nur2 das4 trau2 -- te,4 hoch4. -- heil8 ige4 Paar,2.
+       Hold2 -- er4 Knabe2 im4 lock4. -- i8 -- gen4 Haar2. 
+       Schlaf2 in4 himm4. -- li8 -- scher4 Ruh'!1 __ ""2
+       Schlaf2 in4 himm4. -- li8 -- scher4 Ruh'!1 __ ""2
 }
+
 v2 = \lyrics {
-       Stil-2 le4 Nacht,2. hei-4. li-8 ge4 Nacht,2. 
-       Hir-2 ten4 erst2. kund2 ge-4 macht2.
-       Durch2 der4 En-2 gel4 Ha-4. lle-8 lu4 ja2.
+       Stil2 -- le4 Nacht,2. hei4. -- li8 -- ge4 Nacht,2. 
+       Hir2 -- ten4 erst2. kund2 ge4 -- macht2.
+       Durch2 der4 En2 -- gel4 Ha4. -- lle8 -- lu4 ja2.
        T\"ont2 es4 laut2 von4 fern2 und4 nah:2.
-       "``Christ,"2 der4 Ret-4. ter,8 ist4 "da!''"2 - -
-       "``Christ,"2 der4 Ret-4. ter,8 ist4 "da!''"2 - -
+       "``Christ,"2 der4 Ret4. -- ter,8 ist4 "da!''"1 __ ""2
+       "``Christ,"2 der4 Ret4. -- ter,8 ist4 "da!''"1 __ ""2
 }
 
 v3 = \lyrics {
-       Stil-2 le4 Nacht,2. hei-4. li-8 ge4 Nacht,2. 
-       Go-2 ttes4 Sohn,2. o-2 wie4 lacht2.
-       Lieb'2 aus4 dei-2 nem4 g\"ott-4. li-8 chen4 Mund,2.
-       Da2 uns4 schlägt2 die4 ret-2 tende4 Stund'.2. 
-       Christ,2 in4 Dei-4. ner8 Ge-4 burt!2 - -
-       Christ,2 in4 Dei-4. ner8 Ge-4 burt!2 - -
+       Stil2 -- le4 Nacht,2. hei4. -- li8 -- ge4 Nacht,2. 
+       Go2 -- ttes4 Sohn,2. o2 -- wie4 lacht2.
+       Lieb'2 aus4 dei2 -- nem4 g\"ott4. -- li8 -- chen4 Mund,2.
+       Da2 uns4 schlägt2 die4 ret2 -- tende4 Stund'.2. 
+       Christ,2 in4 Dei4. -- ner8 Ge4 -- burt!1 __ ""2
+       Christ,2 in4 Dei4. -- ner8 Ge4 -- burt!1 __ ""2
 }
 
 v1e = \lyrics {
-       Sil-2 ent4 night,2. Ho-2 ly4 night,2.
+       Si2 -- lent4 night,2. Ho2 -- ly4 night,2.
        All2 is4 calm,2. all2 is4 bright,2.
-       'Round2 yon4 Vir-2 gin4 Mo-4. ther8 and4 Child2.
-       Ho-2 ly4 In-4. fant8 so4 ten-4. der8 and4 mild,2.
-       Sleep2 in4 hea-4. ven-8 ly4 peace,2 - -
-       Sleep2 in4 hea-4. ven-8 ly4 peace.2 - -
+       'Round2 yon4 Vir2 -- gin4 Mo4. -- ther8 and4 Child2.
+       Ho2 -- ly4 In4. -- fant8 so4 ten4. -- der8 and4 mild,2.
+       Sleep4. __ ""8 in4 hea4. -- ven-8 ly4 peace,1 __ ""2
+       Sleep4. __ ""8 in4 hea4. -- ven-8 ly4 peace.1 __ ""2
 }
+
 v2e = \lyrics {
-       Si-2 lent4 night,2. Ho-2 ly4 night,2.
-       Shep-2 herds4 quake2. at2 the4 sight,2.
-       Glo-2 ies4 stream2 from4 hea-4. ven8 a-4 far,2.
-       Hea-2 v'nly4 hosts2 sing4 "``A-"4. lle-8 lu-4 ia;2.
-       Christ2 the4 Sa-4. viour8 is4 born,2.
-       Christ2 the4 Sa-4. viour8 is4 "born.''"2.
+       Si2 -- lent4 night,2. Ho2 -- ly4 night,2.
+       Shep2 -- herds4 quake2. at2 the4 sight,2.
+       Glo2 -- ries4 stream4. __ ""8 from4 hea4. -- ven8 a4 -- far,2.
+       Hea2 -- v'nly4 hosts4. __ ""8 sing4 "``A"4. -- lle8 -- lu4 -- ia;2.
+       Christ4. __ ""8 the4 Sa4. -- viour8 is4 born,1 __ ""2
+       Christ4. __ ""8 the4 Sa4. -- viour8 is4 "born.''"1 __ ""2
 }
 
 v3e = \lyrics {
-       Si-2 lent4 night,2. Ho-2 ly4 night,2.
+       Si2 -- lent4 night,2. Ho2  -- ly4 night,2.
        Son2 of4 God,2. love's2 pure4 light2.
-       Ra-2 diant4 beams4. from8 Thy4 ho-4. ly8 face,2.
-       With2 the4 dawn2 of4 sa-4. ving8 grace2.
-       Je-2 sus,4 Lord,4. at8 Thy4 birth,2.
-       Je-2 sus,4 Lord,4. at8 Thy4 birth.2.
+       Ra2 -- diant4 beams4. from8 Thy4 ho2 -- ly4 face,2.
+       With2 the4 dawn4. __ ""8 of4 sa2 -- ving4 grace2.
+       Je2 -- sus,4 Lord,4. at8 Thy4 birth,1 __ ""2
+       Je2 -- sus,4 Lord,4. at8 Thy4 birth.1 __ ""2
 }
 
 
 upper= \notes {
        \context Staff = upper { 
-               \clef "treble"; \global
+               \clef "treble"; 
                \context Staff <
+                       \global
                        { \voiceone \sop }
                        { \voicetwo \alt }
                >
@@ -166,22 +186,40 @@ upper= \notes {
 
 lower = \notes {
        \context Staff = lower {
-               \clef "bass"; \global 
+               \clef "bass";
                \context Staff <
+                       \global
                        { \voicethree \ten }
                        { \voicefour \bass }
                >
        }
 }
 
+GermanWords=\context Lyrics=upper <
+       \v1
+       \v2
+       \v3
+>
+
+EnglishWords=\context Lyrics=upper <
+       \v1e
+       \v2e
+       \v3e
+>
+
 \score {
-       \context ChoirStaff 
-       <
-             { \context Lyrics = top \chords }
-              \upper
-             { \context Lyrics = upper \v1 }
-             { \context Lyrics = upper \v2 }
-             { \context Lyrics = upper \v3 }
-             \lower
-       >
+       \context ChoirStaff <
+               \context ChordNames \harm
+               \upper
+%              \EnglishWords
+               \GermanWords
+               \lower
+       >
+        \paper { % fit onto single A4 page
+               textheight=290.0\mm;
+               indent=0.0\mm;
+       }
+       \midi{
+       }
 }
+
index 3f3f98ee14b3c2a96c551b1c293f4b83a6f8835d..fca4a877339207cfbf4e6e63af878a3ea49a86d5 100644 (file)
@@ -1,3 +1,9 @@
+pl 79
+       - empty sed script fix for aix
+
+pl 78
+       - yodl mode, mp fixes
+
 pl 77
        - mfmode
 
index 26f5b35fe005cc3fa64bbe68f6b8caa750d05aef..f4cf86e78071cb95f6eacd4b289b188632829d40 100644 (file)
@@ -1,7 +1,7 @@
 PACKAGE_NAME=StepMake
 MAJOR_VERSION=0
 MINOR_VERSION=1
-PATCH_LEVEL=78
+PATCH_LEVEL=79
 MY_PATCH_LEVEL=
 
 # use the above to send patches, always empty for released version:
index 8c73b296e0fd073159ed806b76f9c746ced9d5df..ef846f8a3c3df6cfdac2d1be33eb76d65f08e256 100644 (file)
@@ -1,18 +1,10 @@
 
-# urg
-# i've got no idea what this scaling could be for, on both sides...
-# it seems that 'low_res', which should be all we ever need according
-# to the metapost mfplain guru, really does 200dpi, iso 600dpi (minimun)
-#      -$(METAPOST) "&mfmp \mode=ljfour; \mag=100.0; batchmode; input $<"
-#      -$(METAPOST) "&mfplain \mode=lowres; \mag=100.0; batchmode; input $<"
-
 $(outdir)/%.0: %.mf mfplain.mem  
        -$(METAPOST) "&mfplain \mode=lowres; \mag=1.0; nonstopmode; input $<"
 
-
-
-mfplain.mem: mfplain.ini
-       $(INIMETAPOST) mfplain.ini
+MFPLAIN_MP=/usr/share/texmf/metapost/base/mfplain.mp
+mfplain.mem: $(MFPLAIN_MP)
+       $(INIMETAPOST) -interaction=nonstopmode $(MFPLAIN_MP) dump
 
 
 $(outdir)/%.pfa: $(outdir)/%.0
@@ -20,8 +12,3 @@ $(outdir)/%.pfa: $(outdir)/%.0
        rm -f $(basename $(@F)).[0-9]*
        rm -f $(basename $<).log $(basename $<).tfm
 
-
-
-#dokkum:~/usr/src/lilypond/mf$ inimpost /usr/share/texmf/metapost/base/mfplain.mp
-#[....] \dump
-
index d310ae63a2e160a90056fa1aa26813f28a889a60..62c4dd010aae16489a0e0d2c8b12b0de2d99b898 100644 (file)
@@ -10,12 +10,12 @@ DATE = $(date)
 
 # for all FILE in AT_FILES:
 # substitute occurrences of @FILE@ with contents $(at-dir)BLA$(at-ext)
-sed-atfiles = -e '' $(foreach i, $(AT_FILES), \
+sed-atfiles = -e '\#' $(foreach i, $(AT_FILES), \
   -e '/@$i@/r $(at-dir)$i$(at-ext)' -e 's%@$i@%%g')
 
 # for all VAR in ATVARIABLES
 # substitute occurrences of @VAR@ with $(VAR)
-sed-atvariables = -e '' $(foreach i, $(ATVARIABLES), -e 's!@$i@!$($i)!g')
+sed-atvariables = -e '\#' $(foreach i, $(ATVARIABLES), -e 's!@$i@!$($i)!g')
 
 # these are obsolete
 # use ATVARIABLES