From fc8ddcd882e3035ec522a71f6f7fddcfc2d74da7 Mon Sep 17 00:00:00 2001 From: fred Date: Tue, 26 Mar 2002 21:50:40 +0000 Subject: [PATCH] lilypond-1.1.50 --- Documentation/topdocs/AUTHORS.yo | 2 + input/von-guten-maechten.ly | 110 ++++++++++++++++++++++++ lily/include/breathing-sign-engraver.hh | 34 ++++++++ lily/include/command-request.hh | 3 + lily/my-lily-lexer.cc | 2 + lily/note-head.cc | 8 +- ly/engraver.ly | 1 + 7 files changed, 154 insertions(+), 6 deletions(-) create mode 100644 input/von-guten-maechten.ly create mode 100644 lily/include/breathing-sign-engraver.hh diff --git a/Documentation/topdocs/AUTHORS.yo b/Documentation/topdocs/AUTHORS.yo index 844103c86f..5594db317c 100644 --- a/Documentation/topdocs/AUTHORS.yo +++ b/Documentation/topdocs/AUTHORS.yo @@ -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 index 0000000000..a29e3a4690 --- /dev/null +++ b/input/von-guten-maechten.ly @@ -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 index 0000000000..3c003081e5 --- /dev/null +++ b/lily/include/breathing-sign-engraver.hh @@ -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 diff --git a/lily/include/command-request.hh b/lily/include/command-request.hh index 9e065963ce..805f100031 100644 --- a/lily/include/command-request.hh +++ b/lily/include/command-request.hh @@ -124,6 +124,9 @@ protected: VIRTUAL_COPY_CONS(Music); }; +class Breathing_sign_req : public Request { + VIRTUAL_COPY_CONS(Music); +}; /** Handle key changes. diff --git a/lily/my-lily-lexer.cc b/lily/my-lily-lexer.cc index a0947945ac..eee264255d 100644 --- a/lily/my-lily-lexer.cc +++ b/lily/my-lily-lexer.cc @@ -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_; diff --git a/lily/note-head.cc b/lily/note-head.cc index f881c6134c..9561ba341f 100644 --- a/lily/note-head.cc +++ b/lily/note-head.cc @@ -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 diff --git a/ly/engraver.ly b/ly/engraver.ly index 7374759171..85e811b5e3 100644 --- a/ly/engraver.ly +++ b/ly/engraver.ly @@ -96,6 +96,7 @@ VoiceContext = \translator { \name Voice ; beamAuto = "1"; + \consists "Breathing_sign_engraver"; \consists "Rest_engraver"; \consists "Dot_column_engraver"; \consists "Stem_engraver"; -- 2.39.5