Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: fugenkomponist am Dienstag, 7. Mai 2013, 07:12

Titel: überkreuzende Staves
Beitrag von: fugenkomponist am Dienstag, 7. Mai 2013, 07:12
Hallo,
ich hab da mal ein sehr merkwürdiges Problem: und zwar würde ich gerne die Systeme von zwei Instrumenten mitten im Stück vertauschen, so wie im (mal eben mit Laptop-Maus hingepfuschten) Anhang. Hat da jemand eine Idee?
Gruß,
Malte

Edit: es reicht, wenns nur so aussieht, die LilyPond-internen Staffs dürfen ruhig die gleichen bleiben ;)
Ach ja: heißt es Staffs oder Staves?
Titel: Re: überkreuzende Staves
Beitrag von: Be-3 am Mittwoch, 8. Mai 2013, 01:58
ich hab da mal ein sehr merkwürdiges Problem: und zwar würde ich gerne die Systeme von zwei Instrumenten mitten im Stück vertauschen, so wie im (mal eben mit Laptop-Maus hingepfuschten) Anhang. Hat da jemand eine Idee?

Ja, das ist allerdings ein merkwürdiges Problem.
Ich habe da mal eine Lösung hingebastelt, je nach endgültigem Spacing müssen die X-offset-Werte noch angepaßt werden.

Grundideen:

Das ist alles recht abenteuerlich...

\version "2.16.1"

fagott = \relative c {
  \set Staff.instrumentName = "Fagott"
  \clef bass
  c4 e g  e
  \cadenzaOn
  \hideNotes
  \once\override Glissando #'(bound-details left padding) = #0
  \once\override Glissando #'(bound-details right padding) = #0
  \once\override NoteColumn #'X-offset = #1.0
  <g, b d f a>8 \glissando
  \stopStaff
  s1
  \change Staff = "unten"
  \startStaff
  \once\override NoteColumn #'X-offset = #-0.5
  <g b d f a>8
  \cadenzaOff
  \unHideNotes
  c4 e g e
}
blech = \relative c'' {
  \set Staff.instrumentName = "Blech"
  c1
  \cadenzaOn
  s8 \hideNotes c4 c c c   \unHideNotes s8
  \cadenzaOff
  c1
}
pauke = \relative c {
  \set Staff.instrumentName = "Pauke"
  \clef bass
  c4 g c  g
  \cadenzaOn
  \hideNotes
  \once\override Glissando #'(bound-details left padding) = #0
  \once\override Glissando #'(bound-details right padding) = #0
  \once\override NoteColumn #'X-offset = #1.0
  <g b d f a>8 \glissando
  \stopStaff
  s1
  \change Staff = "oben"
  \startStaff
  \once\override NoteColumn #'X-offset = #-0.5
  <g b d f a>8
  \cadenzaOff
  \unHideNotes
  c4 g c g
}

\score {
  <<
    \new Staff = "oben" \fagott
    \new Staff = "mitte" \blech
    \new Staff = "unten" \pauke
  >>
}

Ach ja: heißt es Staffs oder Staves?

In England spricht man eher von stave/staves, in Amerika von staff/staffs/staves.
Grundsätzlich ist beides möglich, im Plural sagen die Amerikaner auch meist staves.

Viele Grüße
Torsten

Titel: Re: überkreuzende Staves
Beitrag von: SteuLoh am Mittwoch, 8. Mai 2013, 08:35
Hallo Fugenkomponist,

für was ist sowas gut, oder wo wird es angewandt.
Titel: Re: überkreuzende Staves
Beitrag von: fugenkomponist am Mittwoch, 8. Mai 2013, 12:20
Vielen Dank für diese grandiose Fertiglösung, Be-3! Mit sowas hatte ich gar nicht gerechnet, da scheinst du ja einiges reingesteckt zu haben. Mit Glissandi hatte ich auch mal rumprobiert, hatte es aber aufgegeben, weil ich keine Ahnung hatte, wie ich denen ganz genau sage, wo sie hinmüssen. Und \start/stopStaff kannte ich auch noch nicht.

Das ganze verwende ich im Vorwort (in Form einer Ouvertüre) zu unserer Orchesterzeitung; ich spiel da auf einige reale Probensituationen an ;)
Titel: Re: überkreuzende Staves
Beitrag von: Be-3 am Mittwoch, 8. Mai 2013, 13:37
Das ganze verwende ich im Vorwort (in Form einer Ouvertüre) zu unserer Orchesterzeitung; ich spiel da auf einige reale Probensituationen an ;)

In diesem Falle wäre es wohl eine Überlegung wert, solche Spielereien in einem der einschlägigen Vektorgrafik-Programme (Illustrator, Freehand usw.) zu machen. Da gibt es keinerlei Einschränkungen der Kreativität ;)
Zu empfehlen ist auch die freie Software Inkscape (http://inkscape.org). Da kannst Du sogar als Ausgangsbasis LilyPond-Output importieren (am besten im Vektor-Format SVG) und beliebig "verunstalten".

Beispiel: Siehe Anhang :D

Viele Grüße
Torsten
Titel: Re: überkreuzende Staves
Beitrag von: fugenkomponist am Mittwoch, 8. Mai 2013, 16:23
Hmja, das wär ne Überlegung wert. PDF kann Inkscape auch; aber mir ist grad aufgefallen, dass dann die eingebetteten Fonts kaputtgehn, also lass ich das lieber (dafür gibts ja -dbackend=svg). Aber ich glaub, das mach ich erst, wenn der LilyPond-Code definitiv fertig ist ;)
Titel: Re: überkreuzende Staves
Beitrag von: Pierre am Montag, 15. Juni 2015, 10:10
Hallo zusammen,

Siehe :

Gruß,  ;)
~PPS
Titel: Re: überkreuzende Staves
Beitrag von: infranator am Freitag, 14. August 2015, 16:31
Hallo Leute,
das sieht alles sehr schön aus! Gibt es eine Möglichkeit zum selben Ergebnis zu kommen, ohne den Hack mit den versteckten Noten und der Kadenz? Das würde bei mir alles durcheinander bringen.
Viele Grüße,
infranator
Titel: Re: überkreuzende Staves
Beitrag von: fugenkomponist am Freitag, 14. August 2015, 18:09
Ich denke mal, dass die versteckten Noten nötig sind (zumindest für die Glissandi im ersten Fall); je nachdem, was du unter „durcheinanderbringen“ verstehst, gäbe es verschiedene Abhilfe:
• Noten sollen im MIDI nicht klingen: Arbeite mit \tag #'score und \tag #'midi
• Noten nehmen horizontal Platz weg: Denen kann man sicher irgendwie eine Spacing-Breite 0 geben
• Kadenz bringt Taktlänge durcheinander: Probiers ohne Kadenz oder setze die measure-position von Hand später richtig.
• Irgendwas anderes: Da hängt jetzt einfach viel von deinem Anwendungsfall ab, was hast du denn vor?
Titel: Re: überkreuzende Staves
Beitrag von: infranator am Dienstag, 18. August 2015, 12:12
Es ist eine Geschmacksfrage. Ich mag keine Workarounds mit versteckten Noten, in größeren Partituren muss man die nämlich in jede Stimme eintragen. Außerdem geht es doch ganz bestimmt irgendwie ohne :-)
Titel: Re: überkreuzende Staves
Beitrag von: fugenkomponist am Dienstag, 18. August 2015, 13:16
in größeren Partituren muss man die nämlich in jede Stimme eintragen.
Nicht, wenn sie keine Zeit wegnehmen (also Länge x*0 haben).
% Ja, sowas geht tatsächlich :)
{ c'4*0 e'4 }