Neueste Beiträge

Seiten: 1 [2] 3 4 ... 10
11
Fragen zu Funktionen / Re: Lyrics: Strophen-Nummern in jeder Notenzeile
« Letzter Beitrag von Joei am Mittwoch, 22. März 2017, 08:53 »
ok.. ausprobiert - funktioniert einwandfrei.

Jetzt sind mir die Zeilennummern aber noch zu weit links. Hab versucht selber Überlegungen anzustellen:

Die Zeilennummern sind ja "instrumentNames" - müssten ergo auch Text sein können, und dann hätte ich einfach eine Zeilennummern mit führenden Leerzeichen genommen "   1.".
Dafür habe ich den Variablentyp für den instr-name auf char? gesetzt:

#(define-scheme-function (instr-name move)(char? number?)
und im Musikquelltext dann

\new Lyrics
      \with {
        \numberLyrics "1" 3.5
  }

Weder konnte Lily das interpretieren:

Fehler: kein solcher Kontextmodus       
        \numberLyrics "1" 3.5

noch konnte die Variable was mit den führenden Leerzeichen anfangen:

Fehler: falscher Typ für Argument 1; character erwartet, "  2" gefunden
        \numberLyrics "  2" 3.5

Muss ich die Variablen anders angeben?

Hier das geänderte Beispiel (einzige Änderungen sind die oben beschriebenen, hier nur als kompilierbares Beispiel)

\version "2.19.44"

%% REMARK:
%% Using instrument-names _and_ setting an invisible stanza with a certain
%% extent at line-begin to avoid collisions

%% Thanks to David Nalesnik
%% http://lists.gnu.org/archive/html/lilypond-user/2016-07/msg00028.html

#(define create-stanza-number-grob-engraver
;; puts out a StanzaNumber for every LyricText-grob
  (lambda (context)
    (let ((stanza (ly:context-property context 'stanza)))
      `((acknowledgers
          (lyric-syllable-interface .
            ,(lambda (engraver grob source-engraver)
              (let ((new-stanza-grob
                      (ly:engraver-make-grob engraver 'StanzaNumber '())))
              (ly:grob-set-property! new-stanza-grob 'text stanza)))))))))

#(define (at-line-beginning? grob)
   (let* ((col (ly:item-get-column grob))
          (ln (ly:grob-object col 'left-neighbor))
          (col-to-check (if (ly:grob? ln) ln col)))
     (and (eq? #t (ly:grob-property col-to-check 'non-musical))
          (= 1 (ly:item-break-dir col-to-check)))))

#(define (keep-at-line-begin grob)
   (if (and (ly:item? grob) (not (at-line-beginning? grob)))
       (ly:grob-suicide! grob)
       grob))

keepLineStartStanzaNumbers =
\layout {
  \context {
  \Lyrics
  \override StanzaNumber.after-line-breaking =
    #keep-at-line-begin
  }
}

numberLyrics =
#(define-scheme-function (instr-name move)(char? number?)
" instr-name was number?"     
"Return a context-modification setting @code{stanza} and consisting
@code{create-stanza-number-grob-engraver}, as well as @code{instrumentName} and
@code{shortInstrumentName}.
The latter prints the numbering using @var{instr-name}, the first is used to
push the lyrics to the right, using @var{move}.
"
#{
  \with {
    %stanza = \markup \italic #(format #f "~a." nmbr)
    stanza = \markup \combine \null \translate #(cons move  0) \null
    \consists #create-stanza-number-grob-engraver
instrumentName = #(format #f "~a." instr-name)
shortInstrumentName = #(format #f "~a." instr-name)
  }
#})

%%%%%%%%%%%%%%%%%%%%%%%%%%
%% modifiziertes EXAMPLE %
%%%%%%%%%%%%%%%%%%%%%%%%%%

\score {
  <<
    \new Staff { \key cis \major \repeat unfold 6 {  c''4 d'' e'' } }
    \new Lyrics
      \with {
        \numberLyrics "1" 3.5
  }
      \lyricmode {
        \repeat unfold 6 {  foo -- bar -- buzz }
      }
     
    \new Lyrics 
      \with {
        \numberLyrics "  2" 3.5
  }
      \lyricmode {
        \repeat unfold 6 {  very-very-long-syllable bur -- buuuzz }
      }
     
    \new Lyrics 
      \with {
        \numberLyrics "3" 3.9
  }
      \lyricmode {
        \repeat unfold 6 {  fuu -- bla -- blibbb }
      }
  >>
  \layout {
    \keepLineStartStanzaNumbers
    \context {
      \Lyrics
      \override InstrumentName.X-offset = 2
    }
  }
}

Die Variable "move" sollte den Text verschieben, richtig? Da habe ich keinerlei Effekt merken können :(

Dank&Gruß Joei
12
Fragen zu Funktionen / Re: Lyrics: Strophen-Nummern in jeder Notenzeile
« Letzter Beitrag von Joei am Dienstag, 21. März 2017, 22:35 »
cool – wird gleich ausprobiert, lieb(e) Harm(in)  :o 8) ::) ! Joei
13
Fragen zu Funktionen / Re: Lyrics: Strophen-Nummern in jeder Notenzeile
« Letzter Beitrag von harm6 am Dienstag, 21. März 2017, 22:17 »
Zitat von: Joei
gibt's hier eigentlich was Neues? Ich finde die Lösung mit den ShortInstrument Names nur bedingt hübsch...

Ich hatte mal folgendes gemacht (png im Anhang)
\version "2.19.44"

%% REMARK:
%% Using instrument-names _and_ setting an invisible stanza with a certain
%% extent at line-begin to avoid collisions

%% Thanks to David Nalesnik
%% http://lists.gnu.org/archive/html/lilypond-user/2016-07/msg00028.html

#(define create-stanza-number-grob-engraver
;; puts out a StanzaNumber for every LyricText-grob
  (lambda (context)
    (let ((stanza (ly:context-property context 'stanza)))
      `((acknowledgers
          (lyric-syllable-interface .
            ,(lambda (engraver grob source-engraver)
              (let ((new-stanza-grob
                      (ly:engraver-make-grob engraver 'StanzaNumber '())))
              (ly:grob-set-property! new-stanza-grob 'text stanza)))))))))

#(define (at-line-beginning? grob)
   (let* ((col (ly:item-get-column grob))
          (ln (ly:grob-object col 'left-neighbor))
          (col-to-check (if (ly:grob? ln) ln col)))
     (and (eq? #t (ly:grob-property col-to-check 'non-musical))
          (= 1 (ly:item-break-dir col-to-check)))))

#(define (keep-at-line-begin grob)
   (if (and (ly:item? grob) (not (at-line-beginning? grob)))
       (ly:grob-suicide! grob)
       grob))

keepLineStartStanzaNumbers =
\layout {
  \context {
  \Lyrics
  \override StanzaNumber.after-line-breaking =
    #keep-at-line-begin
  }
}

numberLyrics =
#(define-scheme-function (instr-name move)(number? number?)
"Return a context-modification setting @code{stanza} and consisting
@code{create-stanza-number-grob-engraver}, as well as @code{instrumentName} and
@code{shortInstrumentName}.
The latter prints the numbering using @var{instr-name}, the first is used to
push the lyrics to the right, using @var{move}.
"
#{
  \with {
    %stanza = \markup \italic #(format #f "~a." nmbr)
    stanza = \markup \combine \null \translate #(cons move  0) \null
    \consists #create-stanza-number-grob-engraver
instrumentName = #(format #f "~a." instr-name)
shortInstrumentName = #(format #f "~a." instr-name)
  }
#})

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXAMPLE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\score {
  <<
    \new Staff { \key cis \major \repeat unfold 6 {  c''4 d'' e'' } }
    \new Lyrics
      \with {
        \numberLyrics 1 3.5
  }
      \lyricmode {
        \repeat unfold 6 {  foo -- bar -- buzz }
      }
     
    \new Lyrics 
      \with {
        \numberLyrics 2 3.5
  }
      \lyricmode {
        \repeat unfold 6 {  very-very-long-syllable bur -- buuuzz }
      }
     
    \new Lyrics 
      \with {
        \numberLyrics 3 3.5
  }
      \lyricmode {
        \repeat unfold 6 {  fuu -- bla -- blibbb }
      }
  >>
  \layout {
    \keepLineStartStanzaNumbers
    \context {
      \Lyrics
      \override InstrumentName.X-offset = 2
    }
  }
}

Gruß,
  Harm

Zitat von: complanar
(Weiß jemand ob harm6 männlich oder weiblich ist?)
Das hatte ich noch gar nicht gesehen, und lass es unbeantwortet rofl
14
Fragen zu Funktionen / Re: Zeilenabstände im Text
« Letzter Beitrag von Joei am Dienstag, 21. März 2017, 21:09 »
oh man. Einfacher als erwartet. VIELEN DANK!
15
Fragen zu Funktionen / Re: Zeilenabstände im Text
« Letzter Beitrag von harm6 am Dienstag, 21. März 2017, 21:01 »
Hi,

Zitat
lediglich der Zeilenabstand im rechten "Infoblock" ist mir ein wenig zu groß – da kann man sicher reingrätschen – allerdings war ich nicht erfolgreich beim finden einer Lösung.
Mit 'baseline-skip':

\version "2.19.40"
\markup  {
  \fill-line {

    \left-column {
      \override #'(font-name . "Calluna Italic")
      \italic \abs-fontsize #20 { "Hier steht ein Titel" }
      \italic \abs-fontsize #15 { "Und hier ein Untertitel" }
    }

    \override #'(baseline-skip . 0) %% default is 3
    \right-column {
      \line { Text: Lore Ipsum }
      \line { Melodie: Dolor Sit }
      \line { Satz: Amet Consectetur }
      \line { "aus der Sammlung \"adipisci velit\"" }
    }

  }
}

{a'}

Zitat
Kleine Kuriosität, die ich leider auch nicht verstehe: erst der Untertitel wird "\italic"
Also bei mr wird alles kursiv. Allerdings in verschiedenen Schriftarten, aber so hast Du es ja angegeben.

Zitat
Und hier der Vollständigkeit halber mein missglückter Versuch, dass in einer "\header"-Umgebung zu gestalten – da bekomme ich den rechten Infoblock nicht auf die gleiche Höhe wie den Titel.
Da müsstest Du das bookTitleMarkup neu definieren, ist in der NR erklärt, afair.

Gruß,
  Harm

16
Fragen zu Funktionen / Re: Lyrics: Strophen-Nummern in jeder Notenzeile
« Letzter Beitrag von Joei am Dienstag, 21. März 2017, 16:49 »
Moinsen,

gibt's hier eigentlich was Neues? Ich finde die Lösung mit den ShortInstrument Names nur bedingt hübsch...

Joei
17
Fragen zu Funktionen / Gelöst: Zeilenabstände im Text
« Letzter Beitrag von Joei am Dienstag, 21. März 2017, 16:03 »
Moin,

ich möchte einen Titel abweichend von der Standardvariante gestalten. Das funktioniert bisher ganz brauchbar, lediglich der Zeilenabstand im rechten "Infoblock" ist mir ein wenig zu groß – da kann man sicher reingrätschen – allerdings war ich nicht erfolgreich beim finden einer Lösung.

Diese reine markup-Variante habe ich gewählt, weil ich das mit den typischen Variablen Title, Composer etc nicht hinbekommen habe....
\version "2.19.40"
\markup {
  \fill-line {

    \left-column {
      \override #'(font-name . "Calluna Italic")
      \italic \abs-fontsize #20 { "Hier steht ein Titel" }
      \italic \abs-fontsize #15 { "Und hier ein Untertitel" }
    }

    \right-column {
      \line { Text: Lore Ipsum }
      \line { Melodie: Dolor Sit }
      \line { Satz: Amet Consectetur }
      \line { "aus der Sammlung \"adipisci velit\"" }
    }

  }
}

{a'}
Kleine Kuriosität, die ich leider auch nicht verstehe: erst der Untertitel wird "\italic"

Und hier der Vollständigkeit halber mein missglückter Versuch, dass in einer "\header"-Umgebung zu gestalten – da bekomme ich den rechten Infoblock nicht auf die gleiche Höhe wie den Titel.
\version "2.19.32"



\header {
 

  composer =  \markup \fill-line \abs-fontsize #10 {
    \hspace #0
    \column {
      \right-align{
        \line { Text: Lore Ipsum }
        \line { Melodie: Dolor Sit }
        \line { Satz: Amet Consectetur }
        \line { "aus der Sammlung \"adipisci velit\"" }

      }
    }
  }


  title =\markup  \column {
    \combine \null \vspace #0 \translate #'(0 . 0)
    \fill-line {
      \override #'(font-name . "Calluna")
      \italic \abs-fontsize #20 { "Hier der Titel" }
      \null
    }

  }
 
  subtitle =\markup  \column {
    \combine \null \vspace #0 \translate #'(0 . 0)

    \fill-line {
      \override #'(font-name . "Calluna")
      \italic \abs-fontsize #15 "Untertitel" %hier war der Name mit Leerzeichen verschovben
      \null
    }
  }

}

\score {
  {a4}
  \layout { }

}
Vielen Dank,
Joei
18
Allgemeine Diskussion / Re: DANKE!
« Letzter Beitrag von trulli am Montag, 20. März 2017, 04:53 »
Ja, eine gute Idee hier mal offiziell Danke zu sagen!  :)

Ich finde gar nicht, dass hier nur wenige helfen. Die Liste der Leute, die mir schon geholfen haben, beläuft sich in etwa auf 20-30. Und dann kommen noch die vielen Posts dazu, an denen ich gar nicht beteiligt war, aber aus denen ich trotzdem was gelernt habe. Im Rahmen meiner Möglichkeiten habe ich natürlich hier auch mein Bestes gegeben.

Mein Dank richtet sich deshalb an alle, die hier aktiv sind oder es waren!

Grüße von Trulli
19
Fragen zu Funktionen / Re: Abstände zwischen Scores innerhalb eines bookparts
« Letzter Beitrag von Manuela am Sonntag, 19. März 2017, 16:06 »
Danke Harm, jetzt muss ich nur noch mit den Werten experimentieren, bis mir der Output gefällt.
20
Fragen zu Funktionen / Re: Abstände zwischen Scores innerhalb eines bookparts
« Letzter Beitrag von harm6 am Sonntag, 19. März 2017, 15:24 »
Zitat
Wenn ich dich richtig verstanden habe, sollte dann überhaupt nichts mehr zu sehen sein.

Nicht ganz, denn
    scoreTitleMarkup = \markup \with-color #red \box { \scoreTitleMarkup }
erzeugt ja durch das box-markup in jedem Fall eine sichtbare Ausgabe (und Warnungen)

Streiche diese Zeile.

Gruß,
  Harm
Seiten: 1 [2] 3 4 ... 10