lilypond-user
[Top][All Lists]
Advanced

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

Re: Sustain in midi output of Piano Centered Dynamics Template


From: Trevor Daniels
Subject: Re: Sustain in midi output of Piano Centered Dynamics Template
Date: Mon, 5 May 2008 00:24:30 +0100


Anthony

It seems that this is an error in the template which has probably always been there.

As you have found, it is necessary to place the pedal up/down indications in *all* the staves in order for the midi output to correctly simulate the action of a piano sustain pedal. However, this will cause the Ped ... * indications to appear beneath all staves too, which is undesirable. This is why the template you mention has two scores - one with a layout block to generate the correct printed output and one with a midi block to generate the correct midi output. The midi score should have the pedal indications in both staves, as you have discovered. I'll correct the template in the 2.11 docs shortly.

Thanks for pointing this out.

Trevor

----- Original Message ----- From: "Anthony" <address@hidden>
To: <address@hidden>
Sent: Friday, May 02, 2008 7:00 PM
Subject: Sustain in midi output of Piano Centered Dynamics Template


I noticed that sustain information was not getting generated in the
midi file output when using the Piano Centered Dynamics template
located on the lilypond website.  I've tried the same template with
2.10.33 as well as 2.11.45.

This is the current template for the piano centered dynamics:

    upper = \relative c'' {
      \clef treble
      \key c \major
      \time 4/4

      a b c d
    }

    lower = \relative c {
      \clef bass
      \key c \major
      \time 4/4

      a2 c
    }

    dynamics = {
      s2\fff\> s4
      s\!\pp
    }

    pedal = {
      s2\sustainDown s2\sustainUp
    }

    \score {
      \new PianoStaff <<
        \new Staff = "upper" \upper
        \new Dynamics = "dynamics" \dynamics
        \new Staff = "lower" <<
          \clef bass
          \lower
        >>
        \new Dynamics = "pedal" \pedal
      >>
      \layout {
        \context {
          \type "Engraver_group"
          \name Dynamics
          \alias Voice % So that \cresc works, for example.
          \consists "Output_property_engraver"

          \override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 1)
          \override DynamicLineSpanner #'Y-offset = #0
          pedalSustainStrings = #'("Ped." "*Ped." "*")
          pedalUnaCordaStrings = #'("una corda" "" "tre corde")

          \consists "Piano_pedal_engraver"
          \consists "Script_engraver"
          \consists "Dynamic_engraver"
          \consists "Text_engraver"

          \override TextScript #'font-size = #2
          \override TextScript #'font-shape = #'italic

          \consists "Skip_event_swallow_translator"

          \consists "Axis_group_engraver"
        }
        \context {
          \PianoStaff
          \accepts Dynamics
        }
      }
    }
    \score {
      \new PianoStaff <<
        \new Staff = "upper" << \upper \dynamics >>
        \new Staff = "lower" << \lower \dynamics >>
        \new Dynamics = "pedal" \pedal
      >>
      \midi {
        \context {
          \type "Performer_group"
          \name Dynamics
          \consists "Piano_pedal_performer"
        }
        \context {
          \PianoStaff
          \accepts Dynamics
        }
      }
    }


To get pedals to appear as events in the midi file I had to change two
lines in the midi score section from:

        \new Staff = "upper" << \upper \dynamics >>
        \new Staff = "lower" << \lower \dynamics >>
to
        \new Staff = "upper" << \upper \dynamics \pedal >>
        \new Staff = "lower" << \lower \dynamics \pedal >>

as well as keep all the other stuff regarding the pedal (well, I've
not messed around since I get pedal events now).

I was just curious if this had worked previously or if simply nobody
noticed it wasn't working. :)

- Anthony


_______________________________________________
lilypond-user mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/lilypond-user






reply via email to

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