Tempobezeichnung

Begonnen von georgfx, Donnerstag, 4. April 2024, 10:44

« vorheriges - nächstes »

georgfx

Hallo zusammen

Ich verzweifle, weil ich in der Tempoangabe das Viertelsymbol mit der Anzahl nicht, dahinter aber eine zusätzliche Angabe schon in Klammern angeben will (siehe Code)
flugel = \relative c' {
  \clef treble
  \time 4/4
  \key c \minor
  \tempo 4 = 120 %%%%%%%%%%% hier hätte ich gerne noch einen beschreibenden Text in Klammern; jedoch nicht das Notensymbol in klammern, was mit "\tempo \markup {"Textangabe"} 4 = 120 " umgekehrt funktioniert
  c4 c c c c c c c
}

\score {
 
      \flugel
 
}
... wahrscheinlich für Euch ganz einfach??

Vielen Dank für Eure Hilfe
Da Georg

martinmagtenor

Hallo Da Georg,

hier nicht fündig geworden?

Metronomangaben


Martin

georgfx

Leider nein: "Wenn eine Metronombezeichnung und Text kombiniert wird, wird die Metronombezeichnung automatisch in Klammern gesetzt"
Ich  möchte es halt gerne genau OHNE Klammern bei der Metronombezeichnung aber MIT Klammern beim Text.

georgfx

Problem so gelöst:
\tempo \markup { \rhythm { [ 4 ] } = 120 -130 \hspace #0.4 (mährisch) }

harm6

#4
Die rot markierten Klammern sind überflüssig, tatsächlich bekomme ich Fehlermeldungen dafür.
\rhythm { [ 4 ] }
Lösche sie einfach.
Aber ja, das ist eine Möglichkeit.
Wenn Du das aber regelmäßig brauchst kann man den `metronomeMarkFormatter` neu definieren und von einem (neu definierten) context-propery abhängig machen:

\version "2.24.3"

%% minimal implementation of `textFirst` as context property.
#(set-object-property!
  'textFirst
  'translation-type?
  boolean?)

%% taken from `translation-functions.scm` and modified
#(define (my-format-metronome-markup event context)
  (let ((hide-note (ly:context-property context 'tempoHideNote #f))
        (text (ly:event-property event 'text))
        (dur (ly:event-property event 'tempo-unit))
        (count (ly:event-property event 'metronome-count))
        (text-first? (ly:context-property context 'textFirst #t)))
    (my-metronome-markup text-first? text dur count hide-note)))

#(define (my-metronome-markup text-first text dur count hide-note)
  (let* ((note-mark
          (if (and (not hide-note) (ly:duration? dur))
              (make-smaller-markup
               (make-note-by-number-markup
                (ly:duration-log dur)
                (ly:duration-dot-count dur)
                UP))
              #f))
         (count-markup (cond ((number? count)
                              (if (> count 0)
                                  (number->string count)
                                  #f))
                             ((pair? count)
                              ;; Thin Spaces U+2009 & En-dash U+2013
                              (format #f "~a – ~a" (car count) (cdr count)))
                             (else #f)))
         (note-markup (if (and (not hide-note) count-markup)
                          (list
                           (make-general-align-markup Y DOWN note-mark)
                           " = "
                           count-markup)
                          #f))
         (text-markup (if (not (null? text)) (make-bold-markup text) #f)))
    (if text-markup
        (if (and note-markup (not hide-note))
            (make-line-markup (list (make-concat-markup
                                    (if text-first
                                        (append
                                          (list text-markup
                                                " (")
                                                note-markup
                                                (list ")"))
                                        (append
                                          note-markup
                                          (list " ("
                                                text-markup
                                                ")"))))))
            (make-line-markup (list text-markup)))
        (if note-markup
            (make-line-markup (list (make-concat-markup note-markup)))
            (make-null-markup)))))
           
\score {
  {
  %% default for `textFirst` is #t, i.e. unchanged behaviour to vanilla LilyPond
  \tempo "Allegro" 4=120
  b1
  \set Score.textFirst = ##f
  \tempo "Allegro" 4=120
  b1
 
  \unset Score.textFirst
  \set Score.tempoHideNote = ##t
  \tempo "Allegro" 4=120
  b1
  \set Score.textFirst = ##f
  \tempo "Allegro" 4=120
  b1
  \break
        %% revert previous setting of `tempoHideNote`
  \unset Score.tempoHideNote
  \tempo "mährisch" 4=120 -130
  b
  }
  \layout {
  \context {
    \Score
    %% call the new formatter
    metronomeMarkFormatter = #my-format-metronome-markup
  }
  }
}

Gruß,
  Harm

georgfx