Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: chf am Dienstag, 26. November 2013, 19:58

Titel: Metronomangabe mit Taktdauer
Beitrag von: chf am Dienstag, 26. November 2013, 19:58
Liebe Freunde,
\version "2.16.2"
\time 5/8
die Metronomangabe des Komponisten soll heißen:
        \tempo  \markup {\note #"4.~4" #1 "ca. 66"}   (soweit meine Vorstellung vom code).
Ich erfahre:  schwerer Fehler: keine gültige Dauer: 4.~4

Wie muss der code heißen, damit die Dauer eines solchenTaktes angegeben wird?

Gruß
chf
Titel: Re: Metronomangabe mit Taktdauer
Beitrag von: iugin am Dienstag, 26. November 2013, 23:13
So, ich habe das Beispiel für dich angepasst.
Ich hoffe, ist das, was du wolltest.
(ich habe das http://lsr.dsi.unimi.it/LSR/Snippet?id=204 (http://lsr.dsi.unimi.it/LSR/Snippet?id=204) geändert)

Liebe Grüsse

Eugenio
\version "2.16.2"

rhythmMarkStaffReduce = #-3
rhythmMarkLabelFontSize = #-2

rhythmMark = #(define-music-function (parser location musicI tempo) (ly:music? string?)
   #{
      \mark \markup {
        \line \general-align #Y #DOWN {
          \combine
           
            \transparent \italic \fontsize #rhythmMarkLabelFontSize f

          \score {                     % 2nd column in line
            \new Staff \with {
              fontSize = #rhythmMarkStaffReduce
              \override StaffSymbol #'staff-space = #(magstep rhythmMarkStaffReduce)
              \override StaffSymbol #'line-count = #0
              \override VerticalAxisGroup #'Y-extent = #'(-0.85 . 4)
            }

            {
              \relative { \stemUp $musicI }
             
%             \override Score.SpacingSpanner #'strict-note-spacing = ##t
              \once \override Score.TextScript #'Y-offset = #-0.4
              s4.^\markup{ \halign #-1 \italic "=" $tempo }
             
            }
           
            \layout {
              ragged-right= ##t
              indent = 0
              \context {
                \Staff
                \remove "Clef_engraver"
                \remove "Time_signature_engraver"
              }
            } % layout end

          } % Score end

        } % line end
      } % markup end
   #})

tempoMark = {
  \time 5/4
  b'4. ~ b4
}

\score {
  {
    \once \override Score.RehearsalMark #'X-offset = #5  % td
    \rhythmMark \tempoMark "60"
    \time 5/8
   c'8 d' e' f' g' |
   a'
   
  }
 
  \layout {
    ragged-right= ##t
    indent = 0       
  }
}
Titel: Re: Metronomangabe mit Taktdauer
Beitrag von: chf am Mittwoch, 27. November 2013, 21:49
Hallo Eugenio,

das ist, was ich wollte - herzlichen Dank!
Nur sind die Ziffern  s e h r  klein, und ich finde die Stellen nicht,  wo ich etwas ändern kann.
Kannst du mir noch eine Variante liefern  mit dem Text "5/8 = ca 66" ?
Christa
Titel: Re: Metronomangabe mit Taktdauer
Beitrag von: iugin am Mittwoch, 27. November 2013, 22:54
Hallo Christa

sehr gern geschehen :)
Also, wenn du den Text grösser wird, kannst du die Zeile 27 z.B. so ändern:
s4.^\markup{ \halign #-1 \italic \huge { "=" $tempo } }(jetzt ist extra übertrieben: versuch mit allen möglichen Grössen, \teeny, \tiny, \small, \normalsize, \large, \huge, \smaller, \larger).

Wegen der 2. Frage: meinst du so etwas?
\version "2.16.2"

rhythmMark = #(define-music-function (parser location tempo) (string?)
   #{
      \mark \markup {
          \score {                   
            \new Staff \with {
              fontSize = #-2
              \override StaffSymbol #'line-count = #0
              \override VerticalAxisGroup #'Y-extent = #'(-0.85 . 4)
            }
            {
              s4.^\markup{ \halign #-1 \italic { $tempo } }
            }
           
            \layout {
              ragged-right= ##t
              indent = 0
              \context {
                \Staff
                \remove "Clef_engraver"
                \remove "Time_signature_engraver"
              }
            } % layout end
          } % Score end
      } % markup end
   #})

\score {
  {
    \once \override Score.RehearsalMark #'X-offset = #5
    \rhythmMark "5/8 = ca. 66"
    \time 5/8
   c'8 d' e' f' g' |
   a'   
  }
}

Liebe Grüsse

Eugenio
Titel: Re: Metronomangabe mit Taktdauer
Beitrag von: iugin am Donnerstag, 28. November 2013, 08:35
...man kann es auch einfacher machen :)
\score {
  \new Staff {
    \override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
     \mark \markup { \tiny \italic {"5/8 = ca. 66"}}
    c'1
  }
}

Ciao!

Eugenio
Titel: Re: Metronomangabe mit Taktdauer
Beitrag von: chf am Donnerstag, 28. November 2013, 09:04
Hallo Eugenio,

das Vergrößern ist mir gelungen mit    \fontsize Wert  {"= " $tempo }  .
Zur Variante 2 habe ich mich nicht deutlich ausgedrückt. Entschuldige bitte.
Ich möchte das  Bild mit den Notenwerten und dem Text " ca 66" (wie vom Komponisten vorgegeben).
Danke für deine Geduld mit mir!

Gruß
Christa
Titel: Re: Metronomangabe mit Taktdauer
Beitrag von: iugin am Donnerstag, 28. November 2013, 11:13
Hallo Christa

sorry, ich denke, ich verstehe nicht... :)
Wenn du das Notenbild brauchst, und dazu "ca 66", kannst du die Zeile 55
\rhythmMark \tempoMark "60"in
\rhythmMark \tempoMark "ca 66"So hast du aber das '=' Symbol.
Wenn du es weg nehmen willst, dann änderst du die Zeile 27
s4.^\markup{ \halign #-1 \italic "=" $tempo }in
s4.^\markup{ \halign #-1 \italic $tempo }
Übrigens: \halign #-1 brauchst du nicht :)

Ich hoffe, ist das was du wolltest. Sonst einfach fragen...

Liebe Grüsse

Eugenio
Titel: Re: Metronomangabe mit Taktdauer
Beitrag von: chf am Donnerstag, 28. November 2013, 18:13
Hallo Eugenio,

auf einmal funktioniert alles! Wer weiß, wo mein Fehler steckte...
Danke nochmals,
und schöne Grüße

Christa