]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.1.50
authorfred <fred>
Tue, 26 Mar 2002 21:50:40 +0000 (21:50 +0000)
committerfred <fred>
Tue, 26 Mar 2002 21:50:40 +0000 (21:50 +0000)
Documentation/topdocs/AUTHORS.yo
input/von-guten-maechten.ly [new file with mode: 0644]
lily/include/breathing-sign-engraver.hh [new file with mode: 0644]
lily/include/command-request.hh
lily/my-lily-lexer.cc
lily/note-head.cc
ly/engraver.ly

index 844103c86f8768f4c11855909f2ea2f1c1478eab..5594db317c65d208544a5cb9cf86b73ff231af51 100644 (file)
@@ -22,6 +22,8 @@ it()nemail(Neil Jerram)(nj104@cus.cam.ac.uk).
     parts of Documentation/Vocab*
 it()Donald Ervin Knuth,  lurl(http://www-cs-staff.stanford.edu/~knuth/)
     mf/ital-*.mf (these were taken from the CM fonts)
+it()nemail(Michael Krause)(m.krause@tu-harburg.de),
+    breathing signs
 it()nemail(Werner Lemberg)(xlwy01@uxp1.hrz.uni-dortmund.de),
     misc bugfixes, some Beam and Stem code. 
 it()nemail(David R. Linn)(drl@vuse.vanderbilt.edu),
diff --git a/input/von-guten-maechten.ly b/input/von-guten-maechten.ly
new file mode 100644 (file)
index 0000000..a29e3a4
--- /dev/null
@@ -0,0 +1,110 @@
+
+\include "paper16.ly"
+\include "deutsch.ly"
+
+melodie = \notes \relative c' {
+  d2 d4 e f2 f g4 f e d e2 e \breathe |
+  f d4 e f g a2 b g4 g f2 r2 |
+  c'2 c4 c a2 d c4 b a g f2 g \breathe |
+  a d,4 d g2 g f4 d e2 e d2-\fermata \bar "|.";
+}
+
+righthand = \notes \relative c' {
+  a2 a4 cis4 | d2 d2 | d4 c2 a4 | d4 h cis2 \breathe |
+  d2 a4 c4 | c4 e f2 | f2 f4 e | c2 r2 |
+  e4 f g2 | f2 f2 | e4 d f e | d2. e4 \breathe |
+  f4 d b4 b | d2 d | d4 c d h | cis2 a2 |
+}
+
+lefthand = \notes \relative c {
+  f2 f4 a | a2 a2 | b4 a g f | a2 a \breathe |
+  a2 f4 g | a c c2 | d2 c4 c | a2 r2 |
+  g2 c4 c | c2 b2 | g4 f c' c | a4 b2 cis4 \breathe |
+  d4 a f f | b2 b | a4 a a2 | a2 fis2 |
+}
+
+pedal = \notes \relative c {
+  d2 d4 a d2 d g,4 a c d a2 a \breathe |
+  d2 d4 c f c f2 b,4 g c c f2 r2 |
+  c4 d e c f2 b, c4 d f c d b a2 \breathe |
+  d4 c b2 g4 a b2 d2 a a d_\fermata \bar "|.";
+}
+
+\score {
+  <
+    \context PianoStaff <
+      \context Staff = treble <
+       \notes { \key f; \time 2/2; }
+       \context Voice = melody {
+         \stemup \melodie
+       }
+       \context Voice = right {
+         \stemdown \righthand
+       }
+      >
+      \context Staff = bass {
+       \notes { \key f; \clef "bass"; }
+       \lefthand
+      }
+    > 
+    \context Staff = pedal {
+      \notes { \key f; \clef "bass"; }
+      \pedal
+    }
+  >
+
+  \header {
+    title = "Von guten Mächten treu und still umgeben";
+    composer = "Satz: Michael Krause 1999 (*1977)";
+    enteredby = "Michael Krause";
+    copyright = "dunno";
+    poet = "Dietrich Bonhoeffer 1944";
+  }
+
+  \paper{
+%    \paper_sixteen
+%    linewidth = 18.0 \cm;
+%    textheight = 28.0 \cm;
+    indent = 0.0 \mm;
+    \translator { \OrchestralScoreContext }
+  }
+}
+
+\score {
+  \context StaffGroup <
+    \context Staff = treble <
+      \notes { \key f; \time 2/2; }
+      \context Voice = sop {
+       \stemup \melodie
+      }
+      \context Voice = alt {
+       \stemdown \righthand
+      }
+    >
+    \context Staff = bass <
+      \notes { \key f; \clef "bass"; }
+      \context Voice = ten {
+       \stemup \lefthand
+      }
+      \context Voice = bas {
+       \stemdown \pedal
+      }
+    >
+  > 
+
+  \header {
+    title = "Von guten Mächten treu und still umgeben";
+    composer = "Satz: Michael Krause 1999 (*1977)";
+    enteredby = "Michael Krause";
+    copyright = "dunno";
+    poet = "Dietrich Bonhoeffer 1944";
+  }
+
+  \paper{
+%    \paper_sixteen
+%    linewidth = 18.0 \cm;
+%    textheight = 28.0 \cm;
+    indent = 0.0 \mm;
+  }
+}
+
diff --git a/lily/include/breathing-sign-engraver.hh b/lily/include/breathing-sign-engraver.hh
new file mode 100644 (file)
index 0000000..3c00308
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+  breathing-sign-engraver.hh -- declare Breathing_Sign_engraver
+
+  Copyright (C) 1999 Michael Krause
+
+  written for the GNU LilyPond music typesetter
+
+*/
+
+#ifndef BREATHING_SIGN_ENGRAVER_HH
+#define BREATHING_SIGN_ENGRAVER_HH
+
+#include "engraver.hh"
+#include "command-request.hh"
+#include "breathing-sign.hh"
+
+class Breathing_sign_engraver : public Engraver {
+public:
+  Breathing_sign_engraver();
+  VIRTUAL_COPY_CONS(Translator);
+  
+protected:
+  virtual bool do_try_music (Music *req_l);
+  virtual void do_process_requests();
+
+  virtual void do_pre_move_processing();
+  virtual void do_post_move_processing();
+
+private:
+  Breathing_sign_req * breathing_sign_req_l_;
+  Breathing_sign * breathing_sign_p_;
+};
+
+#endif // BREATHING_SIGN_ENGRAVER_HH
index 9e065963ce9a4542cd2f2fff6237319bf6697503..805f100031dea1b4f3db034e45aaf4714d851633 100644 (file)
@@ -124,6 +124,9 @@ protected:
   VIRTUAL_COPY_CONS(Music);
 };
 
+class Breathing_sign_req : public Request {
+  VIRTUAL_COPY_CONS(Music);
+};
 
 /**
     Handle key changes.
index a0947945ac6b928f585a409ee53adac80fd7b3d4..eee264255d70190100372e56f6d2364a4f5a2771 100644 (file)
@@ -25,6 +25,7 @@ static Keyword_ent the_key_tab[]={
   {"accepts", ACCEPTS},
   {"alternative", ALTERNATIVE},
   {"bar", BAR},
+  {"breathe", BREATHE},
   {"cadenza", CADENZA},
   {"chordmodifiers", CHORDMODIFIERS},
   {"chords", CHORDS},
@@ -143,6 +144,7 @@ My_lily_lexer::set_identifier (String name_str, Identifier* i, bool )
 
 My_lily_lexer::~My_lily_lexer()
 {
+  delete chordmodifier_tab_p_;
   delete keytable_p_;
   delete toplevel_scope_p_ ;
   delete note_tab_p_;
index f881c6134c9a4d58553a6dbd63f0e0edb9ff968d..9561ba341faf46d0a85cca4ce8b09e62332f5e47 100644 (file)
@@ -55,7 +55,6 @@ Note_head::do_width () const
 Molecule*
 Note_head::do_brew_molecule_p() const 
 {
-  Molecule*out = 0;
   Real inter_f = staff_line_leading_f ()/2;
   int sz = lines_i ()-1;
 
@@ -71,15 +70,12 @@ Note_head::do_brew_molecule_p() const
       type = ly_scm2string (SCM_CDR(style));
     }
   
-  Molecule head (lookup_l()->notehead (balltype_i_, type));
-
-  
-  out = new Molecule (Molecule (head));
+  Molecule*  out = new Molecule (lookup_l()->notehead (balltype_i_, type));
 
   if (streepjes_i) 
     {
       Direction dir = sign (position_i_);
-      Interval hd = head.dim_[X_AXIS];
+      Interval hd = out->dim_[X_AXIS];
       Real hw = hd.length ()/4;
       
       Molecule ledger
index 7374759171869389e9cc7e506cfe1d3ff10524c8..85e811b5e363dd9e64a68c747cc8dcaf8fd8bbc8 100644 (file)
@@ -96,6 +96,7 @@ VoiceContext = \translator {
        \name Voice ;
        beamAuto = "1";
        
+       \consists "Breathing_sign_engraver";
        \consists "Rest_engraver";
        \consists "Dot_column_engraver";
        \consists "Stem_engraver";