Deutschsprachiges LilyPond-Forum

Spezielle Notation => Partituren und große Projekte => Thema gestartet von: georgfx am Donnerstag, 4. April 2024, 10:44

Titel: Tempobezeichnung
Beitrag von: georgfx am Donnerstag, 4. April 2024, 10:44
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
Titel: Antw:Tempobezeichnung
Beitrag von: martinmagtenor am Freitag, 5. April 2024, 08:24
Hallo Da Georg,

hier nicht fündig geworden?

Metronomangaben (https://lilypond.org/doc/v2.23/Documentation/notation/displaying-rhythms#metronome-marks)


Martin
Titel: Antw:Tempobezeichnung
Beitrag von: georgfx am Freitag, 5. April 2024, 10:42
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.
Titel: Antw:Tempobezeichnung
Beitrag von: georgfx am Freitag, 5. April 2024, 11:24
Problem so gelöst:
\tempo \markup { \rhythm { [ 4 ] } = 120 -130 \hspace #0.4 (mährisch) }
Titel: Antw:Tempobezeichnung
Beitrag von: harm6 am Samstag, 6. April 2024, 12:16
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
Titel: Antw:Tempobezeichnung
Beitrag von: georgfx am Dienstag, 7. Mai 2024, 21:07
Herzlichen Dank!