Hallo Stefan!
2. Auch mit \newSpacingSection klappts immer noch nicht.
Aber so klappt’s (hab mich bemüht, es so komfortabel wie möglich zu halten):
\version "2.12.3"
%% horizontal ausdehnen: \bendLonger #X
bendLonger = #(define-music-function (parser location space) (number?)
#{
\newSpacingSection
\override Score.SpacingSpanner #'shortest-duration-space = #$space
#})
%% Ausdehnung zurücksetzen: \bendNormal
bendNormal = {
\newSpacingSection
\revert Score.SpacingSpanner #'shortest-duration-space
}
violin = \relative c'' {
c4 d e f |
\bendLonger #4.0
g2-\bendAfter #-4
\bendNormal
r | g4 f e d | c2 r |
\break
c4 d e f | \bendAfter #-4 g2 r | g4 f e d | c2 r |
\bar "|."
}
\score {
\new Staff \violin
\layout { }
}
\newSpacingSection wirkt immer sofort und für alles folgende. Deshalb muss das Spanner-Objekt gleich nach
\bendAfter wieder zurückgesetzt werden.
3. Der Befehl verkleinert zwar die Noten, nicht aber die einzelnen Notenzeilen.
Stimmt. Man würde
\stop[\start]Staff benötigen, was wieder andere Probleme mit sich bringt. Aber eine praktikable Lösung habe ich nach einigem Experimentieren gefunden: je Instrument eine normal große und eine verkleinerte Zeile anlegen und den Notentext per
\change Staff umleiten. Zusätzlich werden aber noch folgende Zutaten benötigt: Unterdrücken der leeren Systemzeilen mittels
\RemoveEmptyStaffContext und
\override VerticalAxisGroup #'remove-first = ##t sowie die Hilfsmittel
\show[\hide]MMR aus diesem Thread. Klingt erstmal viel, ist dann aber ganz easy zu handhaben:
1. Eine normale und eine kleine Zeile für das Instrument anlegen, wobei die kleine Zeile komplett mit Spacern gefüllt sein muss. Takt- und Tonart nicht vergessen.
%% normal große Zeile für AltSax1
\context Staff = "Alto-Sax 1" <<
\context Voice = "Alto-Sax 1" \AltXBA
>>
%% verkleinerte Zeile für AltSax1
\context Staff = "Alto-Sax 1 small" \with {
fontSize = #-3
\override StaffSymbol #'staff-space = #(magstep -3)
\override StaffSymbol #'thickness = #(magstep -3)
} <<
\context Voice = "Alto-Sax 1 small" {
\key bes \major
\time 4/4
s1*30
}
>>
2. Im Verlaufe des Stückes kann nun per
\change Staff = "Alto-Sax 1 small" in die kleinere Zeile und per
\change Staff = "Alto-Sax 1" wieder zurückgesprungen werden.
3. Definition der
keepAliveInterfaces nicht vergessen:
%% Makros, um \RemoveEmptyStaffContext temporär zu umgehen
showMMR = \set Staff.keepAliveInterfaces = #'( multi-measure-rest-interface )
hideMMR = \unset Staff.keepAliveInterfaces
und bei Bedarf
\showMMR in den gewünschten Stimmen verwenden, um leere Zeilen bzw. Zeilen mit ausschließlich Ganztaktpausen auch mal anzeigen zu lassen.
4. Einen Schönheitsfehler (Bug???) korrigieren: die automatische Verbalkung vor einem Zeilenumbruch funktioniert nicht. Abhilfe schafft manuelle Verbalkung:
a8[ c]Noch einige Hinweise:
Dein Editor (NoteEdit war’s doch?) stopft beharrlich die alte Syntax
\set Staff.instrument in das Dokument, weswegen wir erstmal von einer Unmenge an Warnungen überflutet werden

Das könntest du beim nächsten Mal vielleicht vorher selbst schon bereinigen

Für Klaviersysteme gibt es
PianoStaff und
PianoStaff.instrumentName (die Instrumentenbezeichnung ist dann vertikal zentriert).
Für die Rhythmusgruppe würde ich
ChoirStaff verwenden, um dort nicht auch noch durchgezogene Taktstriche zu haben.
Viele Grüße, Robert