This seems to work automatically:
\version "2.19.20"
\new PianoStaff
\with {
\override SystemStartBrace.stencil =
#(lambda (grob)
(let* ((scale-amount 0.2)
(stil (ly:system-start-delimiter::print grob))
(scaled-stil (ly:stencil-scale stil scale-amount scale-amount))
(extent (ly:stencil-extent stil Y))
(height (- (cdr extent) (car extent))))
(ly:stencil-translate-axis
scaled-stil
(* -0.5 (- 1 scale-amount) (+ height 3.5))
Y)))
}
<<
\new Staff {c'1 }
\new Staff { c'''1 }
>>
\new PianoStaff
\with {
\override SystemStartBrace.stencil =
#(lambda (grob)
(let* ((scale-amount 0.5)
(stil (ly:system-start-delimiter::print grob))
(scaled-stil (ly:stencil-scale stil scale-amount scale-amount))
(extent (ly:stencil-extent stil Y))
(height (- (cdr extent) (car extent))))
(ly:stencil-translate-axis
scaled-stil
(* -0.5 (- 1 scale-amount) (+ height 3.5))
Y)))
}
<<
\new Staff { c1 }
\new Staff { c''''1 }
>>
\new PianoStaff
\with {
\override SystemStartBrace.stencil =
#(lambda (grob)
(let* ((scale-amount 0.9)
(stil (ly:system-start-delimiter::print grob))
(scaled-stil (ly:stencil-scale stil scale-amount scale-amount))
(extent (ly:stencil-extent stil Y))
(height (- (cdr extent) (car extent))))
(ly:stencil-translate-axis
scaled-stil
(* -0.5 (- 1 scale-amount) (+ height 3.5))
Y)))
}
<<
\new Staff { c,1 }
\new Staff { c'''''1 }
>>
\new PianoStaff
\with {
\override SystemStartBrace.stencil =
#(lambda (grob)
(let* ((scale-amount 1.5)
(stil (ly:system-start-delimiter::print grob))
(scaled-stil (ly:stencil-scale stil scale-amount scale-amount))
(extent (ly:stencil-extent stil Y))
(height (- (cdr extent) (car extent))))
(ly:stencil-translate-axis
scaled-stil
(* -0.5 (- 1 scale-amount) (+ height 3.5))
Y)))
}
<<
\new Staff { c,,1 }
\new Staff { c''''''1 }
>>