From: Han-Wen Nienhuys Date: Mon, 25 Jan 1999 12:34:19 +0000 (+0100) Subject: patch::: 1.1.23.ms2 X-Git-Tag: release/1.1.24~2 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=ed9c9b705a25dacd0edded6292d4d812a218cc5a;p=lilypond.git patch::: 1.1.23.ms2 pl 23.ms2 - property noteheadStyle - first attempt to make harmonics : see input/test/harmonics.fly --- Generated by (address unknown) using package-diff 0.62, From = lilypond-1.1.23.ms1, To = lilypond-1.1.23.ms2 usage cd lilypond-source-dir; patch -E -p1 < lilypond-1.1.23.ms2.diff Patches do not contain automatically generated files or (urg) empty directories, i.e., you should rerun autoconf, configure and possibly make outdirs. --state 1.1.23.ms1 1.1.23.ms2 ++state --- diff --git a/NEWS b/NEWS index eba63994a5..7944916b79 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,13 @@ ---- ../lilypond-1.1.23/NEWS Tue Jan 19 16:29:41 1999 +--- ../lilypond-1.1.23.ms1/NEWS Mon Jan 25 10:22:34 1999 +++ b/NEWS Mon Jan 25 13:34:19 1999 +@@ -1,3 +1,7 @@ +pl 23.ms2 + - property noteheadStyle + - first attempt to make harmonics : see input/test/harmonics.fly + + pl 23.ms1 + - sinfonia.ly: several fixes + - dynamics--- ../lilypond-1.1.23/NEWS Tue Jan 19 16:29:41 1999 ++ b/NEWS Mon Jan 25 10:22:34 1999 @@ -1,3 +1,13 @@ pl 23.ms1 diff --git a/VERSION b/VERSION index e245fa0ebf..3559b6d923 100644 --- a/VERSION +++ b/VERSION @@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=1 PATCH_LEVEL=23 -MY_PATCH_LEVEL=ms1 +MY_PATCH_LEVEL=ms2 # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/input/test/harmonics.fly b/input/test/harmonics.fly new file mode 100644 index 0000000000..59d8925dc9 --- /dev/null +++ b/input/test/harmonics.fly @@ -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/lily/heads-engraver.cc b/lily/heads-engraver.cc index c2d52cf139..4e894ba438 100644 --- a/lily/heads-engraver.cc +++ b/lily/heads-engraver.cc @@ -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); diff --git a/lily/include/lookup.hh b/lily/include/lookup.hh index 9526c07cc4..c0fc047926 100644 --- a/lily/include/lookup.hh +++ b/lily/include/lookup.hh @@ -33,6 +33,9 @@ public: void add (String, Symtable*); Atom afm_find (String, bool warn=true) const; Atom ball (int) const; + // + Atom special_ball (int, String) const; + // Atom bar (String, Real height) const; Atom beam (Real, Real, Real) const; Atom clef (String) const; diff --git a/lily/include/note-head.hh b/lily/include/note-head.hh index 1cc0bad9b8..853fee3581 100644 --- a/lily/include/note-head.hh +++ b/lily/include/note-head.hh @@ -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_; diff --git a/lily/lookup.cc b/lily/lookup.cc index 2b73a7ba82..f777dee42a 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -122,6 +122,15 @@ Lookup::ball (int j) const return afm_find (String ("balls") + String ("-") + to_str (j)); } +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); +} + Atom Lookup::bar (String str, Real h) const { diff --git a/lily/note-head.cc b/lily/note-head.cc index 10cb7b1c25..f26cfc4c51 100644 --- a/lily/note-head.cc +++ b/lily/note-head.cc @@ -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_); diff --git a/mf/feta-bolletjes.mf b/mf/feta-bolletjes.mf index 5ef657ad80..410e4375bf 100644 --- a/mf/feta-bolletjes.mf +++ b/mf/feta-bolletjes.mf @@ -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");