Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: chf am Montag, 25. Januar 2016, 16:05

Titel: Text \markup (Notenbeispiele plus Erläuterungen...) die Zweite
Beitrag von: chf am Montag, 25. Januar 2016, 16:05
Liebe Freunde,

dank dem eingefügten Code habe ich eine wunderbare Liste erstellen können.
Die nächste Stufe ist jetzt, die Beispiele in zwei Spalten anzuordnen.
Die Texte lassen sich ja mit  \translate gut platzieren, wie aber ist es mit der Musik?

Ihr habt hoffentlich eine Empfehlung - gebrauchsfertig wie immer.

Gruß
chf

\version "2.18.2"
keyTime = {
  \key c \major
  \time 4/4
}
music = \relative {
  c'4 d e f g a b c
}

\markup {
  \overlay {
    \translate #(cons 0 0) \halign #LEFT \score {
      \new Staff <<
        \keyTime
        \clef "treble"
        \new Voice = "s" <<
          \music
        >>
      >>
      \layout {}
    } % End score
    \translate #(cons 40 0) \halign #LEFT "Dies ist eine C-Dur Tonleiter"
  }
}
Titel: Re: Text \markup (Notenbeispiele plus Erläuterungen...) die Zweite
Beitrag von: mgd am Dienstag, 26. Januar 2016, 05:20
Liebe Christa,

meinst du sowas wie z.B. http://lsr.di.unimi.it/LSR/Item?id=300 ?

Angewandt auf dein Beispiel könnte es so aussehen:
\version "2.18.2"

#(define-markup-command (overlay layout props args)
   (markup-list?)
   #:category align
   "
@cindex merging text

Takes a list of markups combining them.

@lilypond[verbatim,quote]
\\markup {
  \\fontsize #5
  \\override #'(thickness . 2)
  \\overlay {
    \\draw-line #'(0 . 4)
    \\arrow-head #Y #DOWN ##f
    \\translate #'(0 . 4)\\arrow-head #Y #UP ##f
  }
}
@end lilypond"
   (apply ly:stencil-add (interpret-markup-list layout props args)))


squiggle =
#(define-markup-command (squiggle layout props wd ht rep )
   (number? number? number?)
   #:category graphic
   #:properties ((thickness 2))
   (let* ((th (* (ly:output-def-lookup layout 'line-thickness) thickness))
          (x 0)
          (step (* wd 0.5))
          (strht (number->string ht))
          (strps (string-append (number->string th) " setlinewidth "
                   "0 0 moveto "
                   (number->string (* step 1)) " " strht " "
                   (number->string (* step 2)) " " strht " "
                   (number->string (* step 3)) " 0 curveto "
                   (number->string (* step 3)) " 0 moveto "
                   (number->string (* step 4)) " -" strht " "
                   (number->string (* step 5)) " -" strht " "
                   (number->string (* step 6)) " 0 curveto stroke"  )))
     (interpret-markup layout props (markup #:pattern rep X (* 3 wd)
                                      #:postscript strps #:hspace (* 3 wd)))))



musica = \relative c'' {
  \set Staff.explicitClefVisibility = #all-invisible

  \override Staff.TimeSignature.stencil = #'()
  \override Staff.BarLine.transparent = ##t
  \override TextScript.padding = #1.5
  f^\markup \squiggle #0.3 #0.3 #4
}

musicb = \relative c'' {
  \set Staff.explicitClefVisibility = #all-invisible
  \override Staff.TimeSignature.stencil = #'()
  \override Staff.BarLine.transparent = ##t
  \once \override TextScript.extra-offset = #'(3 . -3)
  bes4->\!^\markup \squiggle #0.8 #0.7 #3 \once \hideNotes <\tweak #'X-offset #5 bes>2
}

\markup {
  \fill-line {
    %\vspace #YSpace
    \overlay {
      \translate #(cons 0 0) \halign #LEFT \score {
        \new Staff \with {
          fontSize = #-2
          \override StaffSymbol #'staff-space = #(magstep -2)
          \override StaffSymbol #'thickness = #(magstep -2)
        } <<
          \new Voice = "s" <<
            \musica
          >>
        >>
        \layout {line-width = 20}
      }
      \translate #(cons 20 0) \halign #LEFT "Tremolo"
    }
    %\vspace %#YSpace
    \overlay {
      \translate #(cons 0 0) \halign #LEFT \score {
        \new Staff \with {
          fontSize = #-2
          \override StaffSymbol #'staff-space = #(magstep -2)
          \override StaffSymbol #'thickness = #(magstep -2)
        } <<
          \new Voice = "s" <<
            \musicb
          >>
        >>
        \layout {line-width = 20}
      }
      \translate #(cons 20 0) \halign #LEFT \column {
        "Tondauer verlängern durch"
        "Repetition oder ruhiges Vibrato"
      }
    }

  }
}
Titel: Re: Text \markup (Notenbeispiele plus Erläuterungen...) die Zweite
Beitrag von: chf am Dienstag, 26. Januar 2016, 17:18
Hallo Michael,

dank Deiner Hilfe sieht mein Werk jetzt so aus (s. Anhang). Du kannst Dir  vorstellen, wie meine nächste Bitte lautet?
Ich habe keine Vorstellung davon, wie ich die jeweils rechte Hälfte "ausrichten" könnte...

Danke bis hierher
und schöne Grüße
Christa

Titel: Re: Text \markup (Notenbeispiele plus Erläuterungen...) die Zweite
Beitrag von: chf am Mittwoch, 27. Januar 2016, 14:54
Ich glaube ich hab's - jetzt kann ich mit "\translate" spielen!
Titel: Re: Text \markup (Notenbeispiele plus Erläuterungen...) die Zweite
Beitrag von: mgd am Mittwoch, 27. Januar 2016, 23:03
Prima!

[Bin gerade von einer Dienstreise zurück, deshalb vorher keine Reaktion]

Ich gebe zu, so langsam bin ich ziemlich gespannt, wie das finale Werk aussehen wird :)

Liebe Grüße,
Michael
Titel: Re: Text \markup (Notenbeispiele plus Erläuterungen...) die Zweite
Beitrag von: fugenkomponist am Donnerstag, 28. Januar 2016, 00:31
Ich hab nur ganz kurz nen Blick aufs PDF geworfen, mir ist aber eine Sache aufgefallen: Hat das nen bestimmten Grund, dass du für den Aufschlag nicht \upbow verwendest sondern \shortFermata?
Titel: Re: Text \markup (Notenbeispiele plus Erläuterungen...) die Zweite
Beitrag von: chf am Donnerstag, 28. Januar 2016, 13:50
ftp://@Michael,

das würde ich dir gern zeigen,, aber zum Anhängen hier ist das PDF zu groß, und anders kann ich dich nicht erreichen.
(Du meinst vermutlich den Notensatz, an dem du "mitgearbeitet" hast?)

@fugenkomponist

Die Mandolinisten lesen das als Aufschlag mit nur  einer Saite. Danke, dass du mich auf diefehlerhafte Bezeichnung aufmerksam gemacht hast!

Grüße und Dank
Christa