Stichnoten: Zusammenstoß von Pausen [GELÖST]

Begonnen von ingmar, Montag, 31. August 2020, 20:54

« vorheriges - nächstes »

ingmar

Hallo,

unten ein leicht modifiziertes Beispiel zum Thema Stichnoten aus der Notationsreferenz. Ich habe zur Hauptstimme zwei Varianten – einmal lege ich ausdrücklich eine Voice an (B), einmal nicht (A).

In letzterem Fall läuft die Sache anstandslos, kommentiere ich aber die letzte Zeile aus und die vorletzte ein (!), kommt eine für mich unerwartete Warnung: "Zusammenstoß von Pausen kann nicht aufgelöst werden: Richtung von Pausen nicht gesetzt"

Ursprünglich hatte ich genau deshalb die Voice-Angabe eingefügt, um der Hauptstimme einen Namen geben zu können, damit ich eben deren Pausen vertikal verschieben kann. Aber ich stolpere schon hier.

Weiß jemand weiter? : - ) 


\version "2.20.0"
quoted-music = \relative c'' {
r2 r8 d16( \f f e g f a)
g8 g16 g g2.
}
main-music-A = \relative { r1 g'2 c, }
main-music-B = \new Voice \relative { r1 g'2 c, }

\addQuote "quoted" { \quoted-music }

\new Voice="main" \relative c'' <<
\cueDuring #"quoted" #UP { s1 }
  \main-music-A
\main-music-B
>>


Gruß, danke,
--ingmar

ingmar

Ja, das ist zugegebenermaßen ziemlich abstrakt; ich selber komme immer aufs Neue ins Straucheln, wenn ich es wieder mal versuche. Kein Wunder, dass sich in sechs Wochen niemand meiner erbarmt hat!

Ich versuche es noch einmal.

Ich habe eine Variable mit einer Hauptstimme (main-music) und eine andere mit einer zweiten Stimme (quoted-music). Wie der Name schon verrät, möchte ich nun die zweite Stimme in der Pause der Hauptstimme zitieren – in Form von Stichnoten. Das funktioniert mit dem oben gegebenen Minimalbeispiel.

Ich möchte nun aber die Voice der Hauptstimme explizit anlegen – warum, folgt gleich. Per \new Voice krieg ich dann die Fehlermeldung, die in meinem ersten Beitrag beschrieben ist. Frage: Warum?

Warum die Voice explizit anlegen? Dazu muss ich ausholen: Das grundlegende Problem von Stichnoten, in dieser Art aufgesetzt, ist, dass die Pause in der Hauptstimme mit den Stichnoten kollidieren kann. Ich muss sie meist vertikal verschieben; das mach ich per
      \override MultiMeasureRest.staff-position = <irgendein Integer>
      \override Rest.staff-position = <irgendein Integer>

Das Problem nun: Diese Verschiebung wirkt sich halt auch auf die Pausen der zitierten Stimme aus. Ich hoffe, das vermeiden zu können, daher will ich meiner Hauptstimme einen Namen geben, um sie isoliert ansprechen zu können. Benennen kann ich nur, was ich selbst anlege, darum also...

Das Beispiel oben ist mein Versuch dazu, der halt leider fehlschlägt. Geht es vielleicht irgendwie ganz anders?

Ich weiß, eine kompliziertes Thema. Alleine komme ich einfach nicht weiter.

Danke, Gruß,
--ingmar

harm6

Hallo ingmar,

Zitat
      \override MultiMeasureRest.staff-position = <irgendein Integer>
      \override Rest.staff-position = <irgendein Integer>

kannst Du mal posten wie Du diese overrides einsetzt?

In folgendem scheint der override nicht auf die zitierte Stimme durchzuschlagen. Oder übersehe ich etwas?


\version "2.20.0"

quoted-music =
  \relative c'' {
    r2 r8 d16( \f f e g f a)
    g8 g16 g g2.
  }
 
\addQuote "quoted" \quoted-music
 
mus = \relative { \override Rest.staff-position = -12 r1 g'2 c, }
main-music-A = \mus
main-music-B = \new Voice \mus

\new Voice = "main"
  \relative c''
    <<
      \cueDuring #"quoted" #UP { s1 }
      \main-music-A
      %\main-music-B
    >>


Gruß,
  Harm

P.S.
Nur der Vollständigkeit wegen:
      \override Rest.staff-position = <irgendein Integer>
funktioniert auch mit nicht ganzzahligen Werten.

ingmar

#3
Hallo, danke fürs Interesse...

Zitat von: harm6 am Dienstag, 13. Oktober 2020, 10:13kannst Du mal posten wie Du diese overrides einsetzt?
Ich mach es meist ungefähr so:


\version "2.20.0"

quoted-music =
  \relative c'' {
    r2 r8 d16( \f f e g f a)
    g8 g16 g g2.
  }
 
\addQuote "quoted" \quoted-music
 
mus = \relative { r1 g'2 c, }
main-music-A = \mus
main-music-B = \new Voice \mus
amount-of-vertical-shift = -4

\new Voice = "main"
  \relative c''
    <<
      \cueDuring #"quoted" #UP {
        \override Staff.MultiMeasureRest.staff-position = #amount-of-vertical-shift
        \override Staff.Rest.staff-position = #amount-of-vertical-shift
{ s1 }
\revert Staff.MultiMeasureRest.staff-position
\revert Staff.Rest.staff-position
\cueClefUnset
      }
      \main-music-A
      %\main-music-B
    >>


Das verschiebt die Pausen problemlos vertikal nach Wunsch – aber es nimmt eben auch die Pause der zitierten Stimme mit.


Gruß,
--ingmar

ingmar


harm6

Solange Du
    \override Staff.Rest.staff-position = ...
wird der override auch Staff-weit angewendet.

Versuch mal
    \override CueVoice.Rest.staff-position = ...

Bei mir klappts.


Gruß,
  Harm

ingmar

#6
Zitat von: harm6 am Dienstag, 13. Oktober 2020, 16:10
Versuch mal
    \override CueVoice.Rest.staff-position = ...
Ja, das verschiebt die Pausen der zitierten Stimme. Normalerweise will man aber die Pausen der Hauptstimme aus dem System raus schieben, denn die kollidiert ja nicht nur mit den Pausen, sondern auch mit den Noten der zweiten Stimme.

Mein Problem war daher das Ansprechen der Hauptstimme.

Aber das ist auch schon die Lösung: Ich verschiebe auf bekannte Weise alles, und anschließend setze ich mit deiner Methode die zitierte Stimme gleich wieder auf Null. Das ist nicht die eleganteste, aber eine einfache und praktikable Lösung – und sie funktioniert!

Danke.
--ingmar