lilypond-user
[Top][All Lists]
Advanced

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

Re: assigning a MIDI loudness to a defined dynamic string


From: David Kastrup
Subject: Re: assigning a MIDI loudness to a defined dynamic string
Date: Wed, 30 Jul 2014 16:25:16 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux)

Knute Snortum <address@hidden> writes:

> I am getting my old friend the "ambiguous (de)crescendo" error.  I can see
> why this would happen in the snippet below.  I have defined a dynamic of
> "più f" and LilyPond doesn't know how to crescendo from a "f" to it.
>
> My usual way of dealing with this is to assign a MIDI volume to my new
> dynamic.  In this case forte = .75 so I am trying to assign .77 to the "più
> f" but I don't know how to do it.  Any suggestions?
>
> %%% BEGIN
> \version "2.18.2"
>
> piuFMarkup = \markup { \normal-text { \italic "più" } \dynamic "f" }
> piuF = #(make-dynamic-script #{ \piuFMarkup #} )
>
> % Neither of the following prevent the MIDI error
>
> %{
> #(define (myDynamics dynamic)
>     (if (equal? dynamic \piuFMarkup )
>       0.77
>       (default-dynamic-absolute-volume dynamic)))
> %}
>
> #(define (myDynamics dynamic)
>     (if (equal? dynamic "piùf" )
>       0.77
>       (default-dynamic-absolute-volume dynamic)))
>
> % \f = MIDI loudnes .75, so crescendo to .77
>
> \score {
>   \relative c' {
>     c4 \f d \< e f | g1 \piuF
>   }
>   \layout {}
>   \midi {}
> }
> %%% END

The manual has a working example in
<URL:http://www.lilypond.org/doc/v2.18/Documentation/notation/controlling-midi-dynamics#dynamic-marks>.
You need to set dynamicAbsoluteVolumeFunction for this to work.  Just
defining some function myDynamics and hoping that LilyPond will
magically know what to do with it is not enough.

The following works:

%%% BEGIN
\version "2.18.2"

piuFMarkup = \markup { \normal-text { \italic "più" } \dynamic "f" }
piuF = #(make-dynamic-script piuFMarkup)

#(define (myDynamics dynamic)
    (if (equal? dynamic piuFMarkup )
      0.77
      (default-dynamic-absolute-volume dynamic)))

% \f = MIDI loudnes .75, so crescendo to .77

\score {
  \relative c' {
    c4 \f d \< e f | g1 \piuF
  }
  \layout {}
  \midi {
    \context {
      \Score
      dynamicAbsoluteVolumeFunction = #myDynamics
    }
  }
}
-- 
David Kastrup

reply via email to

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