Autor Thema: [Gelöst] Ausrichtung "ShortInstrumentName"  (Gelesen 318 mal)

Joei

  • Newbie
  • *
  • Beiträge: 17
[Gelöst] Ausrichtung "ShortInstrumentName"
« am: Mittwoch, 12. September 2018, 10:54 »
Moin,

kann ich die die Ausrichtung des shortInstrumentNames unabhängig vom instrumentName modifizieren?

\override shortInstrumentName #'self-alignment-X = #-0.1
funktioniert jedenfalls nicht...

Ver. 2.19.32

Joei

« Letzte Änderung: Freitag, 14. September 2018, 22:59 von Joei »

Malte

  • Sr. Member
  • ****
  • Beiträge: 395
Antw:Ausrichtung "ShortInstrumentName"
« Antwort #1 am: Mittwoch, 12. September 2018, 13:34 »
Beide Kontexteigenschaften, instrumentName und shortInstrumentName, sorgen dafür, daß ein Grob namens InstrumentName erzeugt wird. Auf das mußt du deinen \override anwenden.
Fugen komponier ich so selten …

Joei

  • Newbie
  • *
  • Beiträge: 17
Antw:Ausrichtung "ShortInstrumentName"
« Antwort #2 am: Mittwoch, 12. September 2018, 14:22 »
aber wenn ich das Grob InstrumentName modifiziere - dann werden doch sowohl der short- als auch der "long"instrumentName verändert - die Frage war ja, ob ich das unabhängig von einander machen kann... oder verstehe ich jetzt was falsch?

Joei

  • Newbie
  • *
  • Beiträge: 17
Antw:Ausrichtung "ShortInstrumentName"
« Antwort #3 am: Mittwoch, 12. September 2018, 14:51 »
zum Hintergrund meiner Frage (falls es - wie es aussieht - mit meiner angedachten Option nicht funktioniert...):

Ich habe eine Partitur mit 2 Chören und Orchester. Auf Seite 1 sollen die "Langnamen" (auch der einzelnen Chorstimmen) inkl. einer um 90° gedrehten ChoirStaff Benamumg erfolgen, später nur noch ShortNames. Außer auf der ersten Seite hätte ich aber gerne lediglich die beiden Chorgruppen benannt (ohne Einzelstimmen) - allerdings erfolgt die Beschriftung des ChoirStaffs logischerweise nach links versetzt - ich hätte die aber gerne Vertikal ausgerichtet mit den übrigen Einzelstimmen.

Keine Ahnung, ob das jetzt verständlich war :(

V1
V2

Cl1
Cl2

C
H
O
R
1 (aber 90°gedreht)

C
H
O
R
2 (aber 90°gedreht)

BC

so ungefähr..

Malte

  • Sr. Member
  • ****
  • Beiträge: 395
Antw:Ausrichtung "ShortInstrumentName"
« Antwort #4 am: Mittwoch, 12. September 2018, 15:03 »
aber wenn ich das Grob InstrumentName modifiziere - dann werden doch sowohl der short- als auch der "long"instrumentName verändert - die Frage war ja, ob ich das unabhängig von einander machen kann... oder verstehe ich jetzt was falsch?
Ich hatte ganz einfach das entscheidende Wort „unabhängig“ überlesen ;)

Hm … eigentlich komisch, daß LilyPond nicht selbst den Namen für den Chor weiter nach links rückt … Und dann ist auch dein Anliegen eine sehr gute Frage. Es scheint ja nicht mal ein einfaches \once \override tatsächlich nur einmaligen Effekt zu haben.
Ich habe jetzt leider keine Zeit, mich tiefer in das Problem zu vergraben, vielleicht hat ja jemand anders eine Idee …
Fugen komponier ich so selten …

harm6

  • Sr. Member
  • ****
  • Beiträge: 430
Antw:Ausrichtung "ShortInstrumentName"
« Antwort #5 am: Mittwoch, 12. September 2018, 22:05 »
Wie Malte schon sagte:
"Beide Kontexteigenschaften, instrumentName und shortInstrumentName, sorgen dafür, daß ein Grob namens InstrumentName erzeugt wird."

Betonung sollte auf ein grob liegen, zumindest ist es nur eines bevor der Zeilenumbruch ins Spiel kommt. Dieses InstrumentName-grob ist ein spanner! In der Regel ein also gebrochener spanner. Was gedruckt wird wird durch die grob-properties 'text und 'long-text bestimmt. diese werden ihrerseits idR durch die oben erwähnten context-properties gesetzt.

Um die einzelnen Teile dieses spanners gesondert anzusprechen muß man diese Teile finden, sortieren und die richtigen ansprechen.
Siehe auch:
http://lilypond.org/doc/v2.19/Documentation/extending-big-page#difficult-tweaks

Zitat von: Joei
Keine Ahnung, ob das jetzt verständlich war
Nein!
Warum kein code example?

Da ich zu blöd bin zu verstehen, was Du willst, hier der obige Ansatz mit Farben:

\version "2.19.82"

foo =
\override InstrumentName.color =
#(lambda (grob)
  (let* ((orig (ly:grob-original grob))
         (siblings (if (ly:grob? orig)
                       (ly:spanner-broken-into orig) '() ))
         ;; überflüssig! nur der Vollständigkeit halber:
         (long-text (ly:grob-property grob 'long-text #f))
         (text (ly:grob-property grob 'text #f)))
         
    (if (and text (pair? siblings) (member grob (cdr siblings)))
        red)))
       
\new Staff
\with {
  instrumentName = "Full Name"
  shortInstrumentName = "short"
  \foo
}
\repeat unfold 100 r2

-Harm



Malte

  • Sr. Member
  • ****
  • Beiträge: 395
Antw:Ausrichtung "ShortInstrumentName"
« Antwort #6 am: Donnerstag, 13. September 2018, 08:15 »
Betonung sollte auf ein grob liegen, zumindest ist es nur eines bevor der Zeilenumbruch ins Spiel kommt.
Das erklärt natürlich, warum \once \override sich trotzdem auf alle Teile bezieht. Da hätte ich mal drauf kommen sollen.
Fugen komponier ich so selten …

Joei

  • Newbie
  • *
  • Beiträge: 17
Antw:Ausrichtung "ShortInstrumentName"
« Antwort #7 am: Donnerstag, 13. September 2018, 16:11 »
Lieber Harm,

ich dachte ja, meine Idee der getrennten Behandlung von long- und shortname wäre machbar, dann wäre
das Beispiel eher verkomplizierend gewesen.

Ich muss gestehen, dass mir das Hintergrundwissen fehlt um Deinen Code soweit zu analysieren,
dass ich verstehe, wass Du da gemacht hast :(

Hier also ein Beispiel und das was ich erreichen möchte:

\version "2.19.58"


einzel = \new Staff
\with {
  instrumentName = "LongEinzel"
  shortInstrumentName = "A"
}
\repeat unfold 50 r1

gruppe = \new StaffGroup
\with {
  instrumentName = \markup \rotate #90 "Chor II_l"
  shortInstrumentName = \markup \rotate #90 "Chor II_s"
}

<<
  \new Staff
  \with {
    instrumentName = "long"
    shortInstrumentName = " "
  }
  \relative { \repeat unfold 50 r1 }
  \new Staff   \with {
    instrumentName = "long"
    shortInstrumentName = " "
  }
  \relative {\repeat unfold 50 r1 }
>>

\score {

  <<
    \einzel
    \gruppe
  >>

  \layout {
    indent = 2.5\cm
    short-indent = 2\cm


    \context {
      \Staff
       \override InstrumentName #'self-alignment-X = #0.5
   
    }

    \context {
      \StaffGroup
     \override InstrumentName #'self-alignment-X = #-0.5
     }
  }
}


Im ersten System schiebe ich den langen InstrumentName der Gruppe mit \override InstrumentName #'self-alignment-X = #-0.5 nach links, so kollidiert er nicht mit den Staffnamen, die ich im ersten System auch noch haben möchte. Später möchte ich dort nur noch den Gruppennamen, allerdings in einer Flucht mit den Staffnamen der "nicht-Gruppen-Staffs". Dafür hätte ich den Inhalt von InstrumentName und ShortInstrumentName gleich gelassen und für den StaffGroup-Context den einen verschoben, den anderen nicht.



Ich weiß, immernoch kompliziert - aber ich bin zu blöd das schlichter zu formulieren :(

Joei

Joei

  • Newbie
  • *
  • Beiträge: 17
Antw:Ausrichtung "ShortInstrumentName"
« Antwort #8 am: Freitag, 14. September 2018, 22:59 »
Lösung:

  shortInstrumentName = \markup \combine " " \translate #'(2.2 . 0) \rotate #90  "Chor II"