Autor Thema: überkreuzende Staves  (Gelesen 4354 mal)

fugenkomponist

  • Member
überkreuzende Staves
« 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?
« Letzte Änderung: Dienstag, 7. Mai 2013, 07:14 von fugenkomponist »

Be-3

  • Member
Re: überkreuzende Staves
« Antwort #1 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:
  • Die Stimmen wechseln per \change Staff die Staves
  • Der Übergangsbereich wird als Cadenza ausgeprägt, damit die Taktnummern nicht durcheinander kommen und man frei und problemlos allerlei Notendauern unterbringen kann
  • Im Übergangsbereich werden die beiden kreuzenden Staves mit \stopStaff und \startStaff vorübergehend ausgeschaltet
  • Die überkreuzenden "Notenlinien" sind mißbrauchte Glissandi
  • Die Glissandi "hängen" an unsichtbaren Akkorden, deren Noten auf den Linien liegen
  • Das rechte und linke Padding der Glissandi wird auf 0 gesetzt, damit sie genau auf den Notenlinien beginnen und enden
  • Die NoteColumns der Glissando-Hilfsakkorde werden per X-offset so zurechtgeschoben, daß die Glissandi an den Unterbrechungsstellen der Notenlinien anfangen/aufhören

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

« Letzte Änderung: Mittwoch, 8. Mai 2013, 02:09 von Be-3 »

SteuLoh

  • Member
Re: überkreuzende Staves
« Antwort #2 am: Mittwoch, 8. Mai 2013, 08:35 »
Hallo Fugenkomponist,

für was ist sowas gut, oder wo wird es angewandt.

fugenkomponist

  • Member
Re: überkreuzende Staves
« Antwort #3 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 ;)

Be-3

  • Member
Re: überkreuzende Staves
« Antwort #4 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. 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

fugenkomponist

  • Member
Re: überkreuzende Staves
« Antwort #5 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 ;)
« Letzte Änderung: Mittwoch, 8. Mai 2013, 16:26 von fugenkomponist »

Pierre

  • Member
Re: überkreuzende Staves
« Antwort #6 am: Montag, 15. Juni 2015, 10:10 »

infranator

  • Member
Re: überkreuzende Staves
« Antwort #7 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

fugenkomponist

  • Member
Re: überkreuzende Staves
« Antwort #8 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?

infranator

  • Member
Re: überkreuzende Staves
« Antwort #9 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 :-)

fugenkomponist

  • Member
Re: überkreuzende Staves
« Antwort #10 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 }