Notationsspezifisch > Noten für Gitarre

Fingersatz schreiben Syntax

<< < (2/2)

harm6:

--- Code: ---%% needs:
\version "2.19.36"

#(define-public (polite-event-chord-wrap! music)
  "Wrap isolated rhythmic events and non-postevent events in
@var{music} inside of an @code{EventChord}. 
Events of type @code{FingeringEvent}, @code{StrokeFingerEvent} and
@code{StringNumberEvent} stay in the @code{'articulations} of the rhythmic
event.  Chord repeats @samp{q} are expanded using the default settings of the
parser."
  (map-some-music
   (lambda (m)
     (cond ((music-is-of-type? m 'event-chord)
            (if (pair? (ly:music-property m 'articulations))
                (begin
                  (set! (ly:music-property m 'elements)
                        (append (ly:music-property m 'elements)
                                (ly:music-property m 'articulations)))
                  (set! (ly:music-property m 'articulations) '())))
            m)
           ((music-is-of-type? m 'rhythmic-event)
            (let* ((arts (ly:music-property m 'articulations))
                   (splitted-arts
                     (call-with-values
                       (lambda ()
                         (partition
                           (lambda (x)
                             (or (music-is-of-type? x 'fingering-event)
                                 (music-is-of-type? x 'stroke-finger-event)
                                 (music-is-of-type? x 'string-number-event)))
                           arts))
                       (lambda (a b) (list a b)))))
              (if (pair? arts)
                  (set! (ly:music-property m 'articulations)
                        (car splitted-arts)))
              (make-event-chord (cons m (last splitted-arts)))))
           (else #f)))
   (expand-repeat-notes!
    (expand-repeat-chords!
     (cons 'rhythmic-event
           (ly:parser-lookup '$chord-repeat-events))
     music))))
     
politeEventChords =
#(define-music-function (music) (ly:music?)
   (_i "Compatibility function wrapping @code{EventChord} around
isolated rhythmic events occuring since version 2.15.28, after
expanding repeat chords @samp{q}.  Possible events of type
@code{FingeringEvent}, @code{StrokeFingerEvent} and
@code{StringNumberEvent} remain in the @code{'articulations} of the rhythmic
event.")
   (polite-event-chord-wrap! music))
     
 
\layout {
  \context {
    \Voice
    fingeringOrientations = #'(left)
    strokeFingerOrientations = #'(up)
    stringNumberOrientations = #'(right)
  }
}

\politeEventChords { c''2-1\2 -\rightHandFinger #2  ^"xy"-- }

--- Ende Code ---

Notensatzzweifel:
Danke. Auf den ersten Blick weit aus mehr als genial.

Notensatzzweifel:
Ich habe gerade einen musicXML-Import aus MuseScore ausprobiert. Eingeklammert und gejauchzt.

Deine verwendete Syntax im Beispiel ist ja c2-1. Beim Musicxml-Import aus MuseScore entsteht ein Freizeichen zwischen Note und Fingersatz. Also c2 -1. Was aber nicht stört.

Für Leute, die viele Akkorde in ihren Noten haben, gibt es einen Wermutstropfen.

MuseScore macht daraus <d fis>8  -3 -2. Dann stehen die Fingersätze am Halsende.

harm6:
Wie codiert MuseScore denn
\relative c' { <c-3 e-2 g c-1> }
d.h. g ohne jeglichen Fingersatz?

Man könnte ja eine Funktion schreiben, die
\relative c' { <c e g c> -3 -2 -0 -1 }
zu
\relative c' { <c-3 e-2 g-0 c-1> }
konvertiert, aber falls mittendrin eine Note überhaupt keinen Fingersatz hat, kann die Zuordnung nicht eindeutig erfolgen.

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln