Vorschlagnoten - Bögen waagrecht gestalten (gelöst)

Begonnen von Manuela, Donnerstag, 3. August 2017, 13:03

« vorheriges - nächstes »

Manuela

Hi,

in alten Scores sind die Bögen der Vorschlagnoten meist horizontal positioniert. Lilypond macht das leider in vielen Fällen nicht so, deswegen habe ich jetzt eine kleine Funktion geschrieben, die horizontale Bögen produziert.

Die Funktion ist sehr simpel und erlaubt nur einen einzigen Eingabeparameter, außerdem berücksichtigt sie nicht den Abstand zur nachfolgenden Note, der z.B. durch ein Vorzeichen größer werden kann. Vielleicht mag ja Harm oder Malte die Funktion verbessern/erweitern, oder gibt es eh irgendwo einen Parameter, der genau das bewirkt, was ich mir vorstelle, nämlich grundsätzlich "waagrechte" Vorschlagbögen?

Hier der Code:

\version "2.19.62"

myVor =
#(define-scheme-function (amount)
   (number?)
   (let ((innen (- amount 0.7)))
     #{
       \once \override Slur.control-points =
       #`((0.5 . ,amount) (1 . ,innen) (1.5 . ,innen) (2 . ,amount))
     #}
     )
   )

\paper {
  ragged-right = ##t
  indent = #0
  line-width = 50\mm
}

\markup { "default Acciatura" }
\relative c'' {
  \autoBeamOff
  \omit Staff.TimeSignature
  \acciaccatura { f8 } c' \acciaccatura { f,,8 } c'
  \appoggiatura { f } c' \appoggiatura { f,, } c'
}

\markup { "Acciatura&Appoggiatura mit \myVor" }
\relative c'' {
  \myVor #1.4
  \acciaccatura { f8 } c'
  \myVor #1.4
  \appoggiatura { f, } c'
}


Hier die Vorschlagnoten aus dem alten Score (der in einem anderen Thread schon erwähnte Waldteufel):
Danke für eure Hilfe
viele Grüße
-- Manuela

Malte

Ich hab mal eben details.max-slope auf 0 gesetzt, aber merkwürdigerweise ist die Steigung damit noch nicht genau 0:\version "2.19.64"

startAcciaccaturaMusic =  {
  \once \override Slur.details.max-slope = 0
  <>\startGraceSlur
  \temporary \override Flag.stroke-style = #"grace"
}

\relative {
  \autoBeamOff
  \acciaccatura f''8 c'
  \acciaccatura f,,8 c'
  \acciaccatura f8 c'
  \acciaccatura f,,8 c'
}

Jedenfalls ist startAcciaccaturaMusic der richtige Ort, um Sachen zu machen, die alle Vorschläge betreffen sollen (nur die erste Zeile der Definition ist von mir, der Rest aus ly/grace-init.ly).

Mehr zu den Einstellungsmöglichkeiten von Bögen findest du an der entsprechenden Stelle der IR.

Manuela

Zitat von: Malte am Freitag,  4. August 2017, 08:05
Jedenfalls ist startAcciaccaturaMusic der richtige Ort, um Sachen zu machen, die alle Vorschläge betreffen sollen (nur die erste Zeile der Definition ist von mir, der Rest aus ly/grace-init.ly).

Mehr zu den Einstellungsmöglichkeiten von Bögen findest du an der entsprechenden Stelle der IR.

Malte, danke für die Tipps  :)
Danke für eure Hilfe
viele Grüße
-- Manuela

harm6

#3
Hallo Manuela,

ich habe
http://ks.imslp.net/files/imglnks/usimg/d/df/IMSLP08821-Waldteufel_Patineurs.pdf
mal im Hinblick darauf durchgeschaut, inwieweit sich eine Regelhaftigkeit für die Setzung der legato-Bögen für diesen Druck (Durand) ableiten läßt.
Wirklich waagerecht scheint es nur dann zu sein, wenn es eine Vorschlagsnote gibt und die Hauptnote deutlich höher ist.
-> cut-3.png
Bei zwei Vorschlagsnoten wird der Bogen meistens angepasst gesetzt
-> cut-1.png
Wenn die Vorschlagsnote höher ist als das Ziel wird der Bogen angepasst, zumindest tendentiell.
-> cut-2.png

Ich halte das für wirr.

Auch hier wieder die Frage, willst Du wirlich alle Schwächen und Fehler aus diesem Druck übernehmen?
Gerade cut-2.png ist fürchterlich. Ich habe die Bögen auf den ersten Blick sogar mit Hilfslinien verwechselt! Auch wenn man einschränkend in Betracht ziehen muß, daß die Scan-Qualität möglicherweise nicht so dolle ist. Aber eigentlich glaube ich das nicht. Durand liefert von Haus aus oftmals einen schlechten Druck...

Und wie ist es mit cut-4.png? Schlichtweg falsch zumindest aber extrem eigenbrötlerich

Nichtsdestotrotz, falls Du wirklich solche waagerechten kleinen Bögen für eine singuläre Vorschlagsnote haben willst, warum nicht LaissezVibrerTie verwenden?
Im Durand-Druck gibts da sowieso keinen Unterschied im Druckbild...

startMyGrace =  {
    \temporary \override Flag.stroke-style = #"grace"
}

stopMyGrace =  {
    \revert Flag.stroke-style
}

myGrace =
#(def-grace-function startMyGrace stopMyGrace
   (_i "Create an acciaccatura from the following music expression"))

{ \myGrace f''_\laissezVibrer c''' }


Gruß,
  Harm

EDIT:
[Code-Beispiel erweitert]

Manuela

#4
Hallo Harm,

danke für deine Antwort.

Zitat von: harm6 am Freitag,  4. August 2017, 14:11
Wirklich waagerecht scheint es nur dann zu sein, wenn es eine Vorschlagsnote gibt und die Hauptnote deutlich höher ist.
-> cut-3.png
Bei zwei Vorschlagsnoten wird der Bogen meistens angepasst gesetzt

Wenn 2 Vorschlagnoten sind, ist die Sachlage anders, klar.

Die Standardeinstellung von Lilypond in dem oben erwähnten Fall gefällt mir jedenfalls überhaupt nicht.


Zitat von: harm6 am Freitag,  4. August 2017, 14:11Nichtsdestotrotz, falls Du wirklich solche waagerechten kleinen Bögen für eine singuläre Vorschlagsnote haben willst, warum nicht LaissezVibrerTie verwenden?
Im Durand-Druck gibts da sowieso keinen Unterschied im Druckbild...

Gute Idee, werde ich mal ausprobieren.

Update: Harm, danke, die Lösung mit LaissezVibrerTie ist perfekt.
Ich habe dann noch versucht, eine Funktion für \appoggiatura zu definieren, mir ist aber nichts besseres eingefallen als

myApp =
#(def-grace-function stopMyGrace stopMyGrace
   (_i "Create an acciaccatura from the following music expression"))


Mein Versuch mit

myApp =
#(def-grace-function startAppoggiaturaMusic stopAppoggiaturaMusic
   (_i "Create an acciaccatura from the following music expression"))


ergibt zwei Bögen.

Danke für eure Hilfe
viele Grüße
-- Manuela

Manuela

#5
myApp =
#(def-grace-function startGraceMusic stopGraceMusic
   (_i "Create an acciaccatura from the following music expression"))


so klappt es  :)

Noch ein Update.

Diese Funktion kann ich sparen und durch \grace ersetzen.

{ \grace f''8_\laissezVibrer cisis''' }
Danke für eure Hilfe
viele Grüße
-- Manuela

harm6

ZitatmyApp =
#(def-grace-function startGraceMusic stopGraceMusic
   (_i "Create an acciaccatura from the following music expression"))

[...]

kann ich sparen und durch \grace ersetzen.

Natürlich, denn dieses myApp hat das built-in grace dupliziert.

Was Du zu Deinen anderen 'myApp'-Versuchen schreibst bleibt allerdings völlig unklar und nicht nachvollziehbar.
Bitte benenne jeden Versuch anders und gebe kompilierbare Code-Beispiele.

Dies hier:
Zitat
Mein Versuch mit
myApp =
#(def-grace-function startAppoggiaturaMusic stopAppoggiaturaMusic
   (_i "Create an acciaccatura from the following music expression"))


ergibt zwei Bögen.
ist wirr. Diese Definition dupliziert (bis auf den doc-string) das built-in appoggiatura und gibt unter Garantie keine zwei Bögen.

Mein eigenes myGrace von oben ist tatsächlich neu. Defacto setzt es ausschließlich Flag.stroke-style sonst nichts.
Damit hat es im Gegensatz zu acciaccatura keinen Bogen und im Unterschied zu grace den Strich durch das Fähnchen.
Über Namen und doc-string kann man sich natürlich streiten ...

Gruß,
  Harm

Manuela

\version "2.19.62"

myApp =
#(def-grace-function startAppoggiaturaMusic stopAppoggiaturaMusic
   (_i "Create an acciaccatura from the following music expression"))

{ \myApp f''8_\laissezVibrer c''' }


Ich sehe zwei Bögen, vielleicht habe ich auch zu viel getrunken  ;)
Danke für eure Hilfe
viele Grüße
-- Manuela

harm6

Zitat

\version "2.19.62"

myApp =
#(def-grace-function startAppoggiaturaMusic stopAppoggiaturaMusic
   (_i "Create an acciaccatura from the following music expression"))

{ \myApp f''8_\laissezVibrer c''' }



Ich sehe zwei Bögen,

Ja, und ich schrieb:
ZitatDiese Definition [...] gibt unter Garantie keine zwei Bögen.

Du siehst zwei Bögen, weil Du zwei geschrieben hast.
Dieses 'myApp' erzeugt allerdings genau einen Bogen.

{ \acciaccatura  f''8\(_\laissezVibrer c'''\) }
erzeugt sogar drei Bögen ;)

Zitatvielleicht habe ich auch zu viel getrunken

Apropos, ...

Bis später...
  Harm

Manuela

Jetzt wollte ich 4 Bögen erzeugen  ;D

\version "2.19.62"

myApp =
#(def-grace-function startAppoggiaturaMusic stopAppoggiaturaMusic
   (_i "Create an acciaccatura from the following music expression"))

{ \acciaccatura  f''8(\(_\laissezVibrer c''')\)  }


sind aber auch nur drei...

Wahrscheinlich weil laissezVibrer auch einen Slur erzeugt.

Na dann prost  ;)
Danke für eure Hilfe
viele Grüße
-- Manuela

harm6

Sechs ist glaub ich das Maximum (ohne zusätzliche Stimmen)


\score {
  {
  \acciaccatura  f''8^\=1(_\=2(_\=1\(^\=2\(\laissezVibrer
  c'''_\=1\)^\=2\)^\=1)_\=2)\repeatTie
  }
  \layout { \override Score.GraceSpacing.spacing-increment = 10 }
}


;)


Gruß,
  Harm

Malte

Zitat von: harm6 am Freitag,  4. August 2017, 19:28
Mein eigenes myGrace von oben ist tatsächlich neu. Defacto setzt es ausschließlich Flag.stroke-style sonst nichts.
Damit hat es im Gegensatz zu acciaccatura keinen Bogen und im Unterschied zu grace den Strich durch das Fähnchen.
Über Namen und doc-string kann man sich natürlich streiten ...
Also myGrace = slashedGrace? Das gibts nämlich schon ;)

harm6

ZitatAlso myGrace = slashedGrace? Das gibts nämlich schon
Ooops, in der Tat. lol

Gruß,
  Harm

Manuela

#13
Zitat von: harm6 am Samstag,  5. August 2017, 01:58
ZitatAlso myGrace = slashedGrace? Das gibts nämlich schon
Ooops, in der Tat. lol

Gruß,
  Harm

Prost!!!  :D ;D

Dann kann ich ja meine Funktionen nochmals vereinfachen.

Update: zu früh gefreut.

Ich wollte jetzt eine Funktion definieren, die mir Schreibarbeit spart. Im Code 2 Varianten, von denen keine zufriedenstellend funktioniert. Bitte um Korrektur:

\version "2.19.62"

myGraceP = #(define-music-function (mus)(ly:pitch?)
              #{
                \slashedGrace $mus _ \laissezVibrer
              #}
              )

myGraceM = #(define-music-function (mus)(ly:music?)
              #{
                \slashedGrace $mus _ \laissezVibrer
              #}
              )

{ \myGraceP f'' c''' }  %% erzeugt kein Achtel, da nur Pitch ohne Dauer
{ \myGraceM f''8 c''' } %% erzeugt überhaupt eine Fehlermeldung
Danke für eure Hilfe
viele Grüße
-- Manuela