Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: gbehrendt am Mittwoch, 29. Juli 2015, 19:14

Titel: Automatische Veränderung der Instrumentennamen bei ausgeblendeten Notenzeilen
Beitrag von: gbehrendt am Mittwoch, 29. Juli 2015, 19:14
Hej.

Ich habe eine etwas speziellere Frage, wie mir scheint:
Wenn in einer großen Partitur einzelne Zeilen (über \RemoveEmptyStaves) ausgeblendet werden, möchte ich – jenachdem welche Instrumente einer Gruppe verbleiben – unterschiedliche Instrumentennamen für die StaffGroup einstellen, und zwar möglichst automatisch.

Konkret am Beispiel unten:
Wenn mehrere Oboen spielen, soll vorn „Ob.“ stehen, wie in Takt 2 korrekt umgesetzt. In dem Fall darf (meinetwegen) auch das Englischhorn mit einbezogen werden, wie in T. 5.
Wenn aber nur Englischhorn spielt, soll auch nur „Eh.“ stehen, ohne „Ob.“ davor (T. 3) und bei einer Oboe und Englischhorn hätte ich gern „Ob. 1“ und „Eh.“ ohne Gruppenangabe (T. 4).

Jetzt die große Frage: Kann man das irgendwie automatisieren, oder geht es nur, indem ich händisch (d.h. vermutlich erst, nachdem der endgültige Zeilenumbruch feststeht) die Instrumentennamen von Staff und StaffGroup überschreibe?

Danke für erhellende Hinweise.
– Gereon

\version "2.18.2"

musik = \relative c'' { a b c d \break }
pause = { R1 \break }

\layout { indent = 3\cm
short-indent = 1\cm
\context { \Staff  \override InstrumentName.padding = #1 \RemoveEmptyStaves }
\context { \StaffGroup \override InstrumentName.padding = #4 }
\context { \Score \override SystemStartBar.collapse-height = #4 } }

\score {
\new StaffGroup
\with { instrumentName = "" shortInstrumentName = "Ob." }  <<
\set StaffGroup.systemStartDelimiter = #'SystemStartBar
\override StaffGroup.SystemStartBar.thickness = #0

    \new Staff \with { instrumentName = "1. Oboe" shortInstrumentName = "1" }
        { \musik \musik \pause \musik \musik }

    \new Staff \with { instrumentName = "2. Oboe" shortInstrumentName = "2" }
{ \musik \musik \pause \pause \musik }

    \new Staff \with { instrumentName = "Englischhorn" shortInstrumentName = "Eh." }
{ \musik \pause \musik \musik \musik }
>> }
Titel: Re: Automatische Veränderung der Instrumentennamen bei ausgebl. Notenzeilen
Beitrag von: Arnold am Donnerstag, 30. Juli 2015, 09:19
Hallo,

das hört sich nach Scheme-Programmierung an. Genauer nach der after-line-breaking-Prozedur.
Allerdings habe ich mir noch kein Bild gemacht, wie man die entsprechenden "Grobs" abklappert und nach welcher logischen Regel man anschließend den betroffenen Text-Grob stehen läßt oder löscht.

Arnold
Titel: Re: Automatische Veränderung der Instrumentennamen bei ausgeblendeten Notenzeilen
Beitrag von: gbehrendt am Samstag, 1. August 2015, 22:06
In einem Parallelbeitrag (https://liarchiv.joonet.de/index.php?topic=2041.0 (https://liarchiv.joonet.de/index.php?topic=2041.0)) wurde ich darauf hingewiesen, dass es unüblich sei, Gruppennamen (also instrumentNames auf StaffGroup-Ebene) durch die ganze Partitur „mitzuschleppen“. Stattdessen empfehle ich im abgekürzten Vorsatz (shortInstrumentNames) die explizite Benennung aller Instrumente mit Ob. 1, Ob. 2, Eh., ... (d.h. auf Staff-Ebene), sodass keine Gruppenkürzel nötig sind. Damit hat sich zugleich auch dieses Problem erledigt.