From cc06f4e05f23729cbcc6255f4fb8fe1fcc6cc889 Mon Sep 17 00:00:00 2001 From: fred Date: Wed, 27 Mar 2002 01:04:35 +0000 Subject: [PATCH] lilypond-1.3.131 --- input/bugs/score-dynamics.ly | 107 -------------- input/test/lyrics-bar.ly | 37 ----- lily/tuplet-spanner.cc | 277 ----------------------------------- 3 files changed, 421 deletions(-) delete mode 100644 input/bugs/score-dynamics.ly delete mode 100644 input/test/lyrics-bar.ly delete mode 100644 lily/tuplet-spanner.cc diff --git a/input/bugs/score-dynamics.ly b/input/bugs/score-dynamics.ly deleted file mode 100644 index cec828c53c..0000000000 --- a/input/bugs/score-dynamics.ly +++ /dev/null @@ -1,107 +0,0 @@ -% dynamics should not collide with staff -% dynamics (of two voices) should not collide with eachother - -\header { -texidoc="Template for part-combining orchestral scores"; -} - - -End = { \skip 1*8; } -violoncello = \notes\relative c'' { - c1\ff d e \break - c1\ff d e \break - - \property Voice.crescendoText = #"cresc." - \property Voice.crescendoSpanner = #'dashed-line - g4\p\< r r r8 g(| - )c,4 r r r8 c| - [\!f8\sf(\>as f as][f g d)\!g]| -} - -contrabasso = \notes\relative c'' { - c1\pp d e - c2\pp c d1 e - - \property Voice.crescendoText = #"cresc." - \property Voice.crescendoSpanner = #'dashed-line - g4\p\< r r r8 g(| - )c,4 r r r8 c| - [\!f8\sf(\>as f as][f g d)\!g]| -} - -flautiStaff = \notes \context Staff = flauti < - \context Voice=oneBassi \End - \context Voice=twoBassi \End - \context Voice=Flauti \partcombine Voice - \context Thread=oneFlauti \violoncello - \context Thread=twoFlauti \contrabasso -> - -staffCombineProperties = { - \property Voice.devNullThread = #'unisolo - \property Voice.soloADue = ##t - \property Voice.soloText = #"" - \property Voice.soloIIText = #"" - % This is non-conventional, but currently it is - % the only way to tell the difference. - \property Voice.aDueText = #"\\`a2" - \property Voice.splitInterval = #'(1 . 0) - \property Voice.changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1)) -} - -\score { - < - \flautiStaff - - \context PianoStaff = bassi_group \notes < - \context Staff=oneBassi \End - \context Staff=twoBassi \End - - \context Staff=oneBassi \partcombine Staff - \context Voice=oneBassi { \staffCombineProperties \violoncello } - \context Voice=twoBassi { \staffCombineProperties \contrabasso } - > - - > - \paper { - % \paperSixteen - linewidth = 80 * \staffspace; - textheight = 200 * \staffspace; - \translator{ - \ThreadContext - \consists "Rest_engraver"; - } - \translator{ - \VoiceContext - \remove "Rest_engraver"; - - % The staff combine (bassi part) needs a - % thread_devnull_engraver here. - % Instead of maintaining two separate hierarchies, - % we switch add it, but switch it off immideately. - % The staff combine parts switch it on. - devNullThread = #'never - \consists "Thread_devnull_engraver"; - - soloText = #"I." - soloIIText = #"II." - soloADue = ##f - } - \translator{ - \HaraKiriStaffContext - \consists "Mark_engraver"; - } - \translator { - \OrchestralScoreContext - skipBars = ##t - % Hmm - currentBarNumber = #218 - BarNumber \override #'padding = #3 - RestCollision \override #'maximum-rest-count = #1 - marginScriptHorizontalAlignment = #1 - TimeSignature \override #'style = #'C - } - \translator { \HaraKiriStaffContext } - } -} - diff --git a/input/test/lyrics-bar.ly b/input/test/lyrics-bar.ly deleted file mode 100644 index 7be6f4c0ac..0000000000 --- a/input/test/lyrics-bar.ly +++ /dev/null @@ -1,37 +0,0 @@ -\header{ -texidoc=" -Adding a @code{Bar_engraver} to the LyricsVoice context makes sure that -lyrics don't collide with barlines. -"; -} - -\score { - \context StaffGroup < - \notes \context Staff { - b1 b1 \bar "|."; - } - \lyrics\context Lyrics < - \context LyricsVoiceWithBars { -% thisContextHasSpanBarEngraver1 added - ThisContextCertainlyHasSpanBarEngraverAddedButTheresSomethingFunny1. Here. - } - \context LyricsVoice { - this4 one has no SpanBarEngraverAddedToContext1 - } - > - \notes \context Staff = SB { b1 b1 } - > - \paper { - linewidth = -1.0\cm; - \translator { - \LyricsContext - \accepts "LyricsVoiceWithBars"; - } - \translator { - \LyricsVoiceContext - \consists "Bar_engraver"; - \name "LyricsVoiceWithBars"; - } - - } -} diff --git a/lily/tuplet-spanner.cc b/lily/tuplet-spanner.cc deleted file mode 100644 index 2b2ddd8ae1..0000000000 --- a/lily/tuplet-spanner.cc +++ /dev/null @@ -1,277 +0,0 @@ -/* - plet-spanner.cc -- implement Tuplet_spanner - - source file of the GNU LilyPond music typesetter - - (c) 1997--2000 Jan Nieuwenhuizen -*/ - - -#include "beam.hh" -#include "box.hh" -#include "debug.hh" -#include "font-interface.hh" -#include "molecule.hh" -#include "paper-column.hh" -#include "paper-def.hh" -#include "text-item.hh" -#include "tuplet-spanner.hh" -#include "stem.hh" -#include "note-column.hh" -#include "dimensions.hh" -#include "group-interface.hh" -#include "directional-element-interface.hh" -#include "spanner.hh" - -void -Tuplet_spanner::set_interface (Grob*me) -{ - me->set_interface (ly_symbol2scm ("tuplet-bracket")); -} - -/* - TODO: use stem->beam fields to find Beams. Autobeams aren't found - through the engraver mechanism. */ -MAKE_SCHEME_CALLBACK(Tuplet_spanner,brew_molecule,1); -SCM -Tuplet_spanner::brew_molecule (SCM smob) -{ - Grob *me= unsmob_grob (smob); - Molecule mol; - - // Default behaviour: number always, bracket when no beam! - bool par_beam = to_boolean (me->get_grob_property ("parallel-beam")); - bool bracket_visibility = !par_beam; - bool number_visibility = true; - - SCM bracket = me->get_grob_property ("tuplet-bracket-visibility"); - if (gh_boolean_p (bracket)) - { - bracket_visibility = gh_scm2bool (bracket); - } - else if (bracket == ly_symbol2scm ("if-no-beam")) - bracket_visibility = !par_beam; - - SCM numb = me->get_grob_property ("tuplet-number-visibility"); - if (gh_boolean_p (numb)) - { - number_visibility = gh_scm2bool (numb); - } - else if (bracket == ly_symbol2scm ("if-no-beam")) - number_visibility = !par_beam; - - if (gh_pair_p (me->get_grob_property ("columns"))) - { - Link_array column_arr= - Pointer_group_interface__extract_elements (me, (Grob*)0, "columns"); - - Real ncw = column_arr.top ()->extent(column_arr.top (), X_AXIS).length (); - Real w = dynamic_cast(me)->spanner_length () + ncw; - - Real staff_space = 1.0; - Direction dir = Directional_element_interface::get (me); - Real dy = gh_scm2double (me->get_grob_property ("delta-y")); - SCM number = me->get_grob_property ("text"); - if (gh_string_p (number) && number_visibility) - { - SCM properties = Font_interface::font_alist_chain (me); - Molecule num = Text_item::text2molecule (me, number, properties); - num.align_to (X_AXIS, CENTER); - num.translate_axis (w/2, X_AXIS); - num.align_to (Y_AXIS, CENTER); - num.translate_axis (dir * staff_space, Y_AXIS); - - num.translate_axis (dy/2, Y_AXIS); - - mol.add_molecule (num); - } - - if (bracket_visibility) - { - Real lt = me->paper_l ()->get_var ("stafflinethickness"); - - SCM thick = me->get_grob_property ("thick"); - SCM gap = me->get_grob_property ("number-gap"); - - SCM at =gh_list(ly_symbol2scm ("tuplet"), - gh_double2scm (1.0), - gap, - gh_double2scm (w), - gh_double2scm (dy), - gh_double2scm (gh_scm2double (thick)* lt), - gh_int2scm (dir), - SCM_UNDEFINED); - - Box b; - mol.add_molecule (Molecule (b, at)); - } - } - return mol.smobbed_copy (); -} - - - - -/* - use first -> last note for slope, and then correct for disturbing - notes in between. */ -void -Tuplet_spanner::calc_position_and_height (Grob*me,Real *offset, Real * dy) -{ - Link_array column_arr= - Pointer_group_interface__extract_elements (me, (Grob*)0, "columns"); - - - Grob * commony = me->common_refpoint (me->get_grob_property ("columns"), Y_AXIS); - Grob * commonx = me->common_refpoint (me->get_grob_property ("columns"), X_AXIS); - - Direction d = Directional_element_interface::get (me); - - /* - Use outer non-rest columns to determine slope - */ - int l = 0; - while (l = l && Note_column::rest_b(column_arr[r])) - r--; - - if (l < r) - { - *dy = column_arr[r]->extent (commony, Y_AXIS) [d] - - column_arr[l]->extent (commony, Y_AXIS) [d] ; - } - else - * dy = 0; - - - *offset = - d * infinity_f; - - if (!column_arr.size ()) - return; - - Real x0 = column_arr[0]->relative_coordinate (commonx, X_AXIS); - Real x1 = column_arr.top ()->relative_coordinate (commonx, X_AXIS); - - Real factor = column_arr.size () > 1 ? 1/(x1 - x0) : 1.0; - - for (int i = 0; i < column_arr.size (); i++) - { - Real notey = column_arr[i]->extent (commony, Y_AXIS)[d] - - me->relative_coordinate (commony, Y_AXIS); - - Real x = column_arr[i]->relative_coordinate (commonx, X_AXIS) - x0; - Real tuplety = *dy * x * factor; - - if (notey * d > (*offset + tuplety) * d) - *offset = notey - tuplety; - } -} - -/* - use first -> last note for slope, -*/ -void -Tuplet_spanner::calc_dy (Grob*me,Real * dy) -{ - Link_array column_arr= - Pointer_group_interface__extract_elements (me, (Grob*)0, "columns"); - - /* - ugh. refps. - */ - Direction d = Directional_element_interface::get (me); - *dy = column_arr.top ()->extent (column_arr.top (), Y_AXIS) [d] - - column_arr[0]->extent (column_arr[0], Y_AXIS) [d]; -} -MAKE_SCHEME_CALLBACK(Tuplet_spanner,after_line_breaking,1); - -SCM -Tuplet_spanner::after_line_breaking (SCM smob) -{ - Grob * me = unsmob_grob (smob); - Link_array column_arr= - Pointer_group_interface__extract_elements (me, (Note_column*)0, "columns"); - Spanner *sp = dynamic_cast (me); - - - if (!column_arr.size ()) - { - me->suicide (); - return SCM_UNSPECIFIED; - } - - Direction d = Directional_element_interface::get (me); - if (!d) - { - d = Tuplet_spanner::get_default_dir (me); - Directional_element_interface::set (me, d); - - } - Real dy, offset; - - calc_position_and_height (me,&offset,&dy); - - me->set_grob_property ("delta-y", gh_double2scm (dy)); - - me->translate_axis (offset, Y_AXIS); - - if (scm_ilength (me->get_grob_property ("beams")) == 1) - { - SCM bs = me->get_grob_property ("beams"); - Grob *b = unsmob_grob (gh_car (bs)); - Spanner * beam_l = dynamic_cast (b); - if (!sp->broken_b () - && sp->get_bound (LEFT)->column_l () == beam_l->get_bound (LEFT)->column_l () - && sp->get_bound (RIGHT)->column_l () == beam_l->get_bound (RIGHT)->column_l ()) - me->set_grob_property ("parallel-beam", SCM_BOOL_T); - } - return SCM_UNSPECIFIED; -} - - -Direction -Tuplet_spanner::get_default_dir (Grob*me) -{ - Direction d = UP; - SCM dir_sym =me->get_grob_property ("dir-forced"); - if (isdir_b (dir_sym)) - { - d= to_dir (dir_sym); - if (d != CENTER) - return d; - } - - d = UP ; - for (SCM s = me->get_grob_property ("columns"); gh_pair_p (s); s = gh_cdr (s)) - { - Grob * nc = unsmob_grob (gh_car (s)); - if (Note_column::dir (nc) < 0) - { - d = DOWN; - break; - } - } - - return d; -} - -void -Tuplet_spanner::add_beam (Grob*me, Grob *b) -{ - me->add_dependency (b); - Pointer_group_interface::add_element (me, "beams",b); -} - -void -Tuplet_spanner::add_column (Grob*me, Item*n) -{ - Pointer_group_interface::add_element (me, "columns",n); - me->add_dependency (n); - - add_bound_item (dynamic_cast (me), n); -} - - -- 2.39.5