]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.1.25 release/1.1.25
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 26 Jan 1999 12:10:43 +0000 (13:10 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 26 Jan 1999 12:10:43 +0000 (13:10 +0100)
25 files changed:
Documentation/tex/lilypond-overview.doc
Documentation/tex/refman.yo
NEWS
TODO
VERSION
input/praeludium-fuga-E.ly
input/test/GNUmakefile
input/test/grace.ly
input/test/harmonics.fly [new file with mode: 0644]
input/test/tchaikovsky.ly [new file with mode: 0644]
lily/heads-engraver.cc
lily/include/lookup.hh
lily/include/musical-request.hh
lily/include/note-head.hh
lily/lookup.cc
lily/lookup.cc.orig [deleted file]
lily/musical-request.cc
lily/note-head.cc
ly/dynamic.ly
make/out/lelievijver.lsm
make/out/lilypond.lsm
make/out/lilypond.spec
mf/feta-bolletjes.mf
mutopia/D.Scarlatti/sonata-k3-l378.ly
mutopia/L.Mozart/sinfonia.ly

index 0ab7fdfe17b71f9400eb8a871f1e3921143db1a9..885faa672783e9fc42aeebad024e6c0e539c014d 100644 (file)
@@ -512,7 +512,7 @@ to be shifted horizontally.  An example of this is given in Figure~\ref{fig:coll
 \begin{figure}[h]
   \begin{center}
     \begin{mudela}
-      
+      c4
     \end{mudela}
     \caption{Collisions}
     \label{fig:collision}
index 67be77b94d61e594adb4bba72c3d3eea4bdfefa1..97255bab01dff7509d0b757dd3c3cfbbea03ee1f 100644 (file)
@@ -553,8 +553,10 @@ mudela()(
 Dynamic marks are specified by using an identifier after a note
 without a dash: code(c4 \ff).  Note that this syntax is inconsistent
 with the syntax for other types of ornaments.  The available dynamic
-marks are: code(\ppp), code(\pp), code(\p), code(\mp), code(\mf),
-code(\f), code(\ff), code(\fff), code(\fp), code(sf), and code(\sfz).
+marks are: code(\pppppp), code(\ppppp), code (\pppp), code(\ppp), code(\pp), 
+code(\p), code(\mp), code(\mf), code(\f), code(\ff), code(\fff),
+code(\ffff), code(\fffff), code(\ffffff), 
+code(\fp), code(sf), code(\sff), code(\sp), code(\spp), (\sfz) and code (\rfz).
 
 A crescendo mark is started with code(\cr) and terminated with
 code(\rc).  A decrescendo mark is started with code(\decr) and
@@ -1449,6 +1451,9 @@ equal to -1.
 dit(code(\f)) Print forte symbol on the preceeding note.
 dit(code(\ff)) Print fortissimo symbol on the preceeding note. 
 dit(code(\fff)) Print fortississimo symbol on preceeding note. 
+dit(code(\ffff)) Print fortissississimo symbol on preceeding note.
+dit(code(\fffff)) Print fffff symbol on preceeding note.
+dit(code(\ffffff)) Print ffffff symbol on preceeding note.
 dit(code(\fp)) Print fortepiano symbol on preceeding note. 
 dit(code(\free)) Used for setting direction setting properties.  Is
 equal to 0.  
@@ -1474,11 +1479,16 @@ has the same key signature.  This sets the Staff.keyoctaviation property.
 dit(code(\p)) Print a piano symbol on preceeding note. 
 dit(code(\pp)) Print pianissimo symbol on preceeding note. 
 dit(code(\ppp)) Print pianississimo symbol on preceeding note. 
+dit(code(\pppp)) Print pianissississimo symbol on preceeding note.
+dit(code(\ppppp)) Print ppppp symbol on preceeding note.
+dir(code(\pppppp)) Print pppppp symbol on preceeding note.
 dit(code(\rc)) Terminate a crescendo. 
 dit(code(\rced)) Terminate a decrescendo
+dit(code(\rfz)) Print a rinforzato symbol on preceeding note.
 dit(code(\right)) Used for setting textalignment property.  Is set to 1.
-dit(code(\sf)) Print a ?? symbol on preceeding note. 
-dit(code(\sfz)) Print a ?? symbol on preceeding note. 
+dit(code(\sf)) Print a subito-forte symbol on preceeding note. 
+dit(code(\sff)) Print a subito-fortissimo symbol on preceeding note.
+dit(code(\sfz)) Print a sforzato symbol on preceeding note. 
 dit(code(\shiftoff)) Disable horizontal shifting of note heads that collide.  
 Sets the Voice.hshift property.
 dit(code(\shifton)) Enable note heads that collide with other note heads
@@ -1489,6 +1499,8 @@ dit(code(\slurdown)) Force slurs to be below notes. This sets the
 Voice.slurydirection property. 
 dit(code(\slurup)) Force slurs to be above notes.  This sets the
 Voice.slurydirection property.  
+dit(code(\sp)) Print a subito-piano symbol on preceeding note.
+dit(code(\spp)) Print a subito-forte symbol on preceeding note.
 dit(code(\specialkey)) Allow keys signatures do differ in different
 octaves.  This sets the Staff.keyoctaviation property.  
 dit(code(\stemboth)) Allow stems, beams, and slurs to point either
diff --git a/NEWS b/NEWS
index 156cc698fbd8e800233219bb9cccef49e75722f8..d182cc1488791ce844a6da72bbe5943136da2439 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,17 @@
---- ../lilypond-1.1.24.jcn1/NEWS       Mon Jan 25 17:34:49 1999
-++ b/NEWS      Mon Jan 25 23:43:11 1999
-@@ -1,3 +1,14 @@
+
+pl 23.ms2
+       - property noteheadStyle
+       - first attempt to make harmonics : see input/test/harmonics.fly
+
+pl 23.ms1
+       - sinfonia.ly: several fixes
+       - dynamics
+        * increased range pppppp to ffffff
+         * added sp, spp, sff, rfz
+         * example see input/test/tchaikovsky.ly
+         * updated dynamics in refman
+
+
 pl 24.jcn2
        - website fixes
        - bf's: chords:
@@ -13,22 +24,23 @@ pl 24.jcn2
        - bf's: autobeamer
 
  pl 24.jcn1
-       - bf: rest collisions
-       - separate tfm-reader--- ../lilypond-1.1.24/NEWS        Mon Jan 25 22:38:25 1999
-++ b/NEWS      Mon Jan 25 22:36:28 1999
-@@ -1,3 +1,6 @@
-pl 24.mb1
-        - bf: Correct units now used in the .afm files.
-
- pl 24, Hacking Apart Together (Jan 25)
- pl 23.jbr1pl 24.jcn1
        - bf: rest collisions
        - separate tfm-reader
        - bf: :|: should not have thin lines
 
+
+pl 24.mb1
+        - bf: Correct units now used in the .afm files.
+
+******
+
 pl 24, Hacking Apart Together (Jan 25)
 
+pl 23.jcn9
+       - bf's: preludes-* (found a \meter and \transpose c`` there!)
+       - bf: ly2dvi: don't barf on 'linewidth = -1.;'
+       - bf: lily-version
+
 pl 23.jbr1
         - scripts/ly2dvi.py: Windows 95 shell does not support redivrection 
           of stderr.  We now distribute ash and use it when needed.
diff --git a/TODO b/TODO
index b7ed39218c3e22927f3cc972690192040ca63ca5..6fa02b569fd0b009a6366d629a7ffd49def2a6c1 100644 (file)
--- a/TODO
+++ b/TODO
@@ -19,6 +19,15 @@ I also found a few bugs:
   be to the left of the staff lines.
 **************
 
+- Textual scripts and dynamics are printed in the middle of the staff.
+
+       * fix AFM for BlueSky AFM files.
+
+- I didn't find any working example of the Staff_margin-engraver in 
+  input/test, and I couldn't invent one myself either. 
+  bar-scripts.ly, score-bar-scripts.ly and hara-kiri.ly don't work
+  properly.
+
        * check widths of TFM, something's wrong here. 
 
        * hang Item on Spanner
@@ -29,6 +38,8 @@ I also found a few bugs:
 
        * do --safe for PS output?
 
+       * convert-mudela --output
+
        * staff_margin (with a partial measure.)
 
        * fix "I've been drinking too much"
@@ -67,9 +78,14 @@ I also found a few bugs:
 
 BUGS:
 
+       * collisions/voices \voiceone \voicetwo are broken; see 
+         input/praeludium-fuga-E.ly
+         mutopia/J.S.Bach/wtk1-fugue2.ly
+
        * fix: text on rests: rediculous dims
 
        * ly2dvi
+         - bottomnote for ly2dvi
          - deps for ly2dvi
 
        * fix midi output:
diff --git a/VERSION b/VERSION
index c35a2b5a0e393cee0562b4836f9c7685cacfc0b1..29658f68d27f264919ba3b6070d94aba991c93b6 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=1
-PATCH_LEVEL=24
-MY_PATCH_LEVEL=jcn2
+PATCH_LEVEL=25
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index 93495cf1798cbf5f926364b5c3eb2bd7484531bb..3c7cd3a03fe1c15e9fc619318c2a2d588937f677 100644 (file)
@@ -177,7 +177,7 @@ breakmusic = \notes {
 % these should be two separate scores...
 \score{
   \type Score <
-    \type GrandStaff <
+    \type PianoStaff <
       \type Staff = treble {
         \praeludium_right \breakmusic \fugaII_right }
       \type Staff = bass { 
index 8b6e80e71627f7a288037c2f1f3513365881167c..193b5b94fc808efebe7274bc9ccb89059452dedc 100644 (file)
@@ -1,7 +1,7 @@
 # input/test/Makefile
 
 depth = ../..
-examples=font20 mark knee beam-interstaff slur-interstaff denneboom sleur chords chord-table repeat hara-kiri grace
+examples=font20 mark knee beam-interstaff slur-interstaff denneboom sleur repeat hara-kiri grace
 LOCALSTEPMAKE_TEMPLATES=mutopia
 
 include $(depth)/make/stepmake.make 
index 315df05808778de1488211c5f9e32ff30199a1cb..af7f830ba4dcdac6cdbd30104c27253d33650b20 100644 (file)
@@ -18,9 +18,6 @@
        >
        \paper {
                linewidth = 120.0\mm;
-               -2 = \font "feta13"
-               -1 = \font "feta16"
-
        }
 }
 
diff --git a/input/test/harmonics.fly b/input/test/harmonics.fly
new file mode 100644 (file)
index 0000000..59d8925
--- /dev/null
@@ -0,0 +1,8 @@
+% this should be normal notes:
+c'1 | d2 d | e4 e 
+
+% and this should be harmonics:
+\property Voice.noteheadStyle = "harmonic"
+e8 e e16 e e e32 e
+
+
diff --git a/input/test/tchaikovsky.ly b/input/test/tchaikovsky.ly
new file mode 100644 (file)
index 0000000..78afbe9
--- /dev/null
@@ -0,0 +1,43 @@
+\header{
+filename =     "tchaikovsky.ly";
+title =                "Extracts from 6th symphony";
+subtitle =     "Ist movement";
+composer=      "Pjotr Iljitsj Tchaikovsky";
+enteredby =    "Maarten Storm";
+instrument=    "Violoncello";
+}
+
+\version "1.0.14";
+
+% this is an example of extreme dynamics
+
+% adagio mosso - 7 measures before Allegro vivo
+\score{
+       \notes
+         \relative c{
+               \clef "bass";
+               \key D;
+               <a2\ppp\cr d> <gis\rc\p\decr d'> | <a2\rced d> ~ <a8 d> r8 r4 |
+               a2\ppp\cr a2\rc\p\decr | <a2\rced d> ~ <a8 d> r8 r4 |
+               a2\pppp ~ a8 r8 r4 | a2\ppppp ~ a8 r8 r4 | r4 a8_"pizz"
+               r8 r2^\fermata     
+       }
+       \header{
+       piece="example 1";
+       }
+}
+
+% 8 measures before Andante come prima
+\score{
+       \notes
+       \relative c{
+               \clef "bass";
+               \key C;
+               <e1\sff cis'^\downbow> | <cis\sff a'^\downbow> | 
+               <d,\ffff\decr g> ~ <d2 g> ~ <d8\p\rced g> |
+       }
+       \header{ 
+       piece="example 2";
+       }
+}
+
index c2d52cf13912e4aba58aad175d858f08dd855fa4..4e894ba4383d46692e6d7bb8f0f44a4768c29b9a 100644 (file)
@@ -49,6 +49,9 @@ Note_heads_engraver::do_process_requests()
       note_p->steps_i_ = note_req_l->pitch_.steps ();
       //      note_p->position_i_ = note_req_l->pitch_.steps ();
 
+      String noteheadstyle = get_property ("noteheadStyle", 0);
+      if (noteheadstyle.length_i ())
+        note_p->note_head_type_str_ = noteheadstyle;
   
       Score_element_info itinf (note_p,note_req_l);
       announce_element (itinf);
index 78a01267869769ba7de34621776164c89832adc2..955ce1e87d70feeccf429b67945a8c3a20dc00b3 100644 (file)
@@ -24,7 +24,10 @@ class Lookup
 public:
   Lookup ();
   Lookup (Lookup const&);
+
+
   
+  Atom special_ball (int, String) const;
   Atom simple_bar (String s, Real w) const;
   Molecule accidental (int, bool cautionary) const;
   Atom afm_find (String, bool warn=true) const;
index f42a50cfa02e4635c0fdc1c4a814d1636edef3e8..cdc293a5f63dcc8e741c996dd8b6c9500b40af07 100644 (file)
@@ -170,8 +170,7 @@ public:
     for FP, SF, SFZ (FP is *not* louder than FFF)
    */
   enum Loudness {
-    FFF, FF, F, MF, MP, P, PP, PPP, FP, SF, SFZ
-  };
+    FFFFFF, FFFFF, FFFF, FFF, FF, F, MF, MP, P, PP, PPP, PPPP, PPPPP, PPPPPP, FP, SF, SFF, SFZ, SP, SPP, RFZ };
   static String loudness_static_str (Loudness);
   REQUESTMETHODS(Dynamic_req);
 };
index 1cc0bad9b891ffe129e7fd75d68cec4e745d53c0..853fee35817515bfd2ebc538f29350e607bd9498 100644 (file)
@@ -18,6 +18,8 @@
 class Note_head : public Rhythmic_head {
 public:
   
+  String note_head_type_str_;
+
   /// position of top line (5 linestaff: 8)
   int position_i_;
 
index 53375b93ec1f170d6dfc7ca3bc816d1799ef89a7..7cc0d6b8a070ea45194e8b5468225c2e5504e035 100644 (file)
@@ -546,3 +546,12 @@ Lookup::volta (Real w, bool last_b) const
   return a;
 }
 
+
+Atom
+Lookup::special_ball (int j, String kind_of_ball) const
+{
+  if (j > 2)
+    j = 2;
+
+  return afm_find (String ("balls") + String ("-") + kind_of_ball);
+}
diff --git a/lily/lookup.cc.orig b/lily/lookup.cc.orig
deleted file mode 100644 (file)
index da8272b..0000000
+++ /dev/null
@@ -1,541 +0,0 @@
-/*
-  lookup.cc -- implement simple Lookup methods.
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-
-  Jan Nieuwenhuizen <janneke@gnu.org>
-
-  TODO
-      Glissando
-*/
-
-#include <ctype.h>
-#include "lookup.hh"
-#include "debug.hh"
-#include "dimensions.hh"
-#include "scalar.hh"
-#include "paper-def.hh"
-#include "string-convert.hh"
-#include "file-path.hh"
-#include "main.hh"
-#include "lily-guile.hh"
-#include "all-fonts.hh"
-#include "afm.hh"
-#include "scope.hh"
-#include "molecule.hh"
-
-SCM
-array_to_list (SCM *a , int l)
-{
-  SCM list = SCM_EOL;
-  for (int i= l; i--;  )
-    {
-      list =  gh_cons (a[i], list);
-    }
-  return list;
-}
-
-
-Lookup::Lookup ()
-{
-  paper_l_ = 0;
-  afm_l_ = 0;  
-}
-
-Lookup::Lookup (Lookup const& s)
-{
-  font_name_ = s.font_name_;
-  paper_l_ = 0;
-  afm_l_ = 0;  
-}
-
-
-
-Molecule
-Lookup::accidental (int j, bool cautionary) const
-{
-  Molecule m(afm_find (String ("accidentals") + String ("-") + to_str (j)));
-  if (cautionary) 
-    {
-      Atom open = afm_find (String ("accidentals") + String ("-("));
-      Atom close = afm_find (String ("accidentals") + String ("-)"));
-      m.add_at_edge(X_AXIS, LEFT, Molecule(open), 0);
-      m.add_at_edge(X_AXIS, RIGHT, Molecule(close), 0);
-    }
-  return m;
-}
-
-
-
-Atom
-Lookup::afm_find (String s, bool warn) const
-{
-  if (!afm_l_)      
-    ((Lookup*)this)->afm_l_ = all_fonts_global_p->find_afm (font_name_);
-  
-  Adobe_font_char_metric m = afm_l_->find_char (s, warn);
-
-  Atom a;
-  if (m.code () < 0)
-    return a;
-    
-  a.dim_ = m.dimensions();
-  
-  a.lambda_ = gh_list (ly_symbol ("char"),
-                      gh_int2scm (m.code ()),
-                      SCM_UNDEFINED);
-  a.font_ = font_name_;
-  return a;
-}
-
-Atom
-Lookup::ball (int j) const
-{
-  if (j > 2)
-    j = 2;
-
-  return afm_find (String ("balls") + String ("-") + to_str (j));
-}
-
-Atom
-Lookup::simple_bar (String type, Real h) const
-{
-  SCM thick = ly_symbol ("barthick_" + type);
-  Real w = 0.1 PT;
-  if (paper_l_->scope_p_->elem_b (thick))
-    {
-      w = paper_l_->get_realvar (thick);
-    }
-  
-  Atom a;
-  a.lambda_ = gh_list (ly_symbol ("filledbox"),
-                      gh_double2scm (0),
-                      gh_double2scm (w),                      
-                      gh_double2scm (h/2),
-                      gh_double2scm (h/2),                    
-                      SCM_UNDEFINED);
-
-  a.dim_[X_AXIS] = Interval(0,w);
-  a.dim_[Y_AXIS] = Interval (-h/2, h/2);
-  return a;
-}
-
-  
-Molecule
-Lookup::bar (String str, Real h) const
-{
-  Real kern = paper_l_->get_var ("bar_kern");
-  Real thinkern = paper_l_->get_var ("bar_thinkern");  
-  Atom thin = simple_bar ("thin", h);
-  Atom thick = simple_bar ("thick", h);
-  Atom colon = afm_find ("dots-repeatcolon");  
-
-  Molecule m;
-
-  if (str == "")
-    {
-      return fill (Box (Interval(0,0),Interval (-h/2, h/2)));
-    }
-  else if (str == "|")
-    {
-      return thin;
-    }
-  else if (str == "|.")
-    {
-      m.add_at_edge (X_AXIS, LEFT, thick, 0);      
-      m.add_at_edge (X_AXIS, LEFT, thin,kern);
-    }
-  else if (str == ".|")
-    {
-      m.add_at_edge (X_AXIS, RIGHT, thick, kern);
-      m.add_at_edge (X_AXIS, RIGHT, thin, 0);
-    }
-  else if (str == ":|")
-    {
-      m.add_at_edge (X_AXIS, LEFT, thick, 0);
-      m.add_at_edge (X_AXIS, LEFT, thin, kern);
-      m.add_at_edge (X_AXIS, LEFT, colon, kern);      
-    }
-  else if (str == "|:")
-    {
-      m.add_at_edge (X_AXIS, RIGHT, thick,0);
-      m.add_at_edge (X_AXIS, RIGHT, thin,kern);
-      m.add_at_edge (X_AXIS, RIGHT, colon,kern);      
-    }
-  else if (str == ":|:")
-    {
-      m.add_at_edge (X_AXIS, LEFT, thick,kern/2);
-      m.add_at_edge (X_AXIS, LEFT, colon,kern);      
-      m.add_at_edge (X_AXIS, RIGHT, thick,kern);
-      m.add_at_edge (X_AXIS, RIGHT, colon,kern);      
-    }
-  else if (str == "||")
-    {
-      m.add_at_edge (X_AXIS, RIGHT, thin,0);
-      m.add_at_edge (X_AXIS, RIGHT, thin,thinkern);      
-    }
-
-  else if (str == ".|.")
-    {
-      m.add_at_edge (X_AXIS, RIGHT, thick, 0);
-      m.add_at_edge (X_AXIS, RIGHT, thick, kern);      
-    }
-
-  return m;
-}
-
-Atom 
-Lookup::beam (Real slope, Real width, Real thick) const
-{
-  Real height = slope * width; 
-  Real min_y = (0 <? height) - thick/2;
-  Real max_y = (0 >? height) + thick/2;
-
-  Atom a;
-  a.lambda_ =   gh_list (ly_symbol ("beam"),
-          gh_double2scm (width),
-          gh_double2scm (slope),
-          gh_double2scm (thick),
-          SCM_UNDEFINED);
-
-  a.dim_[X_AXIS] = Interval (0, width);
-  a.dim_[Y_AXIS] = Interval (min_y, max_y);
-  return a;
-}
-
-Atom
-Lookup::clef (String st) const
-{
-  return afm_find (String ("clefs") + String ("-") + st);
-}
-
-SCM
-offset2scm (Offset o)
-{
-  return gh_list (gh_double2scm (o[X_AXIS]), gh_double2scm(o[Y_AXIS]),
-                 SCM_UNDEFINED);
-}
-
-Atom
-Lookup::dashed_slur (Array<Offset> controls, Real thick, Real dash) const
-{
-  assert (controls.size () == 8);
-  Offset d = controls[3] - controls[0];
-  
-  Real dx = d[X_AXIS];
-  Real dy = d[Y_AXIS];
-
-  Atom a;
-  a.font_ = font_name_;
-  a.dim_[X_AXIS] = Interval (0, dx);
-  a.dim_[Y_AXIS] = Interval (0 <? dy,  0 >? dy);
-
-  SCM sc[4];
-  for (int i=0; i<  4; i++)
-    {
-      sc[i] =  offset2scm (controls[i]);
-    }
-
-  a.lambda_ = 
-    gh_list (ly_symbol ("dashed-slur"),
-            gh_double2scm (thick), 
-            gh_double2scm (dash),
-            ly_quote_scm (array_to_list (sc, 4)),
-            SCM_UNDEFINED);
-
-  return a;
-}
-
-Atom
-Lookup::dots () const
-{
-  return afm_find (String ("dots") + String ("-") + String ("dot"));
-}
-
-
-Atom
-Lookup::extender (Real width) const
-{
-  Atom a;
-  a.lambda_ = gh_list (ly_symbol ("extender"),
-                      gh_double2scm (width),
-                      SCM_UNDEFINED);
-
-  a.dim_[X_AXIS] = Interval (0, width);
-  a.dim_[Y_AXIS] = Interval (0,0);
-  
-  a.font_ = font_name_;
-  return a;
-}
-
-Atom
-Lookup::fill (Box b) const
-{
-  Atom a;
-  a.dim_ = b;
-  return a;
-}
-
-Atom
-Lookup::flag (int j, Direction d) const
-{
-  char c = (d == UP) ? 'u' : 'd';
-  Atom a = afm_find (String ("flags") + String ("-") + to_str (c) + to_str (j));
-  return a;
-}
-
-Atom
-Lookup::rest (int j, bool o) const
-{
-   return afm_find (String ("rests")
-                   + String ("-") + to_str (j) + (o ? "o" : ""));
-}
-
-Atom
-Lookup::rule_symbol (Real height, Real width) const
-{
-  Atom a;
-  a.lambda_ = gh_list (ly_symbol ("rulesym"),
-                      gh_double2scm (height),
-                      gh_double2scm (width),
-                      SCM_UNDEFINED);
-  a.dim_.x () = Interval (0, width);
-  a.dim_.y () = Interval (0, height);
-  return a;
-}
-
-Atom
-Lookup::script (String str) const
-{
-  return afm_find (String ("scripts") + String ("-") + str);
-}
-
-Atom
-Lookup::special_time_signature (String s, Array<int> arr) const
-{
-  // First guess: s contains only the signature style
-  assert (arr.size () >1);
-  String symbolname = "timesig-" + s + to_str (arr[0]) + "/" + to_str (arr[1]);
-  
-  Atom a = afm_find (symbolname, false);
-  if (!a.empty ()) 
-    return a;
-
-  // Second guess: s contains the full signature name
-  a = afm_find ("timesig-"+s, false);
-  if (!a.empty ()) 
-    return a;
-
-  // Resort to default layout with numbers
-  return time_signature (arr);
-}
-
-Atom
-Lookup::stem (Real y1, Real y2) const
-{
-  if (y1 > y2)
-    {
-      Real t = y1;
-      y1 = y2;
-      y2 = t;
-    }
-  Atom a;
-
-  a.dim_.x () = Interval (0,0);
-  a.dim_.y () = Interval (y1,y2);
-
-  Real stem_width = paper_l_->get_var ("stemthickness");
-
-  a.lambda_ = gh_list (ly_symbol ("filledbox"),
-                      gh_double2scm(stem_width /2),
-                      gh_double2scm(stem_width/2),
-                      gh_double2scm(y2),
-                      gh_double2scm(-y1),
-                      SCM_UNDEFINED);
-
-  a.font_ = font_name_;
-  return a;
-}
-
-Atom
-Lookup::streepje (int type) const
-{
-  if (type > 2)
-    type = 2;
-
-  return  afm_find ("balls" + String ("-") +to_str (type) + "l");
-}
-
-static Dict_initialiser<char const*> cmr_init[] = {
-  {"bold", "cmbx"},
-  {"dynamic", "feta-din"},
-  {"finger", "feta-nummer"},
-  {"italic", "cmti"},
-  {"roman", "cmr"},
-  {"large", "cmbx"},
-  {"Large", "cmbx"},
-  {"mark", "feta-nummer"},
-  {"nummer", "feta-nummer"},
-  {0,0}
-};
-
-static Dictionary<char const *> cmr_dict (cmr_init);
-
-Atom
-Lookup::text (String style, String text) const
-{
-  Atom a;
-  a.lambda_ = gh_list(ly_symbol ("set" + style),
-                     gh_str02scm (text.ch_C()),
-                     SCM_UNDEFINED);
-
-  Real font_h = paper_l_->get_var ("font_normal");
-  if (paper_l_->scope_p_->elem_b ("font_" + style))
-    {
-      font_h = paper_l_->get_var ("font_" + style);
-    }
-  
-  if (cmr_dict.elem_b (style))
-    {
-      style = String (cmr_dict [style]) + to_str  ((int)font_h); // ugh
-    }
-  Real w = 0;
-  Font_metric* afm_l = all_fonts_global_p->find_font (style);
-  DOUT << "\nChars: ";
-  
-  for (int i = 0; i < text.length_i (); i++) 
-    {
-      if (text[i]=='\\')
-       for (i++; (i < text.length_i ()) && isalpha(text[i]); i++)
-         ;
-      else
-       {
-         Character_metric *c = afm_l->get_char (text[i],false);
-         w += c->dimensions()[X_AXIS].length ();
-       }
-    }
-
-  DOUT << "\n" << to_str (w) << "\n";
-  a.dim_.x () = Interval (0, w);
-  a.font_ = font_name_;
-  return a;
-}
-  
-
-/*
-  TODO: should return a molecule with 2 stacked nums.
- */
-Atom
-Lookup::time_signature (Array<int> a) const
-{
-  Atom s;
-  s.lambda_ = gh_list (ly_symbol ("generalmeter"),
-                      gh_int2scm (a[0]),
-                      gh_int2scm (a[1]),
-                      SCM_UNDEFINED);
-
-  Real r = paper_l_->interline_f () ;
-  s.dim_[Y_AXIS] =  Interval (-2*r, 2*r);
-  s.dim_[X_AXIS] = Interval (0, 2*r);
-  return s;
-}
-
-Atom
-Lookup::vbrace (Real &y) const
-{
-  Atom a;
-  a.lambda_ = gh_list (ly_symbol ("pianobrace"),
-                      gh_double2scm (y),
-                      SCM_UNDEFINED
-                      );
-  a.dim_[Y_AXIS] = Interval (-y/2,y/2);
-  a.dim_[X_AXIS] = Interval (0,0);
-  a.font_ = font_name_;
-  return a;
-}
-
-Atom
-Lookup::hairpin (Real width, bool decresc, bool continued) const
-{
-  Atom a;  
-  Real height = paper_l_->staffheight_f () / 6;
-
-  String hairpin = String (decresc ? "de" : "") + "crescendo";
-  a.lambda_ = gh_list (ly_symbol (hairpin),
-                      gh_double2scm (width),
-                      gh_double2scm (height),
-                      gh_double2scm (continued ? height/2 : 0.0),
-                      SCM_UNDEFINED);
-  a.dim_.x () = Interval (0, width);
-  a.dim_.y () = Interval (-2*height, 2*height);
-  a.font_ = font_name_;
-  return a;
-}
-
-Atom
-Lookup::plet (Real dy , Real dx, Direction dir) const
-{
-  Atom a;
-  a.lambda_ = gh_list(ly_symbol ("tuplet"),
-                     gh_double2scm (dx),
-                     gh_double2scm (dy),
-                     gh_int2scm (dir), SCM_UNDEFINED);
-  return a;
-}
-
-
-Atom
-Lookup::slur (Array<Offset> controls) const
-{
-  assert (controls.size () == 8);
-  Real dx = controls[3].x () - controls[0].x ();
-  Real dy = controls[3].y () - controls[0].y ();
-  Atom a;
-
-  SCM scontrols [8];
-  int indices[] = {5,6,7,4,1,2,3,0};
-
-  for (int i= 0; i < 8; i++)
-    scontrols[i] = offset2scm (controls[indices[i]]);
-
-
-  a.lambda_ =gh_list (ly_symbol ("slur"),
-                     ly_quote_scm (array_to_list (scontrols, 8)),
-                     SCM_UNDEFINED);
-
-  a.dim_[X_AXIS] = Interval (0, dx);
-  a.dim_[Y_AXIS] = Interval (0 <? dy,  0 >? dy);
-  a.font_ = font_name_;
-  return a;
-}
-
-Atom
-Lookup::vbracket (Real &y) const
-{
-  Atom a;
-  a.lambda_ =  gh_list (ly_symbol ("bracket"),
-                       gh_double2scm (y),
-                       SCM_UNDEFINED);
-  a.dim_[Y_AXIS] = Interval (-y/2,y/2);
-  a.dim_[X_AXIS] = Interval (0,4 PT);
-  return a;
-}
-
-Atom
-Lookup::volta (Real w, bool last_b) const
-{
-  Atom a;
-  a.lambda_ = gh_list (ly_symbol ("volta"),
-                      gh_double2scm (w),
-                      gh_int2scm (last_b),
-                      SCM_UNDEFINED);
-
-  Real interline_f = paper_l_->interline_f ();
-
-  a.dim_[Y_AXIS] = Interval (-interline_f, interline_f);
-  a.dim_[X_AXIS] = Interval (0, w);
-  return a;
-}
-
index 540bc6b6a07f8dd30f47f3034cd2e515c5300023..a359be8dfd4072c22b5195eeecdded95ee75518d 100644 (file)
@@ -340,6 +340,9 @@ Dynamic_req::loudness_static_str (Loudness l)
 {
   switch (l)
     {
+    case FFFFFF: return "ffffff";
+    case FFFFF : return "fffff";
+    case FFFF: return "ffff";
     case FFF: return "fff";
     case FF: return "ff";
     case F: return "f";
@@ -348,9 +351,17 @@ Dynamic_req::loudness_static_str (Loudness l)
     case P: return "p";
     case PP: return "pp";
     case PPP: return "ppp";
+    case PPPP: return "pppp";
+    case PPPPP: return "ppppp";
+    case PPPPPP: return "pppppp";    
+
     case FP: return "fp";
     case SF: return "sf";
+    case SFF: return "sff";
     case SFZ: return "sfz";
+    case SP: return "sp";
+    case SPP: return "spp";
+    case RFZ: return "rfz";
     }
   return "";
 }
index 10cb7b1c2518df970620ddd0f609c3b71448ff28..f26cfc4c51d1d026302d22fb59204f569181d1ad 100644 (file)
@@ -65,10 +65,24 @@ Note_head::do_brew_molecule_p() const
     ? 0
     : (abs(position_i_) - staff_size_i_/2) /2;
   
-  Atom  s = lookup_l()->ball (balltype_i_);
+  //Atom  s = lookup_l()->ball (balltype_i_);
+  
+  Atom  s; // = lookup_l()->ball (balltype_i_);
+
+  if (note_head_type_str_.length_i ()) {
+    if (note_head_type_str_ == "normal")
+      note_head_type_str_ = "";
+    s = lookup_l()->special_ball (balltype_i_, note_head_type_str_);
+    }
+  else
+    s = lookup_l()->ball (balltype_i_);
   out = new Molecule (Atom (s));
   out->translate_axis (x_dir_ * s.dim_[X_AXIS].length (), X_AXIS);
 
+
+  //out = new Molecule (Atom (s));
+  //out->translate_axis (x_dir_ * s.dim_[X_AXIS].length (), X_AXIS);
+
   if (streepjes_i) 
     {
       int dir = sign (position_i_);
index 737a4ffe77a0130087b72d782d11f7e6fbde13c4..68f02880db4034a7ebd55169a73c21cc959a8915 100644 (file)
@@ -2,18 +2,28 @@
 % declare the standard dynamic identifiers.
 %
 
-ppp = \absdynamic {7 }
-pp = \absdynamic { 6 }
-p = \absdynamic { 5 }
-mp = \absdynamic { 4 }
-mf = \absdynamic { 3 }
-f = \absdynamic { 2 } % f is a notename too.
-ff = \absdynamic { 1 }
-fff = \absdynamic { 0 }
+pppppp = \absdynamic { 13 }
+ppppp = \absdynamic { 12 }
+pppp = \absdynamic { 11 }
+ppp = \absdynamic { 10 }
+pp = \absdynamic { 9 }
+p = \absdynamic { 8 }
+mp = \absdynamic { 7 }
+mf = \absdynamic { 6 }
+f = \absdynamic { 5 } % f is a notename too.
+ff = \absdynamic { 4 }
+fff = \absdynamic { 3 }
+ffff = \absdynamic { 2 }
+fffff = \absdynamic { 1 }
+ffffff = \absdynamic { 0 }
 
-fp = \absdynamic { 8 }
-sf = \absdynamic { 9 }
-sfz = \absdynamic { 10 }
+fp = \absdynamic { 14 }
+sf = \absdynamic { 15 }
+sff = \absdynamic { 16 }
+sfz = \absdynamic { 17 }
+sp = \absdynamic { 18 }
+spp = \absdynamic { 19 }
+rfz = \absdynamic { 20 }
 
 cr = \spandynamic { 1 1 } 
 decr = \spandynamic { -1 1 }
index 291318a82dde64c6cc3c8a29692ec9fa82a1b860..8e06c9d1065c6efecc8e294ce6189446966b0a81 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Titel: LilyPond
-Versie: 1.1.24
-Inschrijf datum: 25JAN99
+Versie: 1.1.25
+Inschrijf datum: 26JAN99
 Beschrijving: @FLAPTEKST@
 Trefwoorden: muziek typezetten midi notatie
 Auteur: hanwen@stack.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Onderhouden door: hanwen@cs.ruu.nl (Han-Wen Nienhuys)
 Voornaamste plek: sunsite.unc.edu /pub/Linux/apps
-       770k lilypond-1.1.24.tar.gz 
+       770k lilypond-1.1.25.tar.gz 
 Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       770k lilypond-1.1.24.tar.gz 
+       770k lilypond-1.1.25.tar.gz 
 Copi-eer voorwaarden: GPL
 End
index ad9601aeb722f3e0ef51791e48da36293f684a0a..4ae38d2c1804416774f5c69c346e3c3054f01b54 100644 (file)
@@ -1,7 +1,7 @@
 Begin3
 Title: LilyPond
-Version: 1.1.24
-Entered-date: 25JAN99
+Version: 1.1.25
+Entered-date: 26JAN99
 Description: 
 LilyPond is the GNU Project music typesetter.  This program can print
 beautiful sheet music from a music definition file.  It can also play
@@ -14,8 +14,8 @@ Author: hanwen@cs.ruu.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       770k lilypond-1.1.24.tar.gz 
+       770k lilypond-1.1.25.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       770k lilypond-1.1.24.tar.gz 
+       770k lilypond-1.1.25.tar.gz 
 Copying-policy: GPL
 End
index 1ae0955c19b96041cc629d7c8609751b23ae036a..b954aca89088b0fb375367002df1c7c7c8003476 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.1.24
+Version: 1.1.25
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.24.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.25.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 Packager: Han-Wen Nienhuys <hanwen@cs.uu.nl>
index 5ef657ad805962b677dabc5810bbefcc983b144e..410e4375bf7968ea439a11fd7a9307a669c6d68f 100644 (file)
@@ -241,8 +241,8 @@ fet_endchar;
 
 
 
-if test = 0:
-else:
+%if test = 0:
+%else:
 def draw_harmonic_notehead(expr harmwid) =
        save beamheight, head_width, head_char_width;
        save holeheight, stem_width;
@@ -269,8 +269,8 @@ def draw_harmonic_notehead(expr harmwid) =
 %      ht# = noteheight#;
        head_char_width = 1.54 noteheight;
        head_char_width# := 1.54 ht#;
-       schuif_op = head_char_width - head_width; %ugh
-       schuif_op# := head_char_width# - head_width#;
+       %schuif_op = head_char_width - head_width; %ugh
+       %schuif_op# := head_char_width# - head_width#;
 %      set_char_box(0, head_char_width#, noteheight#/2, noteheight#/2); 
        set_char_box(0, head_width#, head_width#/2, head_width#/2);
 %      2 beamheight + holeheight = noteheight;
@@ -288,15 +288,15 @@ def draw_harmonic_notehead(expr harmwid) =
        penpos8(thick, 225);
 
 %      1.5 noteheight = head_width;
-       z1l = (schuif_op, 0);
+       z1l = (0, 0);
        z2l = z1l;
-%      z3l = (schuif_op + head_width/2,-head_width/2);
-       z3l = (schuif_op + head_width/2, -noteheight/2);
+%      z3l = (head_width/2,-head_width/2);
+       z3l = (head_width/2, -noteheight/2);
        z4l = z3l;
-       z5l = (schuif_op + head_width, 0);
+       z5l = (head_width, 0);
        z6l = z5l;
-%      z7l = (schuif_op + head_width/2, head_width/2);
-       z7l = (schuif_op + head_width/2, noteheight/2);
+%      z7l = (head_width/2, head_width/2);
+       z7l = (head_width/2, noteheight/2);
        z8l = z7l;
        
        pickup pencircle; %scaled stemthick;
@@ -319,7 +319,7 @@ fet_endchar;
 fet_beginchar("Harmonic ledger", "harmonicl", "harmonicledger")
         draw_ledger(harmonic_wid#);
 fet_endchar;
-fi
+%fi
 
 fet_endgroup("balls");
 
index 8dec651b9c7f8296f3b020fb28968f959e11cca1..47f49c89de89a3c47eb392a336d23d9a83b3ace4 100644 (file)
@@ -249,7 +249,5 @@ LHtoL = { \tolower \stemdown }
      > > 
 
  
- \paper{
- barsize=50.0;
- }
+
 }
index 17bc4457e06831cf252ce978701d7e4ab33cb3b1..f7d2ed958985e9ec16c184a30f2f8577188a8be2 100644 (file)
@@ -1,31 +1,3 @@
-       %{
-Dit is de fout:
-
-GNU LilyPond 1.1.19.
-Parsing...[/home/lily/usr/share/lilypond/ly/init.ly[/home/lily/usr/share/lilypond/ly/declarations.ly[/home/lily/usr/share/lilypond/ly/dynamic.ly][/home/lily/usr/share/lilypond/ly/nederlands.ly][/home/lily/usr/share/lilypond/ly/chord-modifiers.ly][/home/lily/usr/share/lilypond/ly/script.ly][/home/lily/usr/share/lilypond/ly/paper20.ly[/home/lily/usr/share/lilypond/ly/table20.ly][/home/lily/usr/share/lilypond/ly/table13.ly][/home/lily/usr/share/lilypond/ly/table16.ly][/home/lily/usr/share/lilypond/ly/params.ly[/home/lily/usr/share/lilypond/ly/a4.ly][/home/lily/usr/share/lilypond/ly/paper.ly][/home/lily/usr/share/lilypond/ly/engraver.ly]]][/home/lily/usr/share/lilypond/ly/midi.ly[/home/lily/usr/share/lilypond/ly/performer.ly]][/home/lily/usr/share/lilypond/ly/property.ly][/home/lily/usr/share/lilypond/scm/lily.scm]][Sinfonia.ly]]
-Interpreting music...[8][16][24][32][40]
-Sinfonia.ly:239:24: warning: barcheck failed by: 1/4:
-       \times 2/3 {[e g fis] |
-                                [e fis g]} | fis4 r |
-
-Sinfonia.ly:87:34: warning: barcheck failed by: 1/4:
-       \times 2/3 {[g'8 b a] [g fis e] |
-                                          [a d, cis] [d cis d] |
-
-Sinfonia.ly:240:25: warning: barcheck failed by: 1/4:
-       \times 2/3 {[e8 g fis] |
-                                 [e fis g]} | fis4 r |
-
-Sinfonia.ly:88:21: warning: barcheck failed by: 1/4:
-       [g, b a] [g fis e] |
-                             [a d, cis] [d cis d]} |
-[48][56][64][72][80][88][96][104][112][120][123]
-time: 24.16 seconds
-Preprocessing elements... lilypond: score-element.cc:134: class
-Paper_def * Score_element::paper() const: Assertion `pscore_l_' failed.
-
-%}
-
 \header{
 filename="Sinfonia.ly";
 title="Sinfonia";
@@ -34,6 +6,7 @@ composer="Leopold Mozart";
 arranger="(1719-1787)";
 copyright="public domain";
 enteredby="Maarten Storm";
+
 }
 
 
@@ -59,11 +32,11 @@ global = \notes{
        s2*5 \break
         s2*5 \break
         s2*5 \break
-       s2*5 \break
         s2*5 \break
         s2*5 \break
        s2*4 \break
        s2*5 \bar ":|";
+
 %fine
 }
 
@@ -74,17 +47,27 @@ tempi = \notes{
 }
 
 dynamics = \notes{
-%      \type Voice=i
+       \type Voice=i
+       s16\f s8. s4 | s2*17
+       s8\p s4. | s8\f s4. | s2*4
+       s8\p s4. | s8\f s4. | s2*29
+       s8\p s4. | s2 |
+       s8\f s4. | s2 | s8\p s4. | s2 | s8\f s4. | s2*47
+       s16 s16\p s4. | s2 |
+       s16 s16\f s4. |
+       s16 s16\p s4. |
+       s16 s16\f s4. | 
 }
 
 
 violinoi = \notes \relative c'{
        \type Voice=i
        \clef "violin";
-       [<g8 d' b' g'> g'' g g] | [g16 a b a] [g a b a] |
-       [<g,,8 d' b' g'> g'' g g] | [g16 a b a] [g a b a] |
+       \stemup
+       [<g8 d' b' g'> g'' g g] \stemboth | [g16 a b a] [g a b a] |
+       \stemup [<g,,8 d' b' g'> g'' g g] \stemboth | [g16 a b a] [g a b a] |
 %5     
-       [<g,,8 d' b' g'> g'' g g] | [g16 d c b] [a g fis g] |
+       \stemup [<g,,8 d' b' g'> g'' g g] \stemboth | [g16 d c b] [a g fis g] |
        [e' fis g fis] [g e d c] | [b c d c] [d b a g] |
        [e' fis g fis] [g e d c] | [b c d c] [d b a g] |
 %11    
@@ -92,69 +75,82 @@ violinoi = \notes \relative c'{
        [a b c d] [e c b a] | [b c d c] [d b a g] |
 %15    
        [fis g a g] [fis e d c] | [b a g8] r4 |
-       [<g8 d' b' g'> g'' g g] | \times 2/3 {[g8 d c] [b a g] |
-       [g'8\p d c] [b a g] |  
+       \stemup [<g8 d' b' g'> g'' g g] \stemboth | 
+       \times 2/3 {[g8 d c]} \times 2/3 {[b a g]} |
+       \times 2/3 {[g'8 d c]} \times 2/3 {[b a g]} |  
 %20    
-       [f'\f d c] [b a g]} | 
-       [<c,8 e c' e> e' e e] | <c,2 e c' e> |
-        [<a8 e' cis' a'> a'' a a] |
-       \times 2/3 {[a8 e d] [cis b a] | [a'\p e d] [cis b a] |
+       \times 2/3 {[f' d c]} \times 2/3 {[b a g]} | 
+       \stemup [<c,8 e c' e> e' e e] | <c,2 e c' e> |
+        [<a8 e' cis' a'> a'' a a] \stemboth |
+       \times 2/3 {[a8 e d]} \times 2/3 {[cis b a]} | 
+       \times 2/3 {[a' e d]} \times 2/3 {[cis b a]} |
 %26    
-       [g'\f e d] [cis b a]} | [<d,8 a' fis'> fis' fis fis] |
-       <d,2 a' fis'> | \times 2/3 {[b'8 c d] [e fis g] |
-       [g fis g] [b, a g] | [a b cis] [d e fis] |
+       \times 2/3 {[g' e d] [cis b a]} | 
+       \stemup [<d,8 a' fis'> fis' fis fis] \stemboth|
+       <d,2 a' fis'> | \times 2/3 {[b'8 c d]} \times 2/3 {[e fis g]} |
+       \times 2/3 {[g fis g]} \times 2/3 {[b, a g]} | 
+       \times 2/3 {[a b cis]} \times 2/3 {[d e fis]} |
 %32
-       [fis e fis] [a, g fis] | [g a b] [cis d e] |
-       [e d e] [g, fis e]}
+       \times 2/3 {[fis e fis]} \times 2/3 {[a, g fis]} | 
+       \times 2/3 {[g a b]} \times 2/3 {[cis d e]} |
+       \times 2/3 {[e d e]} \times 2/3 {[g, fis e]} |
 %35
        [fis16 d e d] [e d e d] | [g d e d] [e d e d] |
        [a' d, e d] [e d e d] | [b' d, e d] [e d e d] |
        [cis' a b a] [b a b a] | [d a b a] [b a b a] |
        [e' a, b a] [a b a b] | [fis' a, b a] [a b a b] |
 %43
-       \times 2/3 {[g'8 b a] [g fis e] | [a d, cis] [d cis d] |
-       [g, b a] [g fis e] | [a d, cis] [d cis d]} |
+       \times 2/3 {[g'8 b a]} \times 2/3 {[g fis e]} | 
+       \times 2/3 {[a d, cis]} \times 2/3 {[d cis d]} |
+       \times 2/3 {[g, b a]} \times 2/3 {[g fis e]} | 
+       \times 2/3 {[a d, cis]} \times 2/3 {[d cis d]} |
 %47 
        [b''16 g fis e] [a fis e d] | [g e d cis] [fis d cis b] | gis,2 |
 %50
        a4 g'! | [fis16 fis e d] e4 | d d' | r8 r16 gis,16 a4 |
        r8 [fis g! a] | d,2 
-       [d'8\p e f a,] | [gis a] r4 | 
-       \times 2/3 {[f8\f e d] [c b a]} | [gis a] r4 |
+       [d'8 e f a,] | [gis a] r4 | 
+       \times 2/3 {[f8 e d]} \times 2/3 {[c b a]} | [gis a] r4 |
 %60
-       [c'8\p d e g,?] | [fis g] r4 |
-       \times 2/3 {[d8\f a' c] [b a b]} | [b a] r4 |
+       [c'8 d e g,?] | [fis g] r4 |
+       \times 2/3 {[d8 a' c]} \times 2/3 {[b a b]} | [b a] r4 |
 %64 : reprise
-       [<g,8 d' b' g'> g'' g g] | [g16 a b a] [g a b a] |
-        [<g,,8 d' b' g'> g'' g g] | [g16 a b a] [g a b a] |
-        [<g,,8 d' b' g'> g'' g g] | [g16 d c b] [a g fis g] |
+       \stemup [<g,8 d' b' g'> g'' g g] | \stemdown [g16 a b a] [g a b a] |
+        \stemup [<g,,8 d' b' g'> g'' g g] | \stemdown [g16 a b a] [g a b a] |
+        \stemup [<g,,8 d' b' g'> g'' g g] | \stemboth [g16 d c b] [a g fis g] |
 %70        
        [e' fis g fis] [g e d c] | [b c d c] [d b a g] |
         [fis g a g] [fis e d c] | [b a g8] r4 |
-        [<g8 d' b' g'> g'' g g] | \times 2/3 {[g8 d c] [b a g] |
-       [f\f d c] [b a g]} | [e' c] r4 |
+        \stemup [<g8 d' b' g'> g'' g g] \stemboth | 
+       \times 2/3 {[g8 d c]} \times 2/3 {[b a g]} |
+       \times 2/3 {[f d c]} \times 2/3 {[b a g]} | [e' c] r4 |
 %78    
-       [<a8 e' cis' a'> a'' a a] |
-        \times 2/3 {[a8 e d] [cis b a] | 
-        [g e d] [cis b a]} | [fis' d] r4 |     
-       \times 2/3 {[e'8 fis g] [a b c] | [c b c] [e, d c] |
-       [d e fis] [g a b] | [b a b] [d, c b] | [c d e] [fis g a] |
-       [a g a] [c, b a]} |
+       \stemup [<a8 e' cis' a'> a'' a a] \stemboth |
+        \times 2/3 {[a8 e d]} \times 2/3 {[cis b a]} | 
+        \times 2/3 {[g e d]} \times 2/3 {[cis b a]} | [fis' d] r4 |    
+       \times 2/3 {[e'8 fis g]} \times 2/3 {[a b c]} | 
+       \times 2/3 {[c b c]} \times 2/3 {[e, d c]} |
+       \times 2/3 {[d e fis]} \times 2/3 {[g a b]} | 
+       \times 2/3 {[b a b]} \times 2/3 {[d, c b]} | 
+       \times 2/3 {[c d e]} \times 2/3 {[fis g a]} |
+       \times 2/3 {[a g a]} \times 2/3 {[c, b a]} |
 %88
        [b16 g a g] [a g a g] | [c g a g] [a g a g] | [d' g, a g] [a g a g] |
        [e' g, a g] [a g a g] | [fis' d e d] [e d e d] | [g d e d] [e d e d] |
        [a' d, e d] [e d e d] | [b' d, e d] [e d e d] | 
 %96
-       \times 2/3 {[c'8 e, d] [c b a] | [d g, fis] [g fis g] | 
-       [d c' c] [c b a] | [d g, fis] [g fis g]} |
+       \times 2/3 {[c'8 e, d]} \times 2/3 {[c b a]} | 
+       \times 2/3 {[d g, fis]} \times 2/3 {[g fis g]} | 
+       \stemup \times 2/3 {[d c' c]} \times 2/3 {[c b a]} \stemboth | 
+       \times 2/3 {[d g, fis]} \times 2/3 {[g fis g]} |
 %100
        [e'16 c b a] [d b a g] | [c a g fis] [b g fis e] | cis2 | d4 c'! |
-       [b16 b a g] a4 | g g' | 
+       [b16 b a g] a4^\trill | g g' | 
 %106
        r8 r16 cis,, d4 | r8 [b c? d] | [g,16 g'' g g] g4:16 | 
        [fis16 g a g] [fis e d c] | [b g' g g] g4:16 | 
-       [fis16 g a g] [fis e d c] | [b g' g, a] a4 |
-       [b16 g' g, a] a4 | [b16 g' g, a] a4 | [g8 d] g,4 
+       [fis16 g a g] [fis e d c] | [b g' g, a] a4^\trill |
+       [b16 g' g, a] a4^\trill | [b16 g' g, a] a4^\trill | [g8 d] g,4 
 %fine  
 
 }
@@ -162,10 +158,10 @@ violinoi = \notes \relative c'{
 violinoii = \notes \relative c'{
        \type Voice=i
        \clef "violin";
-       [<g8 d' b' g'> g'' g g] | [b,16 c d c] [b c d c] |
-       [<g,8 d' b' g'> g'' g g] | [b,16 c d c] [b c d c] |
+       \stemup [<g8 d' b' g'> g'' g g] \stemboth | [b,16 c d c] [b c d c] |
+       \stemup [<g,8 d' b' g'> g'' g g] \stemboth | [b,16 c d c] [b c d c] |
 %5
-       [<g,8 d' b' g'> g'' g g] | [g16 d c b] [a g fis g] |
+       \stemup [<g,8 d' b' g'> g'' g g] \stemboth | [g16 d c b] [a g fis g] |
        [e' fis g fis] [g e d c] | [b c d c] [d b a g] |
        [e' fis g fis] [g e d c] | [b c d c] [d b a g] |
 %11    
@@ -173,68 +169,82 @@ violinoii = \notes \relative c'{
         [a b c d] [e c b a] | [b c d c] [d b a g] |
 %15
         [fis g a g] [fis e d c] | [b a g8] r4 |
-       [<g8 d' b' g'> g'' g g] | \times 2/3 {[g8 d c] [b a g] |
-       [g'8\p d c] [b a g] | [f'\f d c] [b a g]} |
+       \stemup [<g8 d' b' g'> g'' g g] \stemboth | 
+       \times 2/3 {[g8 d c]} \times 2/3 {[b a g]} |
+       \times 2/3 {[g'8 d c]} \times 2/3 {[b a g]} | 
+       \times 2/3 {[f' d c]} \times 2/3 {[b a g]} |
 %21
-       [<c,8 e c' e> e' e e] | <c,2 e c' e> |
-       [<a8 e' cis' a'> a'' a a] |
-       \times 2/3 {[a8 e d] [cis b a] | [a'\p e d] [cis b a] |
+       \stemup [<c,8 e c' e> e' e e] | <c,2 e c' e> |
+       [<a8 e' cis' a'> a'' a a] \stemboth |
+       \times 2/3 {[a8 e d]} \times 2/3 {[cis b a]} | 
+       \times 2/3 {[a' e d]} \times 2/3 {[cis b a]} |
 %26   
-        [g'\f e d] [cis b a]} | [<d, a' fis'> fis' fis fis] |
-        <d,2 a' fis'> | \times 2/3 {[b'8 c d] [e fis g] |
-        [g fis g] [b, a g] | [a b cis] [d e fis] |
+        \times 2/3 {[g' e d]} \times 2/3 {[cis b a]} | 
+       \stemup [<d, a' fis'> fis' fis fis] \stemboth |
+        <d,2 a' fis'> | \times 2/3 {[b'8 c d]} \times 2/3 {[e fis g]} |
+        \times 2/3 {[g fis g]} \times 2/3 {[b, a g]} | 
+       \times 2/3 {[a b cis]} \times 2/3 {[d e fis]} |
 %32
-        [fis e fis] [a, g fis] | [g a b] [cis d e] |
-        [e d e] [g, fis e]}
+        \times 2/3 {[fis e fis]} \times 2/3 {[a, g fis]} | 
+       \times 2/3 {[g a b]} \times 2/3 {[cis d e]} |
+        \times 2/3 {[e d e]} \times 2/3 {[g, fis e]}
 %35
         [fis16 d e d] [e d e d] | [g d e d] [e d e d] |
         [a' d, e d] [e d e d] | [b' d, e d] [e d e d] |
         [cis' a b a] [b a b a] | [d a b a] [b a b a] |
         [e' a, b a] [a b a b] | [fis' a, b a] [a b a b] |
 %43
-        \times 2/3 {[g'8 b a] [g fis e] | [a d, cis] [d cis d] |
-        [g, b a] [g fis e] | [a d, cis] [d cis d]} |
+        \times 2/3 {[g'8 b a]} \times 2/3 {[g fis e]} | 
+       \times 2/3 {[a d, cis]} \times 2/3 {[d cis d]} |
+        \times 2/3 {[g, b a]} \times 2/3 {[g fis e]} | 
+       \times 2/3 {[a d, cis]} \times 2/3 {[d cis d]} |
 %47
         [b''16 g fis e] [a fis e d] | [g e d cis] [fis d cis b] | gis,2 |
 %50
         a4 g'! | [fis16 fis e d] e4 | d d' | r8 r16 g,16 a4 |
         r8 [fis g! a] | d,2
-       f4\p r8 f | [e-. ~ e-.] r4 |
-       \times 2/3 {[f8\f e d] [c b a]} | [gis a] r4 |
+       f4 r8 f | [e-. ~ e-.] r4 |
+       \times 2/3 {[f8 e d]} \times 2/3 {[c b a]} | [gis a] r4 |
 %60
-       e'4\p r8 e | [d-. ~ d-.] r4 |
-       \times 2/3 {[d8\f a' c] [b a b]} | [b a] r4 |
+       e'4 r8 e | [d-. ~ d-.] r4 |
+       \times 2/3 {[d8 a' c]} \times 2/3 {[b a b]} | [b a] r4 |
 %64 : reprise
-       [<g,8 d' b' g'> g'' g g] | [b,16 c d c] [b c d c] |
-        [<g,8 d' b' g'> g'' g g] | [b,16 c d c] [b c d c] |
-        [<g,8 d' b' g'> g'' g g] | [g16 d c b] [a g fis g] |
+       \stemup [<g,8 d' b' g'> g'' g g] \stemboth | [b,16 c d c] [b c d c] |
+        \stemup [<g,8 d' b' g'> g'' g g] \stemboth | [b,16 c d c] [b c d c] |
+        \stemup [<g,8 d' b' g'> g'' g g] \stemboth | [g16 d c b] [a g fis g] |
 %70        
        [e' fis g fis] [g e d c] | [b c d c] [d b a g] |
         [fis g a g] [fis e d c] | [b a g8] r4 |
-        [<g8 d' b' g'> g'' g g] | \times 2/3 {[g8 d c] [b a g] |
-       [f\f d c] [b a g]} | [e' c] r4 |
+        \stemup [<g8 d' b' g'> g'' g g] \stemboth | 
+       \times 2/3 {[g8 d c]} \times 2/3 {[b a g]} |
+       \times 2/3 {[f d c]} \times 2/3 {[b a g]} | [e' c] r4 |
 %78
-        [<a8 e' cis' a'> a'' a a] |
-        \times 2/3 {[a8 e d] [cis b a] | 
-        [g e d] [cis b a]} | [fis' d] r4 |
-       \times 2/3 {[e'8 fis g] [a b c] | [c b c] [e, d c] |
-        [d e fis] [g a b] | [b a b] [d, c b] | [c d e] [fis g a] |
-        [a g a] [c, b a]} |
+        \stemup [<a8 e' cis' a'> a'' a a] \stemboth |
+        \times 2/3 {[a8 e d]} \times 2/3 {[cis b a]} | 
+        \times 2/3 {[g e d]} \times 2/3 {[cis b a]} | [fis' d] r4 |
+       \times 2/3 {[e'8 fis g]} \times 2/3 {[a b c]} | 
+       \times 2/3 {[c b c]} \times 2/3 {[e, d c]} |
+        \times 2/3 {[d e fis]} \times 2/3 {[g a b]} | 
+       \times 2/3 {[b a b]} \times 2/3 {[d, c b]} | 
+       \times 2/3 {[c d e]} \times 2/3 {[fis g a]} |
+        \times 2/3 {[a g a]} \times 2/3 {[c, b a]} |
 %88
         [b16 g a g] [a g a g] | [c g a g] [a g a g] | [d' g, a g] [a g a g] |
         [e' g, a g] [a g a g] | [fis' d e d] [e d e d] | [g d e d] [e d e d] |
         [a' d, e d] [e d e d] | [b' d, e d] [e d e d] |
 %96
-        \times 2/3 {[c'8 e, d] [c b a] | [d g, fis] [g fis g] |
-        [d c' c] [c b a] | [d g, fis] [g fis g]} |
+        \times 2/3 {[c'8 e, d]} \times 2/3 {[c b a]} | 
+       \times 2/3 {[d g, fis]} \times 2/3 {[g fis g]} |
+        \stemup \times 2/3 {[d c' c]} \times 2/3 {[c b a]} \stemboth | 
+       \times 2/3 {[d g, fis]} \times 2/3 {[g fis g]} |
 %100
         [e'16 c b a] [d b a g] | [c a g fis] [b g fis e] | cis2 | d4 c'! |
-        [b16 b a g] a4 | g g' |
+        [b16 b a g] a4^\trill | g g' |
 %106
         r8 r16 cis,, d4 | r8 [b c? d] | [g,16 g'' g g] g4:16 |
         [fis16 g a g] [fis e d c] | [b g' g g] g4:16 |
-        [fis16 g a g] [fis e d c] | [b g' g, a] a4 |
-        [b16 g' g, a] a4 | [b16 g' g, a] a4 | [g8 d] g,4
+        [fis16 g a g] [fis e d c] | [b g' g, a] a4^\trill |
+        [b16 g' g, a] a4^\trill | [b16 g' g, a] a4^\trill | [g8 d] g,4
 %fine
 
 }
@@ -256,22 +266,22 @@ viola = \notes \relative c'{
        [e16 f? g f] [e f g f] | [g8 e e d] |
        [cis16 d e d] [cis d e d] | cis4 r | 
 %25
-       e\p e | e\f e | [fis16 g a g] [fis g a g] | 
-       [fis8 fis a a] | d4 b | b g' | cis,? a |
+       e e | e e | [fis16 g a g] [fis g a g] | 
+       [fis8 fis a a] | d,4 b | b g' | cis,? a |
        a fis' b, g' | a a, |
 %35
        [a8 fis' fis fis] | r [g g g] | r [a a a] |
        r [b, b b] | r [cis cis cis] | r [d d d] | r [e e e] |
        r [fis fis fis] |
 %43
-       \times 2/3 {[e g fis] | [e fis g]} | fis4 r |
-       \times 2/3 {[e8 g fis] | [e fis g]} | fis4 r |
+       \times 2/3 {[e g fis]} \times 2/3 {[e fis g]} | fis4 r |
+       \times 2/3 {[e8 g fis]} \times 2/3 {[e fis g]} | fis4 r |
 %47
        [d8 g d fis] | r [e a, d] | r b [b cis16 d] |
        [e8 d e cis] | [d d d cis] | d4 d' | r8 r16 gis, a4 |
        r8 [fis8 g! a] | d,2  
-       [d8\p d d d] | [d c!] r4 |
-       \times 2/3 {[f8\f e d] [c b a]} | [gis a] r4 |
+       [d8 d d d] | [d c!] r4 |
+       \times 2/3 {[f8 e d]} \times 2/3 {[c b a]} | [gis a] r4 |
 %60
        [c8\p c c c] | [c b] r4 | [a8 fis e g] | [g fis] r4 |
 %64 : reprise
@@ -290,10 +300,11 @@ viola = \notes \relative c'{
        [d8 b b b] | r [c c c] | r [d d d] | r [e e e] | r [fis fis fis] |
        r [g g g] | r [a a a] | r [b b b] | 
 %96
-       \times 2/3 {[a c b] [a b c]} | b4 r | \times 2/3 {[a,8 a g] [a b c]} |
+       \times 2/3 {[a c b]} \times 2/3 {[a b c]} | b4 r | 
+       \times 2/3 {[a,8 a g]} \times 2/3 {[a b c]} |
        b4 r | [g8 c g b] | r [a' d, g] | r e [e fis16 g] | [a8 g a fis] |
 %104
-       g8 g4 fis8 | g4 g | r8 r16 cis, d4 | r8 [b c! d] | [g, b d e] | 
+       g8 g4 fis8 | g4 g | r8 r16 cis, d4 | r8 [b c? d] | [g, b d e] | 
        [a, a a' a] | [d, b d e] | [a, a a' a] | [d, d e d] | [d d e d] | 
        [d g g fis] | [g d] g,4
 %fine 
@@ -307,11 +318,11 @@ bassocontinuo = \notes \relative c'{
        [g16 a b a] [g a b a] | [g8 g, g g'] | 
 %5
        [g16 a b a] [g a b a] | [g8 g,] r4 |
-       [c'8 c,] [e_"6" fis_"6"_"5" | [g g g b,_"6"] |
-       [c c] [e_"6" fis_"6"_"5" | [g g b_"6" c] |
+       [c'8 c,] [e fis] | [g g g b,] |
+       [c c] [e fis] | [g g b c] |
 %11
-       [d d d c_"2"] | [b_"6" b b b] | [fis_"6"_"5" fis fis fis] |
-       [g g b_"6" c] | [d fis,_"6"_"5" fis fis] | [g16 g fis e] [d c b a] |
+       [d d d c] | [b b b b] | [fis fis fis fis] |
+       [g g b c] | [d fis, fis fis] | [g16 g fis e] [d c b a] |
 %17
        [g g' b a] [g a b a] | g4 r | b, b | b b |
 %21
@@ -327,7 +338,7 @@ bassocontinuo = \notes \relative c'{
        g8 r fis r | e r d r | r [e e d] | [cis b cis a] | [d fis g a] |
        d,4 d' | r8 r16 gis, a4 | r8 [fis g! a] | d,2 
        r2 | r |
-       \times 2/3 {[f8\f e d] [c b a]} | [gis a] r4 |
+       \times 2/3 {[f8 e d]} \times 2/3 {[c b a]} | [gis a] r4 |
 %60
        r2 | r |
        [f'8 d g g,] | [d' d'] [d16 c b a] |
@@ -336,19 +347,19 @@ bassocontinuo = \notes \relative c'{
         [g16 a b a] [g a b a] | [g8 g, g g'] |
 %68
         [g16 a b a] [g a b a] | g4 r |
-       [c8 c,] [e fis] | [g g b c] | [e fis fis fis] |
+       [c8 c,] [e fis] | [g g b, c] | [e fis fis fis] |
 %73
        [g16 g, a b] [c d e fis] | [g a b a] [g a b a] | g4 r |
        b, b | [c8 c'16 d] [e d cis b] | [a b cis b] [a b cis b] |
 %79
        a4 r | cis,4 cis | [d8 d'16 e] [d8 b] | 
-       c?4 c | a a | b b | g g | a a | fis fis | g2:8 | a2:8 |
+       c4 c | a a | b b | g g | a a | fis fis | g2:8 | a2:8 |
 %90
        [b8 b, b b] | c2:8 | d2:8 | e2:8 | fis2:8 | g2:8 | 
        fis4 fis | g r | fis fis | g r | c8 r b r | a r g r |
        r [a a g] | [fis e fis d] | [g, b c d] | g,4 g' |
 %106
-       r8 r16 cis, d4 | r8 [b c! d] | [g, g' b c] | [d fis, fis fis] |
+       r8 r16 cis, d4 | r8 [b c? d] | [g, g' b c] | [d fis, fis fis] |
        [g g, b c] | [d fis fis fis] | [g b, c d] | [g, b c d] | 
        [g, b c d] | [g d] g,4
 %fine
@@ -357,17 +368,18 @@ bassocontinuo = \notes \relative c'{
 
 \score{
         \type StaffGroup <
-                \type Staff = i < \tempi \global \dynamics \violinoi >
+                \type Staff = i < %\tempi 
+                                       \global \dynamics \violinoi >
                 \type Staff = ii < \global \dynamics \violinoii >
                 \type Staff = iii < \global \dynamics \viola >
                 \type Staff = iv < \global \dynamics \bassocontinuo >
         >
-        \paper{
-          %      \translator { \OrchestralScoreContext }
-        }
+        \header{
+               piece="I. Allegro";
+       }
+       \paper{
+                \translator { \OrchestralScoreContext }
+       }
         \midi{ \tempo 4 = 100; }
 }
 
-
-
-