Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: Leonach am Dienstag, 15. Januar 2013, 21:33

Titel: Tonart ändern für mehrere Systeme gleichzeitig?
Beitrag von: Leonach am Dienstag, 15. Januar 2013, 21:33
Liebe Wissende,

gibt es eine Möglichkeit, die Tonartenbezeichnung für mehrere Systeme gleichzeitig zu ändern?

für jede Information dankbar

Leonach
Titel: Re: Tonart ändern für mehrere Systeme gleichzeitig?
Beitrag von: fugenkomponist am Dienstag, 15. Januar 2013, 21:54
Naja, du könntest Tonart und Taktart etc. in einen eigenen Ausdruck packen:
%ungetesteter Code, sollte aber ungefähr hinhauen
global = {
  \time 2/4
  s2*4
  \key d \major
  s2*2
  \time 3/4
  s2.*2
}
eins = {
  \repeat unfold 6 d'2
  d'2.
  d'
}
eins = {
  \repeat unfold 6 a'2
  a'2.
  a'
}
\score {
  <<
    \new Staff {
      <<
        \global
        \eins
      >>
    }
    \new Staff {
      <<
        \global
        \zwei
      >>
    }
  >>
}
Titel: Re: Tonart ändern für mehrere Systeme gleichzeitig?
Beitrag von: Leonach am Dienstag, 15. Januar 2013, 23:24
Das meine ich nicht. Ich möchte, daß ein Tonartwechsel in einem System vorgenommen wird, und sich sofort auch auf alle anderen auswirkt, so daß ich nicht in jedem System an passender Stelle ein Kommando eingeben muß, auch wenn es ein Makro ist.
Bei häufigen Tonartwechseln könnte man so viel sparen.
Titel: Re: Tonart ändern für mehrere Systeme gleichzeitig?
Beitrag von: Be-3 am Mittwoch, 16. Januar 2013, 08:50
und was machst Du dann mit den Stimmauszügen?
Ich würde in einem solchen Fall eine eigene "Stimme" erstellen, die alle Tempowechsel, Takt- und Tonartwechsel, Studierzeichen usw. enthält. Diese Stimme kann in jeden Staff parallel eingebunden werden.
Somit kannst Du diese Dinge zentral einstellen, aber sie sind in jeder Stimme vorhanden. Auch in den Auszügen.

Beispiel:

\version "2.14.2"

music = \relative c' {
  c4 d e f |
  g a b c |
  d c bes a |
  g f e d
}

tempokey = {
  \time 4/4
  \key c \major
  \tempo "Folle 4 = 1200"
  s1*2
  \bar "||"
  \mark \default
  \key d \minor
  s1*2
  \bar "|." }

\score {
  <<
    \new Staff { << \music \tempokey >> }
    \new Staff { << \music \tempokey >> }
    \new Staff { << \music \tempokey >> }
    \new Staff { << \music \tempokey >> }
  >>
}

Viele Grüße
Torsten
Titel: Re: Tonart ändern für mehrere Systeme gleichzeitig?
Beitrag von: barrio am Mittwoch, 16. Januar 2013, 09:19
Wirklich praktisch solche "silent voices", hatte ich bisher nur in Verbindung mit Arpeggios in polyphonen Sätzen benutzt, lässt sich für TabStaff.minimumFret bestimt auch brauchen, um Lagenwechsel zu verinfachen.
Titel: Re: Tonart ändern für mehrere Systeme gleichzeitig?
Beitrag von: Leonach am Donnerstag, 17. Januar 2013, 23:48
Solch eine unsichtbare Stimme benutze ich schon, um Tempoangaben und Übungszeichen global anzugeben. Diese "Stimme" brauche ich dann nur einmal innerhalb der Score-Umgebung. Schön wäre jetzt gewesen, wenn ich in dieser Stimme die Tonart ebenfalls so einbauen könnte, daß sie sich auf alle Systeme auswirkt, so wie \mark, \bar oder \tempo.
Titel: Re: Tonart ändern für mehrere Systeme gleichzeitig?
Beitrag von: fugenkomponist am Freitag, 18. Januar 2013, 12:05
Diese "Stimme" brauche ich dann nur einmal innerhalb der Score-Umgebung.
Das ist nicht ganz richtig. \tempo und \mark-Angaben stehen ja nur ganz am oberen Rand der Partitur und \bars gehen grundsätzlich erstmal über die ganze Höhe, egal in welchem System/welchen Systemen diese zusätzliche Stimme steht. Es wirkt sich also nicht wirklich auf alle Systeme einzeln aus, sondern auf die Ansammlung aller Systeme.
Bei Tonart-Angaben, Dynamik etc. muss dies aber für jedes System einzeln gemacht werden, deshalb brauchst du da dann die Stimme in jedem System.
Außerdem hat die Sache mit der einzelnen \tempo/\mark/\bar-Stimme noch einen Haken: Wenn du Auszüge einzelner Stimmen machst, musst du sie sowieso wieder in jedem System haben.