Autor Thema: Text \markup (Notenbeispiele plus Erläuterungen...) die Zweite  (Gelesen 1669 mal)

chf

  • Member
Text \markup (Notenbeispiele plus Erläuterungen...) die Zweite
« 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"
  }
}
« Letzte Änderung: Montag, 25. Januar 2016, 18:23 von chf »

mgd

  • Member
Re: Text \markup (Notenbeispiele plus Erläuterungen...) die Zweite
« Antwort #1 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"
      }
    }

  }
}

chf

  • Member
Re: Text \markup (Notenbeispiele plus Erläuterungen...) die Zweite
« Antwort #2 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


chf

  • Member
Re: Text \markup (Notenbeispiele plus Erläuterungen...) die Zweite
« Antwort #3 am: Mittwoch, 27. Januar 2016, 14:54 »
Ich glaube ich hab's - jetzt kann ich mit "\translate" spielen!

mgd

  • Member
Re: Text \markup (Notenbeispiele plus Erläuterungen...) die Zweite
« Antwort #4 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

fugenkomponist

  • Member
Re: Text \markup (Notenbeispiele plus Erläuterungen...) die Zweite
« Antwort #5 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?

chf

  • Member
Re: Text \markup (Notenbeispiele plus Erläuterungen...) die Zweite
« Antwort #6 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
« Letzte Änderung: Donnerstag, 28. Januar 2016, 14:48 von chf »