A way to do it is to use Dots.extra-offset.
You can do some good things by putting the dot column engraver in the Voice context rather than the Staff context, but I could not get that to help here in my quick attempt. Others may know more.
\version "2.19.61"
\paper {
ragged-last = ##f
indent = 0
}
voiceFirst = {
<es as>2. |
% m. 36
% -----
\clef "treble"
\voiceOne
<ges' bes' des''>2.~\arpeggio |
\once \override Dots #'extra-offset = #'(-4 . 0)
<ges' bes' des''>2. |
<ges' bes' des''>2.~ |
<ges' bes' des''>4 r4 r4 |
\bar "|."
}
voiceSecond = {
s2. |
% m. 36
% -----
\voiceTwo
\clef "treble"
<ges des'>2.~\arpeggio |
\once \override Dots #'extra-offset = #'(-4 . 0)
<ges des'>2. |
<ges des'>2.~ |
<ges des'>4 s2 |
\bar "|."
}
voiceThird = {
s2. |
% m. 36
% -----
\voiceFour
\stemUp
\clef "treble"
s2. |
\once \override NoteColumn.force-hshift = #3
%\once \override Arpeggio.padding = #0.25
<des'' des'>4\arpeggio-- r4 r4 |
s2. |
s2. |
\bar "|."
}
\score {
\new Staff \with { \consists "Span_arpeggio_engraver" }
<<
\set Staff.connectArpeggios = ##t
\clef "bass"
\time 3/4
\key ges \major
\new Voice { \voiceOne \voiceFirst }
\new Voice { \voiceTwo \voiceSecond }
\new Voice { \voiceThree \voiceThird }
>>
\layout {
\context {
\Staff
%\remove "Dot_column_engraver"
}
\context {
\Voice
%\consists "Dot_column_engraver"
}
}
}