• Willkommen im Forum „Archiviertes Lilypond Forum (2017)“.
 

Dies ist das Archiv des alten Forums (bis März 2017). Das aktuelle Forum ist unter lilypondforum.de zu finden.
This is the archive of the old forum (until March 2017). You can find the current forum at lilypondforum.de.

Hauptmenü

Automatische Veränderung der Instrumentennamen bei ausgeblendeten Notenzeilen

Begonnen von gbehrendt, Mittwoch, 29. Juli 2015, 19:14

Vorheriges Thema - Nächstes Thema

gbehrendt

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 }
>> }

Arnold

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

gbehrendt

In einem Parallelbeitrag (https://archiv.lilypondforum.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.