lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: BreathingSigns and automatic beams


From: Jay Anderson
Subject: Re: BreathingSigns and automatic beams
Date: Mon, 23 Jun 2014 21:24:40 -0700

On Wed, Mar 6, 2013 at 6:00 PM, Thomas Morley
<address@hidden> wrote:
> Well, nowadays we have the 'collision-interfaces-property but adding
> breathing-sign-interface to it seems to have no effect.
>
> \version "2.17.12"
>
> respectBS = {
>   \override Beam #'collision-interfaces =
>     #'(beam-interface
>        clef-interface
>        breathing-sign-interface
>        flag-interface
>        inline-accidental-interface
>        key-signature-interface
>        note-head-interface
>        octavate-eight-interface
>        stem-interface
>        time-signature-interface)
> }
>
> \relative c' {
>   \respectBS
>   c8 d e f b[ a \breathe g f]
> }

Reviving this old thread. I was trying to do this today and found the
same frustration. It looks like it requires a simple change to the
code:

=================================================================
diff --git a/lily/auto-beam-engraver.cc b/lily/auto-beam-engraver.cc
index 8b55b44..92bc796 100644
--- a/lily/auto-beam-engraver.cc
+++ b/lily/auto-beam-engraver.cc
@@ -353,7 +353,8 @@ void
 Auto_beam_engraver::acknowledge_breathing_sign (Grob_info /* info */)
 {
   check_bar_property ();
-  if (stems_)
+  bool breathBreaksBeam = to_boolean (get_property
("breathingSignBreaksBeam"));
+  if (stems_ && breathBreaksBeam)
     end_beam ();
 }

diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly
index ebfff6a..322db5f 100644
--- a/ly/engraver-init.ly
+++ b/ly/engraver-init.ly
@@ -638,6 +638,7 @@ automatically when an output definition (a @code{\\score} or
   beamHalfMeasure = ##t

   autoBeaming = ##t
+  breathingSignBreaksBeam = ##t
   autoBeamCheck = #default-auto-beam-check

   completionFactor = #unity-if-multimeasure
diff --git a/scm/define-context-properties.scm
b/scm/define-context-properties.scm
index 2d38188..3e5510d 100644
--- a/scm/define-context-properties.scm
+++ b/scm/define-context-properties.scm
@@ -115,6 +115,7 @@ arguments, @var{context}, @var{dir} [start/@/stop
(-1 or 1)], and
 starts or stops the auto beam.")
      (autoBeaming ,boolean? "If set to true then beams are generated
 automatically.")
+     (breathingSignBreaksBeam ,boolean? "Indicates that a breathing
sign causes beams to break.")
      (autoCautionaries ,list? "List similar to @code{autoAccidentals},
 but it controls cautionary accidentals rather than normal ones.  Both
 lists are tried, and the one giving the most accidentals wins.  In
=================================================================

Is this an appropriate approach? Ideally it'd be nice to give it a
list of things that cause beams to end (e.g. breathing sign, manual
beam, bar line, etc.).

-----Jay



reply via email to

[Prev in Thread] Current Thread [Next in Thread]