On Sunday 10 April 2005 05.18, Stephen wrote:
> It has been my experience that visually it looks better to connect absolute
> dynamics with a hairpin or to say it the other way around, to connect the
> hairpin to an absolute dynamic. I am not trying to be difficult. If what
> you say is true, what the hairpin engraver has been written to perform
> optimally the hairpin performer has a bug in.

Yes, it is certainly a bug. midi-cresc-silence.ly in the bug repository.

> Usually a hairpin dynamic is placed between one or two absolute dynamics so
> that the performer of the music knows to gradually shift from one dynamic
> to the other. Usually in printed music the dynamics and hairpins are lined
> up with each other vertically in this case. I learned that an easy way to
> make a hairpin line up with an absolute dynamic is attach the start or end
> of the hairpin to the same note as the dynamic. So if this messes up the
> midi, it is very unfortunate, 'cause it is more important to makr it look
> good.

There is one possible workaround:

Create 2 scores, one for paper output and one for midi output. In the midi 
score, add an extra s64\mf before the beginning of each voice. (it's dirty 
but works)

> I am not angry, it just takes a lot of words to make clear what I mean.
> Often the purpose of a hairpin is to modulate the volume between two given
> dynamics. Clearly the problem is that the hairpin modulates the volume from
> its start to its endpoint, but really, it should never modulate at its
> endpoints anyway. When a performer sees a hairpin, he knows to bring it
> from the dynamic he is already playing at the start of the hairpin to
> another absolute dynamic at the end of the hairpin. So the modulation
> should never include, say, the first note of a hairpin. If there are only
> two notes, it should only change the dynamic of the second note. If the
> hairpin is attached to only one note, it should only change the dynamics of
> the notes following the hairpin. Etc.
>
> Again, I am curious to know which file this code is in in the sources.

I am not a lilypond hacker (just an user, bug admin and hacker wannabe). 
However, I could suggest you to start with a
grep Span_dynamic_performer ly/* scm/* lily/*

Erik


_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to