Verschmelzung von Notenköpfen vermeiden

Begonnen von gaerchle, Donnerstag, 30. November 2023, 10:01

« vorheriges - nächstes »

gaerchle

Liebe Experten,

ich würde gerne das Verschmelzen von zwei Noten vermeiden.
Es treffen eine Achtel ais aus der einen Stimme mit einer Achtel as aus der anderen Stimme zusammen.\version "2.22.1"
<< { b'8 ais' b'4 } \\ { <as' f'>8 <as' f'> <as' f'>4 } >>
Leider verschmelzen sie.
Habe mit es shiftOn oder shiftOff probiert, das geht aber nicht.
Wer weiß Rat?
Danke

rgree

Sowas sollte gehen :

<< {  b'8 ais' b'4 } \\ { <as' f'>8[  s8*1/2 <as' f'>] <as' f'>4 } >>
Gruß,
Reinhard

gaerchle

ja cool. Das geht.
Was ist das denn für eine Funktion? Habe ich noch nie gesehen.

rgree

ausgeschrieben sähe es so aus :

<< {  b'8 ais' b'4 } \\ { <as' f'>8[  s8*1/2 <as' f'>8*1/2 ] <as' f'>4 } >>(Das 2. Mal kann man "8*1/2" weglassen, weil die Länge automatisch vom vorherigen genommen wird).

Der Ausdruck "s8*1/2 <as' f'>8*1/2" heißt in etwa :
"teile die Stelle, an der das Achtel stehen soll in zwei Hälften,
die 1. Hälfte belege mit einem Leerzeichen, die 2. mit dem gewünschten Akkord".

Im Takt zählt der Ausdruck aber immer noch als 1/8.

Rudi Guggt

Hallo,

wenn du nicht in einem speziellen Genre unterwegs bist, wo du wirklich ais und as brauchst, würde sich auch die enharmonische Verwechslung von as->gis bzw. ais-> b oder sogar ceses anbieten...

Gruß
Rudi

Malte

#5
Zitat von: rgree am Donnerstag, 30. November 2023, 10:18Sowas sollte gehen :

<< {  b'8 ais' b'4 } \\ { <as' f'>8[  s8*1/2 <as' f'>] <as' f'>4 } >>
Gruß,
Reinhard
Diese Variante hat einen ganz entscheidenden Nachteil: Die untere Stimme wird um eine 16tel nach hinten verschoben, also in der Zeit (rhythmisch), nicht nur auf dem Papier (optisch). Das bedeutet nicht nur, dass das MIDI-Playback falsch ist, sondern vor allem auch, dass je nach horizontalem Spacing (abhängig z. B. von den Zeilenumbrüchen) der Abstand zwischen Ober- und Unterstimme unterschiedlich ausfällt, siehe Bild im Anhang.

Stattdessen würde ich mit NoteColumn.force-hshift arbeiten, was genau dafür da ist, Stimmen um einen festen Betrag optisch gegeneinander zu verschieben.

\version "2.22.1"

\markup "Lösung von Reinhard (rhythmische Verschiebung)"

musik = << {  b'8 ais' b'4 } \\ { <as' f'>8[  s8*1/2 <as' f'>] <as' f'>4 } >>

\score {
  \musik
}
\score {
  \layout {
    ragged-last = ##f
  }
  \musik
}

\markup "meine Lösung 1: NoteColumn.force-hshift"

musik = <<
  {
    b'8
    \once \override NoteColumn.force-hshift = -1.25
    ais' b'4
  } \\ {
    <as' f'>8 <as' f'> <as' f'>4
  }
>>

\score {
  \musik
}
\score {
  \layout {
    ragged-last = ##f
  }
  \musik
}

\markup "meine Lösung 2: zusätzlich Vorzeichen richtig gesetzt"

musik = <<
  {
    b'8
    \once \override NoteColumn.force-hshift = -2.5
    ais' b'4
  } \\ {
    <as' f'>8
    \once \override Accidental.X-extent = #'(0 . 0)
    \once \override Accidental.extra-offset = #'(3.75 . 0)
    <as'! f'>
    \once \omit Accidental
    <as' f'>4
  }
>>

\score {
  \musik
}
\score {
  \layout {
    ragged-last = ##f
  }
  \musik
}

Edit: Vielleicht sollte ich in der zweiten Lösung das Zusammenwirken der einzelnen Schritte erklären:

• force-hshift schiebt den Notenkopf der Oberstimme nach links.
• Mit dem Ausrufezeichen erzwinge ich das ♭ in der Unterstimme.
• Das ♭ soll aber nach links keinen zusätzlichen Platz brauchen, weil es nachher dort nicht mehr stehen wird, also setze ich den X-extent (horizontalen Platzverbrauch) auf 0. Dadurch werden das ♯ und das ♭ übereinandergedruckt.
• Nun verschiebe ich mit extra-offset das ♭ in die Lücke zwischen den Notenköpfen.

Dies ist einer der wenigen Anwendungsfälle für extra-offset. Da extra-offset die Zeichen nur optisch verschiebt, das Spacing aber gleich lässt, ist der dritte Schritt wichtig. Ansonsten würde nämlich bei engem Spacing Platz links vom ♯ gehalten für ein ♭, was dort optisch gar nicht mehr steht.