Hallo,
Ich möchte gern ein zeitgenössisches Manuskript des Stückes Kaya von Il-Ryun Chung transkribieren. Der Komponist verwendet diverse Sondernotationen welche ich übernehmen möchte.
Die folgenden sind für mich das größte Problem:
1) Dreiecke hinter den Noten (grün im Bild)
2) runde Akzentzeichen über den Noten (orange)
3) eingeklammerte Noten (lila)
Es gibt noch Weitere (siehe Zeichenerklärung), aber ich wäre schon sehr dankbar für eine der aufgelisteten.
Gruß, Jonas
Hallo Jonas,
einige Beispiele
\version "2.24.0"
% shortcuts
% Nennt man das 'mute' oder 'chuck'?
mute = { \once \override NoteHead.style = #'xcircle }
{
\parenthesize c'
\mute d'
d'^\lheel
c'^\rheel
}
Aus der Zeichenerklärung werde ich teilweise nicht ganz schlau. Kannst du vielleicht eine kurze Melodie mit Lilypond erzeugen und dann mit Paint o.ä. einzeichnen, wie genau das aussehen soll?
Grüße, Jürgen.
... hier noch ein Vorschlag für das Dreieck, mit der script-at-side Funktion von Harm (https://lilypondforum.de/index.php?msg=5860)
\version "2.24.0"
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Quelle: https://lilypondforum.de/index.php?msg=5860
#(define script-at-side
(lambda (grob)
(let* ((side-axis (ly:grob-property grob 'side-axis)))
(when (equal? X side-axis)
(let* ((par-x (ly:grob-parent grob X))
(par-y (ly:grob-parent grob Y))
(dir (ly:grob-property grob 'direction))
(nhd
(cond ((grob::has-interface par-x 'note-column-interface)
(car
(ly:grob-array->list
(ly:grob-object par-x 'note-heads))))
((grob::has-interface par-x 'note-head-interface)
par-x)
((grob::has-interface par-y 'note-head-interface)
par-y)
(else (ly:error "Need note-head as parent!"))))
(nc (ly:grob-parent nhd X))
(stem (ly:grob-object nc 'stem))
(nhds (ly:grob-array->list (ly:grob-object nc 'note-heads)))
(conditional-elts-array
(ly:grob-object nc 'conditional-elements #f))
(conditional-elts
(if conditional-elts-array
(ly:grob-array->list conditional-elts-array)
'()))
(acc-placement (ly:note-column-accidentals nc))
(accs
(if (ly:grob? acc-placement)
(map cadr (ly:grob-object acc-placement 'accidental-grobs))
'()))
(dot-col (ly:note-column-dot-column nc))
(dots
(if (ly:grob? dot-col)
(ly:grob-array->list (ly:grob-object dot-col 'dots))
'())))
(ly:grob-set-object! grob 'side-support-elements
(ly:grob-list->grob-array
(append
(list stem)
conditional-elts
nhds
accs
dots)))
(ly:grob-set-parent! grob Y nhd)
(let* ((script-row (ly:grob-object grob 'script-column #f))
(script-row-scripts-array
(if script-row
(ly:grob-object script-row 'scripts #f)
#f))
(script-row-scripts
(if script-row-scripts-array
(ly:grob-array->list script-row-scripts-array)
'()))
(already-offsetted
(filter
(lambda (sc)
(assoc-get
'x-offset-done
(ly:grob-property sc 'details)))
script-row-scripts))
(left-done
(filter
(lambda (sc)
(eqv? dir (ly:grob-property sc 'direction)))
already-offsetted))
(right-done
(filter
(lambda (sc)
(eqv? dir (ly:grob-property sc 'direction)))
already-offsetted)))
(ly:grob-set-object! grob 'side-support-elements
(ly:grob-list->grob-array
(append
left-done
right-done
(ly:grob-array->list
(ly:grob-object grob 'side-support-elements)))))
;; debugging aid
;(ly:grob-set-property! grob 'color cyan)
(ly:grob-set-property! grob 'Y-offset 0)
(ly:grob-set-nested-property! grob '(details x-offset-done) #t)
(ly:grob-set-property! grob 'X-offset
ly:side-position-interface::x-aligned-side)))))))
sideScript =
#(define-event-function (dir mus)(ly:dir? ly:music?)
#{
\tweak before-line-breaking #script-at-side
\tweak side-axis #X
\tweak direction #dir
$mus
#})
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% override stencil
tweakPrall = -\tweak stencil
#(lambda (grob)
(ly:make-stencil
'(path 0.1
( lineto 0.5 0.5
lineto 0.5 -0.5
closepath)
round
round
#t)
; x-extend
(cons -0.1 1.5)
; y-extend
(cons 0 1))) \prall
% shortcut
tri = \sideScript #1 \tweakPrall
% example
{
f' \tri
g' \tri
}
Grüße, Jürgen.
... die Bögen kann man auch per tweak zeichnen:
\version "2.24.0"
% override stencil
marcatoToArc = -\tweak stencil
#(lambda (grob)
(ly:make-stencil
'(path 0.2
(
moveto 0 0.125
curveto 0.25 -0.25 0.75 -0.25 1 0.125
)
round
round
#f)
; x-extend
(cons 0 1)
; y-extend
(cons 0 0.5))) ^\marcato
marcatoToArcInv = -\tweak stencil
#(lambda (grob)
(ly:make-stencil
'(path 0.2
(
moveto 0 -0.125
curveto 0.25 0.25 0.75 0.25 1 -0.125
)
round
round
#f)
; x-extend
(cons 0 1)
; y-extend
(cons 0 0.5))) ^\marcato
% shortcut
arc = \marcatoToArc
arcInv = \marcatoToArcInv
% example
{
c' \arc
c' \arcInv
b' \arc
g' \arc
d'' \arcInv
}
Grüße, Jürgen.
Danke!
Die Bögen habe ich durch Veränderung der Arpeggio-Bögen realisiert:
Hier hatte ich noch palmMutes für die Dreiecksnoten benutzt. Ich schwanke jetzt zwischen der script-at-side Lösung und jenen. Ich denke ich frage den Komponisten, was er besser findet.
\arpeggioParenthesis
<\parenthesize cis_\lheel
\palmMute f'' >4\arpeggio
Ich verlinke mal falls es jemanden interessiert die Partitur:
https://edition-ex-tempore.de/eet.html#Anchor-49424
Im Anhang mein Fortschritt bisher.