Autor Thema: Fine und D.C. al Fine Vertikale position  (Gelesen 4413 mal)

hosios

  • Member
Fine und D.C. al Fine Vertikale position
« am: Samstag, 16. Juli 2011, 04:34 »
Nun,

ich versuche immer das Forum und Google vorher durchzusuchen um eine Lösung zu finden für meine Probleme, aber hier steck ich wieder fest.

Was ich möchte ist folgendes. (Bild1.png)

das habe ich erreicht indem ich folgenden Code definiert habe

fine = {
 \override Score.RehearsalMark #'break-visibility = #begin-of-line-invisible
 \override Score.RehearsalMark #'self-alignment-X = #RIGHT
 \override Score.RehearsalMark #'font-size = #-2
\mark "Fine" }

dcaf = {
 \override Score.RehearsalMark #'break-visibility = #end-of-line-visible
 \override Score.RehearsalMark #'self-alignment-X = #RIGHT
 \override Score.RehearsalMark #'font-size = #-2
\mark "D.C. al Fine" }

Wenn aber ein Gitarrengriff dazu kommt, verschiebt sich das nach oben. (Bild2.png) Ich möchte eher, dass der Griff sich etwas nach oben verschiebt, und das Fine, oder D. C. al Fine möglichst nahe am Pentagramm bleiben.

Ich weiss mitlerweile schon, dass es Möglich ist (Lilypond kann ja alles. :) ) aber ich weiss nicht wie.

Danke
Paul

trulli

  • Member
Re: Fine und D.C. al Fine Vertikale position
« Antwort #1 am: Samstag, 16. Juli 2011, 08:20 »
Hallo Paul,

mit \override TextScript kannst du Text verschieben. Extra-offset bedeutet verschieben ohne Kollisionen zu beachten. In der Klammer danach stehen zwei Werte für (Verschiebung nach rechts/links . Verschiebung nach oben/unten). Du musst jetzt einfach Werte suchen, die bei dir gut aussehen.

Füge diesen Code vor der Note mit dem \dcaf ein:

\once\override TextScript #'extra-offset = #'( -10 . 2 ) 
Den Akkordbuchstaben würde ich nicht verschieben - das sieht seltsam aus und ist unüblich. Um eine Verwechslung mit dem nahe dabei stehenen D-Dur Akkord zu vermeiden, kannst du auch Da Capo ausschreiben und evtl. zwei Zeilen schreiben \column {"Da Capo"  "al Fine"}.

Grüße von Trulli
« Letzte Änderung: Samstag, 16. Juli 2011, 08:23 von trulli »

hosios

  • Member
Re: Fine und D.C. al Fine Vertikale position
« Antwort #2 am: Samstag, 16. Juli 2011, 18:36 »
hallo Trulli,

Danke für deine Antwort, aber bei mir verscheibt sich nichts. habe alle möglichen Kombinationen versucht

code note dcaf
code dcaf note
note code dcaf
note dcaf note
etc...

auch extreme Werte versucht um zu sehen, aber "nada"

muss ich im Layout noch was freischalten:


Ich habe nähmlich ein Dokument mit den Songs, da steht vorne so

\version "2.14.0"

\include "Definitions.ly"     
     

\score { % 2. Unser Mund der ist voll Jubel
<<
\chords {
\mark \markup  { \null \raise #5 \bold "" }
          \myChords
\set chordChanges = ##t
 
s4 a2 d a1 *2 e1 a2 a d1 a2 e a1 d a e a d a e a2.
}

\new Staff \relative c' {
\key a \major
\time 4/4
\autoBeamOff
\partial4 cis8 d e4 e fis fis e (a) a a8 a a4. a8 gis4 a b2. b4 cis cis cis b a2 a4 fis e a gis4. gis8 a2. \fine \bar "||" a4 a4. fis8 fis4 a a2 e4 a gis4. gis8 a4 b cis2. a4 a4. fis8 fis4 a a2 e4 a gis4. gis8 a4 b \once\override TextScript #'extra-offset = #'( 5 . -2 ) a2. \dcaf   \bar "|." }

\addlyrics {
Un -- ser Mund, der ist voll Ju -- bel, un -- ser Herz, das ist voll Dank, dass du uns hast er -- lö -- set, er -- kauft ein Le -- ben lang! Wir prei -- sen dei -- ne Gü -- te, die je -- den Mor -- gen neu, mit der du uns be -- hü -- test. Wie gross ist dei -- ne Treu!
}
>>
\header {
title = "2. Unser Mund der ist voll Jubel"
composer = "Jesus-Bruderschaft-Gnadenthal"
}
}

und in der Datei Definitions.ly habe ich alle Einstellungen
die sehen so aus

#(define (pitch-alteration-semitones pitch)
  (inexact->exact (round (* (ly:pitch-alteration pitch) 2))))
 
#(define (conditional-string-downcase str condition)
  (if condition
      (string-downcase str)
      str))
 
#(define (conditional-kern-before markup bool amount)
  (if bool
      (make-line-markup
       (list (make-hspace-markup amount)
     markup))
      markup))
     
     
#(define (accidental->markup alteration)
  (if (= alteration 0)
      (make-line-markup (list empty-markup))
      (conditional-kern-before
       (alteration->text-accidental-markup alteration)
       (= alteration FLAT) 0.2)))

#(define ((chord-name->germanMarkup B-instead-of-Bb)
     pitch lowercase?)
  (let* ((name (ly:pitch-notename pitch))
         (alt-semitones  (pitch-alteration-semitones pitch))
(n-a (if (member (cons name alt-semitones) `((6 . -1) (6 . -2)))
  (cons 6 (+ (if B-instead-of-Bb 1 0) alt-semitones))
  (cons name alt-semitones))))
    (make-line-markup
     (list
      (make-simple-markup
       (conditional-string-downcase
(vector-ref #("C" "D" "E" "F" "G" "A" "B") (car n-a))
lowercase?))
      (markup #:fontsize -2.5 #:raise 1.2
       (accidental->markup (/ (cdr n-a) 2)))))))

myChords = {
  \set chordRootNamer = #(chord-name->germanMarkup #f)
}

\layout {
            \context {
                \Lyrics
                  %\override LyricText #'extra-offset = #'(0 . 0.9)
                 % \override LyricText #'font-size = #'-1
                  %\override LyricHyphen #'extra-offset = #'(0 . 0.7)
                  %\override LyricExtender #'extra-offset = #'(0 . 0.7)
            }
            \context {
                \ChordNames
                  \override ChordName #'extra-offset = #'(0 . 0.4)
                  %\override ChordName #'font-size = #'-1
            }
            \context {
                \Score
                   \override SpacingSpanner
                   #'base-shortest-duration = #(ly:make-moment 1 16)
             }
}

\paper {
 page-breaking = #ly:optimal-breaking
 print-page-number = ##t
% ragged-bottom = ##t
 print-first-page-number = ##t
 oddHeaderMarkup = \markup \null
 evenHeaderMarkup = \markup \null
 oddFooterMarkup = \markup {
  \fill-line {
    \on-the-fly #print-page-number-check-first
    \fromproperty #'page:page-number-string
  }
 }
 evenFooterMarkup = \oddFooterMarkup
 print-all-headers = ##t
 #(set-paper-size "a4")
 
%%% Vertical spacings
 markup-system-spacing =
   #'((basic-distance . 16)
    (minimum-distance . 12)
    (padding . 2)
    (stretchability . 6))
   
   markup-markup-spacing =
   #'((basic-distance . 8)
    (minimum-distance . 5)
    (padding . 2)
    (stretchability . 4))
   
 system-system-spacing =
   #'((basic-distance . 14)
    (minimum-distance . 8)
    (padding . 3)
    (stretchability . 6))
   
 score-markup-spacing =
  #'((basic-distance . 18)
    (minimum-distance . 12)
    (padding . 2)
    (stretchability . 6))
   
%%%    Margins
  top-margin = 15\mm
 bottom-margin = 15\mm
 left-margin = 20\mm
 line-width = 170\mm
 tagline = \markup \fontsize #-3.5 {"Paul G. Janzen - 2011 | made with www.lilypond.org"}
  #(define fonts (make-pango-font-tree "Calibri" "Cambria" "Droid Mono" (/ 18 18)))
} %%% paper closing

fine = {
 \override Score.RehearsalMark #'break-visibility = #begin-of-line-invisible
 \override Score.RehearsalMark #'self-alignment-X = #RIGHT
 \override Score.RehearsalMark #'font-size = #-2
\mark "Fine" }

dcaf = {
 \override Score.RehearsalMark #'break-visibility = #end-of-line-visible
 \override Score.RehearsalMark #'self-alignment-X = #RIGHT
 \override Score.RehearsalMark #'font-size = #-2
\mark "D.C. al Fine" }



harm6

  • Member
Re: Fine und D.C. al Fine Vertikale position
« Antwort #3 am: Samstag, 16. Juli 2011, 20:52 »
Hallo Paul,

Zitat
Danke für deine Antwort, aber bei mir verscheibt sich nichts. habe alle möglichen Kombinationen versucht
.

Da ist trulli ein Versehen passiert. Es muß heißen:

\once\override Score.RehearsalMark #'extra-offset = #'(1 . 0)   \dcaf

und deswegen muß der Befehl auch direkt vor \dcaf und nicht wie bei TextScript vor die Note.

Ansonsten bin ich mit trulli einer Meinung, daß "D.C. al Fine" auf zwei Zeilen verteilt, hier am besten aussieht. Dann ist IMHO auch überhaupt keine Verschiebung mehr nötig:

\mark\markup { \center-column {"D.C." "al Fine" } }

Ansonsten schau doch noch mal in Vorzeichen in Chordnames ändern rein. Falls ich es schaffe, poste ich heute noch eine verbesserte Fassung. (Der output ändert sich nicht, aber es ist kürzer und eleganter .)

Gruß,
  Harm
« Letzte Änderung: Samstag, 16. Juli 2011, 20:58 von harm6 »

trulli

  • Member
Re: Fine und D.C. al Fine Vertikale position
« Antwort #4 am: Sonntag, 17. Juli 2011, 08:49 »
Da ist trulli ein Versehen passiert. Es muß heißen:
\once\override Score.RehearsalMark #'extra-offset = #'(1 . 0)   \dcaf

Na klar, danke harm6. Meine Definition gilt natürlich nur, wenn es ein reines TextScript ist. Pauls Definition ist aber über RehearsalMark gemacht worden.

Wenn die beiden Textzeilen zu Nahe aneinander stehen (was nach meiner Meinung immer so ist...) kannst du sie hiermit näher zusammen schieben:
^\markup \override #'(baseline-skip . 2) { \column {"Da Capo" "al Fine" } }

...oder geht sowas in 2.14. nicht mehr....?

Gruß

harm6

  • Member
Re: Fine und D.C. al Fine Vertikale position
« Antwort #5 am: Sonntag, 17. Juli 2011, 16:26 »
@trulli:

Zitat
...oder geht sowas in 2.14. nicht mehr....?

Natürlich geht das nach wie vor, denn lilypond kann ja alles!  ;D

Ich fand den output in 2.14.1 aber so gut, daß ich es nicht vorgeschlagen habe. ->Bild im Anhang

Gruß:
  Harm

hosios

  • Member
Re: Fine und D.C. al Fine Vertikale position
« Antwort #6 am: Dienstag, 19. Juli 2011, 05:48 »
Danke nochmal für eure mühe

Ich war zwei Tage weg vom Computer, und ich sehe aber ihr arbeitet weiter daran :)

Bin sehr begeistert mit Lilypond. Die Lernkurve ist natürlich schwerer als Sibelius, aber das Resultat ist dann desto besser.

Ich habe viele Jahre Windows gebraucht (von 3.1 bis XP) dann bin ich auf Linux rübergegangen.
Und Habe viele Jahre Finale gebraucht (von version 4 glaube ich war das und bis version 2004) dann bin ich auf Sibelius konvertiert worden. Sehr gutes Programm, mit schnelle  Resultate. Aber ich habe das Problem da mit windows, da Sibelius nicht unter Linux läuft. Und suchte nach Alternativen. Da fand ich Lilypond.

Bin jetzt dabei das zu lernen, und ihr seid mir eine grosse Hilfe. Werde mich aber auch mehr mit der dokumentation beschäftigen. Habe mehr oder weniger nur die ersten Tutorials durchgelesen.

Danke,
Paul