Gelöst: Halb- und Ganztonzeichen

Begonnen von Joei, Montag, 1. Juli 2024, 17:43

« vorheriges - nächstes »

Joei

Moin,

wie kann ich solche Halb- und Ganztonmarkierungen anlegen?



Für Ganztöne könnte man die "Analytic Brackets" nutzen, aber ist auch nicht 100%

Dank&Gruß
Joei

Pusteblumi

Hallo Joei,

ich hab mir irgendwann mal das hier zusammengestellt:

% https://lists.gnu.org/archive/html/lilypond-user/2013-03/msg00748.html

\version "2.20.0"

#(define ((elbowed-glissando coords) grob)

   (define (pair-to-list pair)
     (list (car pair) (cdr pair)))

   (define (normalize-coords goods x y)
     (map
      (lambda (coord)
        (cons (* x (car coord)) (* y (cdr coord))))
      goods))

   (define (my-c-p-s points thick)
     (make-connected-path-stencil
      points
      thick
      1.0
      1.0
      #f
      #f))

   ; outer let to trigger suicide
   (let ((sten (ly:line-spanner::print grob)))
     (if (grob::is-live? grob)
         (let* ((thick (ly:grob-property grob 'thickness 0.1))
                (offs (ly:grob-property grob 'Y-offset 0))
                (xex (ly:stencil-extent sten X))
                (lenx (interval-length xex))
                (yex (ly:stencil-extent sten Y))
                (xtrans (car xex))
                (ytrans (+ (car yex) offs ))
                (uplist
                 (map pair-to-list
                   (normalize-coords coords lenx 3)))
                (downlist
                 (map pair-to-list
                   (normalize-coords coords lenx -3))))

           (ly:stencil-translate
            (my-c-p-s uplist thick)
            (cons xtrans ytrans)))
         '())))

#(define semi-tone-gliss
   (elbowed-glissando '((0.5 . -0.5) (1.0 . 0.15))))

#(define tone-gliss
   (elbowed-glissando '((0 . -0.5) (1.0 . -0.35) (1.0 . 0.16))))

#(define three-semi-tone-gliss
   (elbowed-glissando '((0 . -0.5) (0.5 . -1.0) (1.0 . -0.35) (1.0 . 0.15))))

glissandoSettings = {
  \override Glissando.Y-offset = #-1
  \override Glissando.thickness = #0.2
  \override Glissando.bound-details =
  #'((left    (padding . 0.2))
     (right   (end-on-accidental . #f) (padding . 0.2)))
}


semiTone =
#(define-event-function (parser location)()
   #{
     \tweak #'Y-offset #-1
     \tweak #'thickness #0.2
     \tweak #'bound-details
     #'((left    (padding . 0.2))
        (right   (end-on-accidental . #f) (padding . 0.2)))
     \tweak #'stencil #semi-tone-gliss
     \glissando
   #})

tone =
#(define-event-function (parser location)()
   #{
     \tweak #'Y-offset #-1
     \tweak #'thickness #0.2
     \tweak #'bound-details
     #'((left    (padding . 0.2))
        (right   (end-on-accidental . #f) (padding . 0.2)))
     \tweak #'stencil #tone-gliss
     \glissando
   #})

threeSemiTone =
#(define-event-function (parser location)()
   #{
     \tweak #'Y-offset #-1
     \tweak #'thickness #0.2
     \tweak #'bound-details
     #'((left    (padding . 0.2))
        (right   (end-on-accidental . #f) (padding . 0.2)))
     \tweak #'stencil #three-semi-tone-gliss
     \glissando
   #})


hts = \semiTone
gts = \tone


\relative c' {
  \override Staff.TimeSignature.stencil = ##f
  \override Staff.BarLine.stencil = ##f
  \glissandoSettings

  c1
  \gts
  d
  \hts
  ees
  \tone
  f
  \tone
  g
  \semiTone
  as
  \threeSemiTone
  b!
  \semiTone
  c
  \revert Staff.BarLine.stencil
  \bar "|."
}

Das allermeiste davon müsste von hier stammen:
https://lists.gnu.org/archive/html/lilypond-user/2013-03/msg00748.html

Viele Grüße,
Klaus

Joei


Manuela

(parser location) ist schon lange überholt und kann durch () ersetzt werden
Danke für eure Hilfe
viele Grüße
-- Manuela