Hello!
I'm trying to change relative loudness on the melody and the
accompaniment, by it turn out the MIDI dynamics doesn't apply to the
measures that have multiple voices. In the attached file, I set
midiMaximumVolume to 0.1 for the accompaniment, and it's quiet indeed,
but only for a few measures. Then it becomes much louder for some
measures. The loud measures have two voices, and I believe that's the
reason.
I read that the MIDI dynamics applies only after the first dynamics
symbol. To placate lilypond, I added \p in the beginning for the
lowermost staff, which wasn't in the original composition. But it
wasn't enough. The dynamics doesn't apply to the new voices. And the
funny thing is that MIDI is still produced! If lilypond doesn't know
the loudness, maybe it should warn the user rather than produce a
badly-sounding MIDI file with no sings of a problem?
There is one warning about the MIDI output:
programming error: Impossible or ambiguous (de)crescendo in MIDI.
But I don't see what input it applies to and I suspect it's unrelated
to the multi-voice measures.
I'm using the current git checkout of lilypond, commit
4e8daaedf481c243fdb953e1b14717d20115c262.
--
Regards,
Pavel Roskin
\version "2.14.2"
\language "english"
\header {
title = "Sure on this shining night"
composer = "Samuel Barber"
poet = "James Agee"
opus = "Op. 13, No. 3"
}
\paper {
#(set-paper-size "letter")
}
global = {
\mark \markup \bold "Andante"
\tempo 4 = 50
\key d \phrygian
\time 3/4
}
altoVoice = \relative c'' {
\global
\dynamicUp
\autoBeamOff
R2. |
d4\p c8 d bflat a |
c4. bflat8 a bflat |
g8 f a2 |
r4 r4 bflat4 ~ |
bflat4 a8 bflat g f |
a2 g4 |
eflat4. f8 d4 ~ |
\time 2/4 d2 |
\time 3/4 r4 r4 d'4\mf |
f4 e8 f d c |
e2. |
g2\f ~ g8 e8 |
e2. |
e2\< d4 |
f2. |
\time 4/4 r4\! f4\p e8 d c d |
\time 3/4 bflat2. |
\time 4/4 r4 d2\< ~ d8\! g,8 |
\time 3/4 g2. |
R2. |
f'4\mf eflat8 f d c |
eflat4. d8 c-- \noBeam d |
bflat([ a)] c2 ~ |
c4 r4 d4 ~ |
d4 c8([ d)] bflat a |
c2 bflat4 |
g4. a8 f4 ~ |
f4 g2 |
d2. ~ |
d4 r4 r4 |
R2. |
R2. |
R2. \fermataMarkup
}
verse = \lyricmode {
Sure on this shin- ing night
Of star- made shad- ows round,
Kind- ness must watch for me
This side the ground.
The late year lies down the north.
All is healed, all is health.
High sum- mer holds the earth.
Hearts all whole.
Sure on this shin- ing night
I weep for won- der
Wan- d'ring far a- lone
Of shad- ows on the stars.
}
rightOne = \relative c' {
\global
<d f bflat d>4.\p( \arpeggio <bflat d>8 <bflat d> <bflat d> |
<bflat d>2.) |
f''4\( eflat8 f d c |
eflat4. d8 c d |
bflat8 a c2\) |
r4 r4 d4 ~ |
d4 c8 d bflat a |
<eflat c'>2 <d bflat'>4 |
\time 2/4 << { g4. a8 } \\ <d, bflat>2 >> |
\time 3/4 << { f4 ~ <a, d f>8 <a d f> <a d f> <a d f> } \\ { <a d>8 <a d> s2 } >> |
<a d f>8 <a d f> <a d f> <a d f> <a d f> <a d f> \!
<< { c'4\mf b8 c a g } \\ { <c, e>8 <c e> <c e> <c e> <c e> <c e> } >> |
<b e g b>8 <b e g b> <b e g b> <b e g b> <b e g b> <b e g b> |
<csharp e a csharp> <csharp e a csharp> <csharp e a csharp> <csharp e a csharp> <csharp e a csharp> <csharp e a csharp> |
<csharp e a csharp>\(\< <csharp e a csharp> <csharp e a csharp> <csharp e a csharp> <b e a b>-- <b e a b> |
<d f a d>-- <d f a d>\! <d f a d> <d f a d> <d f a d> <d f a d>\) |
\time 4/4 <d f bflat d>\( <d f bflat d> <d f bflat d> <d f bflat d> <d f bflat d> <d f bflat d> <d f bflat d> <d f bflat d> |
\time 3/4 <d g bflat d>\< <d g bflat d> <d g bflat d> <c g' bflat c>-- <eflat g bflat eflat>-- <eflat g bflat eflat>\) |
\time 4/4 <d bflat g>\(\p\< <d bflat g> <d bflat g> <d bflat g> <d bflat g> <d bflat g> <d bflat g> <c bflat g>--
\time 3/4 <eflat bflat g>--\! <eflat bflat g> <eflat bflat g> <eflat bflat g> <eflat bflat g> <eflat bflat g>\) |
<< { d'4 \mf \arpeggio c8 d bflat a } \\ { <d, f>8 \arpeggio <d f> <d f> <d f> <bflat d> <bflat d> } >> |
<< { c'4. bflat8 a bflat } \\ { <c, a'>8 <c a'> <c g'> <c g'> <a d> <a d> } >> |
<< { g'8 f a2 } \\ { <bflat, eflat>8 <bflat eflat> <a eflat'> <a eflat'> <a d> <a d> } >> |
<< { r4 r4 bflat'4-- ~ } \\ { <bflat, d>8 <bflat d> <c g> <c g> \change Staff="left" \stemUp <c g> <c g> } >> |
<< { bflat'4 a8 bflat g f } \\ { \change Staff="left" \stemUp <c g>8 <c g> <c g> <c g> \change Staff="right" \stemDown <bflat d>8 <bflat d> } >> |
<< { a'2 g4 } \\ { <a, d f>8 <a d f> <a d f> <a d f> <bflat eflat> <bflat eflat> } >> |
<< { eflat4. f8 d4 ~ } \\ { <c g>8 <c g> <c g> <c g> <bflat g> <bflat g> } >> |
<< { d2 eflat4-- } \\ { <bflat g>8 <bflat g> <bflat g> <bflat g> <bflat g> <bflat g> } >> |
<< bflat2.-- ~ \\ { \change Staff="left" \stemUp <f g>8 <f g> <eflat g> <eflat g> <eflat g> <eflat g> } >> |
<< bflat'2. \\ { \change Staff="left" \stemUp <d, f>8 \change Staff="right" \stemDown <d' f bflat d>8 <d f bflat d> <d f bflat d> <d f bflat d> <d f bflat d> } >> |
<d f bflat d>8 <d f bflat d> <d f bflat d> <c g' bflat c>-- <eflat g bflat eflat>-- <eflat g bflat eflat>\mf |
\change Staff="left" \stemUp \override Rest #'direction = #up r4 <d bflat g>8\p <d bflat g> <d bflat g> <d bflat g> |
<d bflat g>8 <c bflat g>-- <eflat bflat g>-- <eflat bflat g> <eflat bflat g> <d bflat g> |
f2.-- \fermata
}
leftOne = \relative c {
\global
<f bflat,>2.\p\( \arpeggio ~ |
<f bflat,>8 <f bflat,> <f bflat,> <f bflat,> <d g,> <d g,> |
<< { <a' c,>8 \arpeggio <a c,> <g c,> <g c,> <f d> <f d> } \\ { eflat,2 \arpeggio f4 } >> |
<< { <bflat' eflat,>8 \arpeggio <bflat eflat,> <a f> <a f> <a f> <a f> } \\ { g,4 \arpeggio d'2 } >> s8*0\) |
<g eflat>8\( <g eflat> <g eflat> <g eflat> <g eflat> <g eflat> |
<g eflat> <g eflat> <a f> <a f> <a f> <a f> |
<a g> <a g> <a g> <a g> <bflat g> <d g,> |
<< { g,8 g g g g g } \\ { c,2 g4 ~ } >> |
\time 2/4 << { d'8 d eflat eflat } \\ g,2 >> |
<d' d,>2.\) ~ |
<d d,>2. |
<< { e8 e e e e e } \\ a,2. >> |
<e' e,>2. |
<e a,>2. |
<e a,>2. |
<f a, d,>2. \arpeggio |
\time 4/4 <f bflat,>1 |
\time 3/4 <g eflat>2. |
\time 4/4 <d g,>1 |
\time 3/4 <bflat eflat,>2. |
<f' bflat, bflat,>2\arpeggio <d g,>4 |
<c eflat,>2 <d f,>4 |
<eflat g,>4 <f a, d,>2\arpeggio |
<< { bflat,4 c2 } \\ { eflat,2. ~ } >> |
<< s2. \\ { <c' eflat,>2 <d g,>4 } >> |
<d a d,>2 <bflat eflat,>4 |
<a c,>2 d,4 |
<bflat' eflat,>2. ~ |
\stemDown <bflat eflat,>2. |
<bflat f bflat,>2. |
<g' eflat>2. |
\override Rest #'direction = #down r4 <d g,>2 ~ |
<d g,>4 <bflat eflat,>2
r4 \pp <d bflat,>2 \fermata
}
altoVoicePart = \new Staff \with {
instrumentName = "Alto"
midiInstrument = "Flute"
midiMaximumVolume = #1.0
\consists "Ambitus_engraver"
} { \altoVoice }
\addlyrics { \verse }
pianoPart = \new PianoStaff \with {
instrumentName = "Piano"
\override StaffGrouper #'staff-staff-spacing #'basic-distance = #12
} <<
\set PianoStaff.connectArpeggios = ##t
\new Staff = "right" \with {
midiInstrument = "Acoustic Grand"
midiMaximumVolume = #0.1
} \rightOne
\new Staff = "left" \with {
midiInstrument = "Acoustic Grand"
midiMaximumVolume = #0.1
} { \clef bass \leftOne }
>>
\score {
<<
\altoVoicePart
\pianoPart
>>
\layout { }
}
\score {
\transpose g csharp {
<<
\altoVoicePart
\pianoPart
>>
}
\midi {
\context {
\Score
tempoWholesPerMinute = #(ly:make-moment 50 4)
}
}
}
_______________________________________________
bug-lilypond mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-lilypond