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