Autor Thema: Longa mit Hals nach oben  (Gelesen 1883 mal)

prott

  • Member
Longa mit Hals nach oben
« am: Mittwoch, 23. Oktober 2013, 21:49 »
Guten Abend,

Für eine Longa im baroque-Stil suche ich eine Möglichkeit, den Hals nach oben zu drehen. Dabei arbeite ich noch unter Version 2.14, weil ich keine Lust - und im Moment auch keine Zeit - habe, das ganze Layout zu reparieren. Das Problem ist seit 2.16 im Prinzip gelöst, ich habe aber die neueste Version 2.17.29 oder so kurz ausprobiert: Hals oben, Layout zerschossen. Ich kann mir im Moment zwei Ansätze vorstellen, weiß aber nicht, ob sie funktionieren. Kann jemand etwas brauchbares dazu sagen?

1) Man könnte den Emmentaler-Font von Version 2.16 installieren. Funktioniert das, oder hole ich mir dann Ärger ins Haus?
2) Man könnte versuchen, den Glyph vertikal zu spiegeln. Dazu habe ich aber noch nicht die richtigen Befehle gefunden (drehen geht nicht, weil bei der Longa der Hals immer rechts ist).

Ideen?

eluze

  • Member
Re: Longa mit Hals nach oben
« Antwort #1 am: Mittwoch, 23. Oktober 2013, 21:59 »
code? ::)

harm6

  • Member
Re: Longa mit Hals nach oben
« Antwort #2 am: Mittwoch, 23. Oktober 2013, 23:02 »
Hallo prott,

ich verstehe das Problem auch noch nicht.

Was ist falsch bzw was möchtest Du hier ändern?

\version "2.14.2"

\new Voice {
\cadenzaOn
c'\longa
c''
}

(Der output ist mit 2.14.2, 2.16.2 und mit 2.17.29 fast identisch.)

Gruß,
  Harm

harm6

  • Member
Re: Longa mit Hals nach oben
« Antwort #3 am: Donnerstag, 24. Oktober 2013, 01:10 »
Nun, vielleicht so:

\version "2.14.2"

\layout {
  \context {
    \Voice
      \override NoteHead #'style = #'baroque
      \override NoteHead #'stencil =
        #(lambda (grob)
          (let* ((stem (ly:grob-object grob 'stem))
                 (stem-dir (ly:grob-property stem 'direction))
                 (default-stil (ly:note-head::print grob))
                 (duration-log (ly:grob-property grob 'duration-log))
                 (glyph-name (ly:grob-property grob 'glyph-name)))
           (if (and (> stem-dir 0)
                    (<= duration-log -2)
                    (string=? (string-drop glyph-name 2) "neomensural")
                    (= (car (ly:version)) 2)
                    (= (cadr (ly:version)) 14)
                    (<= (caddr (ly:version)) 2))
               (ly:stencil-scale default-stil 1 -1)
               default-stil)))
  }
}

\version "2.14.2"

\new Voice
\relative c' {
\cadenzaOn
c\maxima d e f g a b c d e f g a
\bar ""
\break
c,,\longa d e f g a b c d e f g a
\bar ""
\break
c,,\breve d e f g a b c d e f g a
\bar ""
\break
c,,1 d e f g a b c d e f g a
\bar ""
\break
c,,2 d e f g a b c d e f g a
\bar ""
\break
c,,4 d e f g a b c d e f g a
\bar ""
\break
c,,8 d e f g a b c d e f g a
}

Allerdings solltest Du wirklich ein upgrade machen.
Ich habe mich beim programmieren in 2.14.2 sehr unwohl gefühlt. Tatsächlich fühle ich mich auch in 2.16.2 schon zu sehr eingeengt.

Ich erwarte 2.18. sehnsuchtsvoll, hoffend, daß nicht wieder etwas komplett schiefgeht. ;)



HTH,
  Harm

prott

  • Member
Re: Longa mit Hals nach oben
« Antwort #4 am: Donnerstag, 24. Oktober 2013, 20:46 »
Danke, Harm.

Das tut zwar, was es soll, aber es rückt leider auch einige Vorzeichen viel zu nah an "ihre" Note heran. Für einen schnellen Werkherum habe ich den Stencil in eine Variable mit \once\override ... gesetzt, dann tritt das Problem nicht mehr auf. Das reicht mir einstweilen bis zum geordneten Umstieg.
Das Problem ist in Deinem Schnipsel leicht zu sehen, wenn Du alle Noten e durch es! ersetzt.

Einen Upgrade vermeidet man möglichst kurz vor einer selbst gesetzten Deadline (Anfang November) ...
Mein kurzer Versuch mit 2.17.29 hat so viel am Layout verändert, daß ich mir so wahrscheinlich (trotz convert-ly, das mir diesmal wenigstens keine nicht zu übersetzenden Dateien lieferte im Gegensatz zu 2.12 -> 2.14) mehr Probleme einhandele, als ich in der Zeit sicher finden und lösen kann. Auf den ersten Blick stimmten Umbrüche und Abstände nicht, die Klammern für Strophen waren viel zu groß und gregorianische Abschnitte total kaputt. Da möchte ich nicht wissen, was noch alles umgekrempelt ist. Jedenfalls braucht der Umstieg mehr Zeit, als ich im Moment habe. Und dann hülle ich mich in Geduld bis 2.18, im Moment  sieht es ja so aus, daß es nicht mehr so weit bis dahin ist.


harm6

  • Member
Re: Longa mit Hals nach oben
« Antwort #5 am: Donnerstag, 24. Oktober 2013, 22:25 »
Zitat
es rückt leider auch einige Vorzeichen viel zu nah an "ihre" Note heran

Richtig. Ich vergaß, für 2.14. den 'Y-extent-override einzufügen.
(Mit 2.16 ff verwendet man 'ly:make-unpure-pure-container'. (Hier würde convert-ly übrigens scheitern, afaik.)

Der layout-Block würde dann so aussehen:

\version "2.14.2"

\layout {
  \context {
    \Voice
      \override NoteHead #'minimum-Y-extent = #'(-0.1 . 0.1)
      \override NoteHead #'style = #'baroque
      \override NoteHead #'stencil =
        #(lambda (grob)
          (let* ((stem (ly:grob-object grob 'stem))
                 (stem-dir (ly:grob-property stem 'direction))
                 (default-stil (ly:note-head::print grob))
                 (duration-log (ly:grob-property grob 'duration-log))
                 (glyph-name (ly:grob-property grob 'glyph-name)))
           (if (and (> stem-dir 0)
                    (<= duration-log -2)
                    (string=? (string-drop glyph-name 2) "neomensural")
                    (= (car (ly:version)) 2)
                    (= (cadr (ly:version)) 14)
                    (<= (caddr (ly:version)) 2))
               (ly:stencil-scale default-stil 1 -1)
               default-stil)))
  }
}


Zitat
Einen Upgrade vermeidet man möglichst kurz vor einer selbst gesetzten Deadline [...]
Das ist natürlich verständlich.
Jedoch ist 2.17.29 viel besser, auch in Fragen des layout. Wenn 2.17.29 Dein file so stark verändert, daß Du von 'kaputt machen' schreibst, so wird wahrscheinlich eher umgekehrt ein Schuh daraus: Ich vermute Du hast 2.14.2 dazu gebracht, daß zu tun was Du möchtest. Wahrscheinlich mit dem ein oder anderen override/tweak/set bzw paper- und layout-settings. Eine verbesserte LilyPond-Version wird das entweder nicht brauchen oder aber andere Werte.

Sehr viel interessanter ist die Frage wo 2.17.29 nicht besser oder sogar schlechter ist. ;)
Wenn Dir da was auffällt melde Dich, bzw schreib einen bug-report.

Gruß,
  Harm