[Top][All Lists]

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

Re: Dynamics context spawns additional contexts when polyphonic

From: Valentin Villenave
Subject: Re: Dynamics context spawns additional contexts when polyphonic
Date: Thu, 31 Oct 2013 17:32:28 +0100

On Thu, Oct 31, 2013 at 12:24 PM, David Kastrup <address@hidden> wrote:
> First you have to figure out what you want to happen here.  Do you want
> two Dynamics contexts with different orientation and settings?  In that
> case, you'll need to provide a superior context aliased to Staff where
> it can anchor those Dynamics contexts.

I still must be missing something: in the following example, the new
dynamics-"voice" context is created *below* the PianoStaff, and not
inserted inside the DynamicsStaff context as intended.

\layout {
  \context {
    \type "Engraver_group"
    \name "DynamicsStaff"
    \alias "Staff"
    \accepts "Dynamics"
    \defaultchild "Dynamics"
  \context {
    \accepts DynamicsStaff
    %\denies Dynamics % doesn't change anything here.

one = \relative c' {
  c1 d << {g a} \\ {e d\mf} >>

two = \relative c' {
  d1 e\f f g

#(define (dynamic? x)
  (let ((name (ly:music-property x 'name)))
     (eq? name 'DynamicEvent)
     (eq? name 'AbsoluteDynamicEvent)
     (eq? name 'CrescendoEvent)
     (eq? name 'DecrescendoEvent)
     (eq? name 'SpanDynamicEvent))))

removeDynamics =
#(define-music-function (parser location music) (ly:music?)
    (lambda (x)
      (not (dynamic? x)))

\new PianoStaff <<
  \new Staff \removeDynamics \one
  \new DynamicsStaff << \one \two >>
  \new Staff \removeDynamics \two

I'm stumped. Why aren't there any such problems with DrumVoice/DrumStaff?


reply via email to

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