Edit: bevor die eigentliche Antwort kommt, möchte ich noch darauf hinweisen, dass man jetzt in deiner Anwendung schon das Problem von extra-offset sieht: Die Klammern kleben jetzt extrem nah an den darüberliegenden Systemen, weil LilyPond nicht weiß, dass sie da sind. So, jetzt gehts aber los

In diesem Fall muss die Grob-Eigenschaft after-line-breaking gesetzt werden, und zwar wird hier eine Funktion erwartet, die das Grob als Argument bekommt und dann damit was macht. In diesem Fall extra-offset setzen.
Hier erstmal die fertige Lösung:
\version "2.19.37"
\language "deutsch"
mymus= { \repeat unfold 3 c4 }
RH = \relative c'' {
< c-1 e-2 > \mymus c \mymus \break
\once \override Staff.OttavaBracket.outside-staff-priority = #'()
\once \override Staff.OttavaBracket.Y-offset = 0
\once \override Staff.OttavaBracket.after-line-breaking =
#(lambda (grob)
(let* ((orig (ly:grob-original grob))
(pieces (if (ly:grob? orig)
(ly:spanner-broken-into orig) '() )))
(if (or (null? pieces)
(eq? grob (car pieces)))
(ly:grob-set-property! grob 'extra-offset '(0 . 9.8))
(ly:grob-set-property! grob 'extra-offset '(0 . 8.2)))))
\ottava #1
c'' \mark \markup {
\column
{
\line { \box \bold A }
\line { \musicglyph #"scripts.segno" }
}
}
\mymus \break
%\ottava #0
c \mymus c \mymus
\break c \mymus c \mymus
}
LH = \relative c {
\clef bass
c \mymus c \mymus c \mymus c \mymus c \mymus
}
Akk=\chordmode {
c1 c c c c c
}
\score
{
\new PianoStaff
<<
\new ChordNames ="chords" \Akk
\new Staff="up" \RH
\new Staff ="down" \LH
>>
\layout {
}
}Und hier für Interessierte eine zeilenweise Erklärung:
\once \override Staff.OttavaBracket.after-line-breaking =after-line-breaking ist eine Funktion, die für das Grob (in diesem Fall diese eine OttavaBracket) bzw. seine Teile aufgerufen wird, nachdem LilyPond entschieden hat, wo Zeilenumbrüche gesetzt werden.
#(lambda (grob)Es geht los: die Funktion erhält das Grob als Argument. Ich nenne es „grob“, könnte aber auch z. B. „klammer“ heißen.
(let* ((orig (ly:grob-original grob))let* weist Zwischenergebnisse Namen zu. Hier z. B. wird das Original-Grob (die ungebrochene Klammer (?)) dem Namen orig zugewiesen.
(pieces (if (ly:grob? orig)
(ly:spanner-broken-into orig) '() )))Falls ein Original existiert (also ein Zeilenumbruch stattgefunden hat), wird die Liste der Teile (ansonsten eine leere Liste) dem Namen pieces zugewiesen.
(if (or (null? pieces)
(eq? grob (car pieces)))Falls die Liste der Teile leer ist (wir also nur ein Teil haben) oder unser Argument grob gleich dem ersten Teil ist, …
(ly:grob-set-property! grob 'extra-offset '(0 . 9.8))… setze extra-offset auf '(0 . 9.

, …
(ly:grob-set-property! grob 'extra-offset '(0 . 8.2)))))… ansonsten (wenn grob ein späterer Teil ist) auf '(0 . 8.2).
Ich hoff, das ist so halbwegs klar erklärt, falls nicht und interessiert, einfach nachfragen
