Autor Thema: Klammerzeichen für "linke Hand"/"rechte Hand"  (Gelesen 4558 mal)

chrispema

  • Gast
Klammerzeichen für "linke Hand"/"rechte Hand"
« am: Dienstag, 24. Juni 2014, 19:40 »
Hallo,

ich würde gerne in meine Noten ein Zeichen für die zu benutzende Hand einfügen, wie es in dem beigefügten Beispiel zu sehen ist.
Ich hatte gehofft, dass Lilypond so ein Zeichen kennt, dem scheint aber nicht so zu sein. Jedenfalls habe ich nach stundenlangem Suchen nichts gefunden.
Da es sich im Grunde nur um zwei Linien handelt, habe ich es mit
\markup { \path 0.25 #'((moveto 0 0)(rlineto -2 0)(rlineto 0 5)) }
versucht, was an sich auch funktioniert. Das Problem ist nur: die Linien sind außerhalb des Notensystems, ich brauche sie aber direkt an der zugehörigen Note. Dafür habe ich leider keine Lösung gefunden.
Kann mir da jemand helfen?

Herzlichen Dank im Voraus!

Christof

lilypond-Version: 2.18.2

RobUr

  • Gast
Re: Klammerzeichen für "linke Hand"/"rechte Hand"
« Antwort #1 am: Mittwoch, 25. Juni 2014, 16:42 »
Hallo Christof und herzlich willkommen im Forum!

Als sehr guten Auftakt hast Du schonmal in der richtigen Abteilung gepostet. Hilft Dir vielleicht der Beitrag Klammerzeichen für Stimmzuweisung zur jeweiligen Hand aus derselben Abteilung?

Gruß, Robert

chrispema

  • Gast
Re: Klammerzeichen für "linke Hand"/"rechte Hand"
« Antwort #2 am: Mittwoch, 25. Juni 2014, 19:37 »
Hallo Robert,

danke für den Tipp, diesen Eintrag hatte ich leider übersehen.  ???

An sich gefällt mir der Vorschlag von hansfaust gut, ich würde das aber gerne in Form einer Routine/Variable verwenden, damit ich es nicht für jede Note neu eingeben muss (außerdem müsste ich für jede Note auch jedesmal mühsam die korrekten Koordinaten ermitteln... :o ). Ein Versuch mit Variable (also var = #"..." ./. -markup{\postscript \var}) ergab, dass ich bestenfalls immer dasselbe Ergebnis erhalte, unabhängig von der Notenhöhe. Ist natürlich nicht wirklich zielführend...

Kennt jemand eine Lösung? Ich kenne mich mit Postscript und Scheme (was als Lösungsansatz in einem Thread von sterndeuter angesprochen wurde) leider absolut nicht aus.

Wenn jemand was weiß, würde ich mich sehr freuen!

Musikalische Grüße,
Christof

trulli

  • Gast
Re: Klammerzeichen für "linke Hand"/"rechte Hand"
« Antwort #3 am: Donnerstag, 26. Juni 2014, 19:18 »
Hallo Christof,

erstmal herzlich Willkommen hier!

Du kannst für das \markup eine Abkürzung schreiben. Hier mal ein Vorschlag dazu:

\version "2.18.0"

RHK = \markup { %mark it for the right hand
        \postscript #"-1 1 moveto 0 5 rlineto stroke"
        \postscript #"-1.5 1 moveto 2 0 rlineto stroke" }


LHK = \markup { %mark it for the left hand
        \postscript #"-1 6 moveto 0 -5 rlineto stroke"
        \postscript #"-1.5 6 moveto 2 0 rlineto stroke"}

\relative c''
{
c-\LHK
c-\RHK
e-\RHK
e-\LHK
}

So ein kurzes Beispiel nennt man kompilierbaren Code. Wenn du Fragen oder Änderungswünsche hast, solltest du immer so einen Code in dein Beispiel schreiben. Daraus geht dann auch die Versionsnummer von LilyPond hervor (sehr wichtig) und alle Leute, die antworten, können in den Code gleich ihren Lösungsvorschlag reinschreiben.

Viel Erfolg und
Grüße von Trulli

chrispema

  • Gast
Re: Klammerzeichen für "linke Hand"/"rechte Hand"
« Antwort #4 am: Freitag, 27. Juni 2014, 21:10 »
Hallo Trulli,
vielen Dank für deine Antwort, das ist die Lösung für mein Problem!  :D
Ist ja an sich ganz einfach, nur drauf kommen muss man. Den Umgang mit Variablen muss ich mir wohl noch etwas genauer ansehen...  ???
Perfekt wäre es jetzt noch, wenn der waagerechte Strich immer in der Nähe des Notenkopfes liegen würde (wie in meinem Beispiel gezeigt), aber das würde wahrscheinlich schon Programmierkenntnisse erfordern.
Eine Möglichkeit bestünde natürlich darin, mit vier Variablen zu arbeiten und zu unterscheiden zwischen Noten unterhalb und oberhalb der h-Linie. Ob das aber wirklich brauchbar ist, muss ich erst mal austesten.
Mein erster Versuch damit sieht jedenfalls so aus:

\version "2.18.0"
\language "deutsch"
RHlow = \markup { %rechte Hand ab 'a' abwärts
            \postscript #"-0.5 0.7 moveto 0 5 rlineto stroke"
            \postscript #"-1.1 0.7 moveto 1.1 0 rlineto stroke" }

RHhigh = \markup { %rechte Hand ab 'h' aufwärts
            \postscript #"-0.5 3 moveto 0 5 rlineto stroke"
            \postscript #"-1.1 3 moveto 1.1 0 rlineto stroke" }

LHlow = \markup { %linke Hand ab 'a' abwärts
        \postscript #"-0.5 3 moveto 0 -5 rlineto stroke"
        \postscript #"-1.1 3 moveto 1.1 0 rlineto stroke"}

LHhigh = \markup { %linke Hand ab 'h' aufwärts
        \postscript #"-0.5 5 moveto 0 -5 rlineto stroke"
        \postscript #"-1.1 5 moveto 1.1 0 rlineto stroke"}

\relative c' {
    g'4-\RHlow
    a-\LHlow
    h-\RHhigh
    c-\LHhigh
}

Für Ideen, wie man daraus nun eine brauchbare Funktion basteln kann, bin ich natürlich gerne zu haben.  ;)
Ich lass den Thread mal noch ein paar Tage offen...

Mit besten Grüßen,
Christof

P.S. Wie oder wo könnte ich denn mal bei den Entwicklern um eine entsprechende Funktion ersuchen?

harm6

  • Gast
Re: Klammerzeichen für "linke Hand"/"rechte Hand"
« Antwort #5 am: Freitag, 27. Juni 2014, 22:45 »
Hallo,

Zitat
Für Ideen, wie man daraus nun eine brauchbare Funktion basteln kann, bin ich natürlich gerne zu haben. 
Ich lass den Thread mal noch ein paar Tage offen...

ich hab' mich hier noch nicht eingeschaltet, da ich mit anderen Projekten beschäftigt bin.
Bitte schließ' den Thread erstmal nicht, vielleicht habe ich am Wochenende Zeit (oder nächstes Wochenende ... )

Zitat
Wie oder wo könnte ich denn mal bei den Entwicklern um eine entsprechende Funktion ersuchen?
Auf der bug-mailing-list:
http://www.lilypond.org/website/bug-reports.html
Die ist ja nicht nur für tatsächliche bugs, sondern auch für feature-request zu benutzen.

Ist aber schon vor langem geschehen:
https://code.google.com/p/lilypond/issues/detail?id=1319

Du magst vielleicht auch an diesem Thread interessiert sein:
http://lilypond.1069038.n5.nabble.com/Left-hand-right-hand-editorial-annotation-td161987.html


Gruß,
  Harm

chrispema

  • Gast
Re: Klammerzeichen für "linke Hand"/"rechte Hand"
« Antwort #6 am: Samstag, 28. Juni 2014, 11:28 »
Danke Harm, für den Link zu dem Thread. Zu diesem Thema scheinen sich ja Welten aufzutun.  ??? Hätte nicht gedacht, dass so ein simples Zeichen nicht schon längst in Lily implementiert ist.
Die anderen Ideen, die ich gefunden habe, sind auch nicht schlecht, aber letztlich halt doch alles nur Behelfe.  :(

Zitat
Bitte schließ' den Thread erstmal nicht, vielleicht habe ich am Wochenende Zeit (oder nächstes Wochenende ... )
Mach ich doch gerne! Bin gespannt auf deine Ideen...  :) Und mach dir keinen Stress, ich hab's nicht eilig. Ich bin nur aus Spaß an der Freude mit Lily beschäftigt.

Wünsch dir ein wundervolles Wochenende!
Christof

trulli

  • Gast
Re: Klammerzeichen für "linke Hand"/"rechte Hand"
« Antwort #7 am: Samstag, 28. Juni 2014, 17:43 »
Hallo Christof,

soweit ich jetzt deinen Posts entnehme, geht es nur noch um minimale Verschiebungen der Klammer nach oben oder unten. Dafür brauchst du keine eigenen Definitionen zu schreiben.
Mit \override oder \tweak kannst du minimale Anpassungen vornehmen. Für eine derart seltene Schreibweise (ich hatte Klavier ja nur im Zweitfach, aber die Schreibweise mit den Klammern kannte ich gar nicht...) mag das vielleicht genügen.

\version "2.18.0"
\language "deutsch"
RHlow = \markup { %rechte Hand ab 'a' abwärts
            \postscript #"-0.5 0.7 moveto 0 5 rlineto stroke"
            \postscript #"-1.1 0.7 moveto 1.1 0 rlineto stroke" }


\relative c' {
   
   g'2-\RHlow
   g -\tweak #'Y-offset #-3 -\RHlow
   \override TextScript #'Y-offset = #-1
   g-\RHlow
   g-\RHlow 
}

Vielleicht können wir ja harms Kräfte damit ein wenig schonen.  ;)

Grüße von Trulli

chrispema

  • Gast
Re: Klammerzeichen für "linke Hand"/"rechte Hand"
« Antwort #8 am: Sonntag, 29. Juni 2014, 21:14 »
Hallo Trulli,

worum es mir geht ist eine Funktion, die die Hand-Klammer (ich nenn's jetzt mal so) automatisch in der Nähe des Kopfes platziert, egal, ob der Hals nach oben oder nach unten zeigt. Schön wäre natürlich auch, wenn die Länge der vertikalen Linie an die jeweilige Situaion angepasst würde, damit die Ästhetik gewahrt bleibt.  ;)
Mit der aktuellen Lösung bin ich für meine Zwecke absolut zufrieden, sie ist halt nur leider nicht sehr anwenderfreundlich. Hier nochmal zum besseren Verständnis, wie ich's in etwa gerne hätte:

\version "2.18.0"
RHlow = \markup {
            \postscript #"-0.5 0.7 moveto 0 5 rlineto stroke"
            \postscript #"-1.1 0.7 moveto 1.1 0 rlineto stroke" }

RHhigh = \markup {
            \postscript #"-0.5 3.2 moveto 0 5 rlineto stroke"
            \postscript #"-1.1 3.2 moveto 1.1 0 rlineto stroke" }

\relative c' {
   g'2-\RHlow _ok
   %% Bei Noten oberhalb der h-Linie soll die Klammer auch in Kopfnähe liegen... %%
   c-\RHlow % ... tut sie aber nicht.
   d-\tweak #'Y-offset #2 -\RHlow % Verschiebung funktioniert nicht...
   d-\tweak #'Y-offset #3 -\RHlow % ...oder Verschiebung ist viel zu groß!
   d-\RHhigh _ok % etwa so sollte es aussehen
}

Wenn so eine Funktion zuviel Arbeit bedeutet, weil sich jemand stunden- oder gar tagelang den Kopf zerbrechen muss, dann ist es das (aus meiner Sicht) nicht wert. Wie ich aber aus anderen Threads und Foren erfahren habe (siehe Links von Harm), ist diese Funktion schon seit langem angefragt und demnach offensichtlich auch nicht so ungewöhnlich.
Ich lass den Thread einfach noch 'ne Weile offen, mal sehen, was passiert...

Beste Grüße
Christof

harm6

  • Gast
Re: Klammerzeichen für "linke Hand"/"rechte Hand"
« Antwort #9 am: Sonntag, 6. Juli 2014, 21:13 »
Hier der Ansatz von Robin Bannister.

Er hackt das Arpeggio und seine Funktion thBr braucht einen string als Argument.
In diesem string gibt es  verschiedene Einstellmöglichkeiten via Ziffern und Sonderzeichen.
Robin hat leider keine Doku dazu gepostet, afaict. Ich bin mit dem Erforschen der Möglichkeiten auch noch nicht sehr weit gediehen, aber was ich weiß hab' ich ins erste Beispiel geschrieben. Den Rest wirst Du wohl auspropieren müssen.

\version "2.18.0"

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +thumb bracket

#(define (make-thumb-bracket-props location spec-str settings-alist)
  (define (inchar? index) (> (string-length spec-str) index))
  (define (inchar  index) (string-ref spec-str index))
  (define (char->dir ch)
   (case (char-upcase ch) ((#\R) 1) ((#\L) -1) (else 0)))
  (define (char->digit ch)
   (if (char-numeric? ch) (- (char->integer ch) (char->integer #\0)) 0))
  (define (inhit->1 key-str) (if (string-contains spec-str key-str) 1 0))
  (define (get key) (assq-ref settings-alist key))
  (define (warn p1 p2) (ly:warning
   (_ " ~a bad thumb-bracket ~a ~a~a~a") location p1 "" p2 ""))
  (let* ( ;% decode spec
    (vdir            (if (inchar? 0) (char->dir   (inchar 0)) 0))
    (vbigger  (* 0.5 (if (inchar? 1) (char->digit (inchar 1)) 0)))
    (vfurther (* 0.5 (if (inchar? 2) (char->digit (inchar 2)) 0)))
    (hcloser  (* 0.5 (if (inchar? 3) (char->digit (inchar 3)) 0)))
    (hrear    (* 0.5 (if (inchar? 4) (char->digit (inchar 4)) 0)))
    (vbigger+ (* 5 (string-count spec-str #\|)))
    (posdir   ((if (string-contains spec-str "*") - +) vdir))
    (hcloser? (eq? (string-contains spec-str "!") #f))
    (vtip=?   (string-contains spec-str "="))
    (hdir-req (- (inhit->1 "]") (inhit->1 "[")))
    (closed? (char-lower-case? (inchar 0))))
   (if (zero? vdir) (begin (warn "first char in" spec-str) '())
   (let* ( ;% collect settings
    (hdir-init (get 'hdir-init))   (htip (get 'htip))
    (vtip (get (if vtip=? 'vtip= 'vtip))) 
    (vstem (get 'vstem))   (vmin (get 'vmin))   (hvernier (get 'hvernier))
    (vO 0) (hO 0) (hpad-base 0.5) ;% givens
    (hdir (if (zero? hdir-req) hdir-init hdir-req))
    (hflip? (positive? hdir))
    (h-interval
     (if (positive? hdir) (cons hO (+ htip hrear)) (cons (- hrear) htip)))
    (vsize (+ vtip (if closed? vtip vstem) vbigger vbigger+))
    (vsize+ (if (and closed? (< vsize vmin)) (- vmin vsize) 0))
    (vshift (+ vfurther vtip (* 0.5 vsize+)))
    (bracket (lambda (grob) (let* ( ;% collect chord range from grob
      (vnote-lo-hi (ly:grob-property grob 'positions))
      (vnote ((if (eq? posdir 1) cdr car) vnote-lo-hi)))
     (grob-interpret-markup grob (markup #:translate (cons
        ((if (positive? hdir) - +) hvernier) (- vnote (* vdir vshift)))
       #:combine #:draw-line (cons htip vO) #:combine
        #:translate (cons hO (if closed? (* vdir (+ vsize vsize+)) vO))
         #:draw-line (cons htip vO)
        #:translate (cons (if (positive? hdir) htip hO) vO)
         #:draw-line (cons hO (* vdir (+ vsize vsize+)))))))))
    ;% alist of props for misusing Arpeggio as a thumb bracket
    `((stencil . ,bracket)
      (X-extent . ,h-interval)
      (padding . ,((if hcloser? - +) hpad-base hcloser))
      (direction . ,hdir)
      (thickness . ,(get 'weight)))))))

thumbBracketEx = #(define-music-function
  (parser location spec settings) (string? list?)
 (let* (
   (props (make-thumb-bracket-props location spec settings)))
   (define (get key) (assq-ref props key))
  (if (null? props) (make-music 'SequentialMusic 'void #t)
   #{
     \once \override Arpeggio.stencil   = #(get 'stencil)
     \once \override Arpeggio.X-extent  = #(get 'X-extent)
     \once \override Arpeggio.padding   = #(get 'padding)
     \once \override Arpeggio.direction = #(get 'direction)
     \once \override Arpeggio.thickness = #(get 'thickness)
     $(make-music 'EventChord 'elements (list (make-music 'ArpeggioEvent)))
   #})))

thumbBracket = #(define-music-function (parser location spec) (string?)
 (let ((settings thumbBracketSettings)) ;% as Defaults, or user defined
   ((ly:music-function-extract thumbBracketEx)
      parser location spec settings)))

thumbBracketDefaults = #(quasiquote(
  (hdir-init . ,LEFT) ;% usual placement wrt note: on RIGHT or LEFT
  (weight    . 1.5  ) ;% line thickness
  (htip      . 0.8  ) ;% horizontal length of bracket tip
  (vtip      . 0.75 ) ;% usual vertical overlap beyond notehead centre
  (vtip=     . 0.30 ) ;% alternative vertical overlap
  (vstem     . 1.25 ) ;% length of an unextended open bracket (excl. tip)
  (vmin      . 0.6  ) ;% minimum length of a closed bracket
  (hvernier  . 0.2  ) ;% horizontal quasi-extra-offset
  ))

thumbBracketSettings =  \thumbBracketDefaults
             
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -thumb bracket

 #(define thBr thumbBracket) thbR = \thBr "R" thbL = \thBr "L"

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% Ein bißchen Erklärung, es gibt aber noch mehr zu erforschen ;)

\transpose a c'
{
\thBr "R" a'4
\thBr "L" a'4
\thBr "r" a'4
\thBr "l" a'4

\thBr "R6" a'4   % erste Ziffer vertikale Länge
\thBr "L6" a'4   % erste Ziffer vertikale Länge

\thBr "R08" a'4  % zweite Ziffer vertikale Versetzung
\thBr "L08" a'4  % zweite Ziffer vertikale Versetzung

\thBr "R008" a'4 % dritte Ziffer horizontale Versetzung
\thBr "L008" a'4 % dritte Ziffer horizontale Versetzung

\thBr "R0008" a'4 % vierte Ziffer horizontales padding vor der Klammer
\thBr "L0008" a'4 % vierte Ziffer horizontales padding vor der Klammer

\thBr "R=" a'4 % "=" bedeutet einen alternativen vertikalen Ansatzpunkt
\thBr "L=" a'4 % "=" bedeutet einen alternativen vertikalen Ansatzpunkt

}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Literaturbeispiele
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

global = {
  \key f \major
  \time 4/4
  \override Staff.TimeSignature.stencil = ##f
}
rhhi = { c'''16--[ b''16-- d'''16--  f''16--] }
rhlo = { d''32[ \thBr "L9" f''32 ees''32 d''32 ~ d''16 c''32 b'32] }
lhhi = { g'32[ aes'32 g'32 f'32 g'32 f'32 ees'32 d'32] }
lhlo = { s4 }
\markup "Reger 14"
\score {
\new PianoStaff <<
  \new Staff = "rh" { \clef treble \global << \rhhi \\ \rhlo >>}
  \new Staff = "lh" { \clef treble \global << \lhhi \\ \lhlo >>}
>>
\layout { indent = 0.0\cm }
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
global = {
  \key bes \major
  \time 4/4
  \override Staff.TimeSignature.stencil = ##f
}
rhhi = { <bes' bes''>4 <c''! a''>16[ <bes' g''>16 c''16 <ees''! g''>16] }
rhlo = { d''8[ ees''!8] \thBr "L" fis'16[ g'16 \thBr "R" a'16 <g' bes'>16] }
lhhi = { d'8[ ees'!8] c'16[ bes16 c'16 bes16] }
lhlo = { bes4 fis16[ g16 a16 bes16] }

\markup "Reger 17"
\score {
\new PianoStaff <<
  \new Staff = "rh" { \clef treble \global << \rhhi \\ \rhlo >>}
  \new Staff = "lh" { \clef treble \global << \lhhi \\ \lhlo >>}
>>
\layout { indent = 0.0\cm }
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
global = {
  \key bes \major
  \time 4/4
  \mergeDifferentlyHeadedOn
  \mergeDifferentlyDottedOn
  \override Staff.TimeSignature.stencil = ##f
}
rhhi = { <ees' g' bes' ees''>2-> <c' f' a' c''>-> <f' f''>2.*2/3-> }
rhlo = { s1  <a' c''>8--[ <f' a'>8--] <f' ~ bes'>8--[ <f' c''>8--]  }
lhhi = { c8[ g16 a16] bes16[ g16 c'8] 
         \thBr "R" c'16[ d'16 ees'16 d'16] c'16[ d'16 ees'16 c'16]
         \thBr "L4*" <a c'>8--[ <f a>8--] <f bes>8--[ c'8--] }
lhlo = { <c, c>4.-- c8-. <f, f>4.-- a,8-. d4-- d8--[ c8--] }

\markup "Reger 60"
\score {
\new PianoStaff <<
  \new Staff = "rh" { \clef treble \global << \rhhi \\ \rhlo >>}
  \new Staff = "lh" { \clef bass   \global << \lhhi \\ \lhlo >>}
>>
\layout { indent = 0.0\cm }
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
global = {
  \key aes \major
  \time 9/8
  \mergeDifferentlyHeadedOn
  \mergeDifferentlyDottedOn
  \override Staff.TimeSignature.stencil = ##f
}
rhhi = { ees''4.-> ees''4.-> ~ ees''8[ d''8 ees''8] }
rhlo = { \thBr "L" <aes aes'>8.[ <aes aes'>16 <aes aes'>8] r8
         \thBr "R*" <ees' g'>8-.[ <ees' g'>8-.] <ees' aes'>4. }
lhhi = { \oneVoice s4. r8 s4 s4. }
lhlo = { \thBr "R" <c ees ees'>8.[ <c ees ees'>16 <c ees ees'>8] s8
          <bes, ees des'>8^.[ <beses, ees des'>8^.] <aes, ees c'>4.^> }

\markup "Scriabin IMSLP #02002 II bar48"
\score {
\new PianoStaff <<
  \new Staff = "rh" { \clef treble \global << \rhhi \\ \rhlo >>}
  \new Staff = "lh" { \clef bass   \global << \lhhi \\ \lhlo >>}
>>
\layout { indent = 0.0\cm }
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
global = {
  \key fis \major
  \time 12/8
  \mergeDifferentlyHeadedOn
  \mergeDifferentlyDottedOn
  \override Staff.TimeSignature.stencil = ##f
}
rhhi = { eis'2. ~ eis'4. eis'4. }
rhlo = { cis'2. ~ cis'4. cis'4. }
lhhi = { \thBr "r4*=" <eis gis>2. ~ gis4 cis8 gis!4 g8 }
lhlo = { <cis, cis>2. <gisis,, gisis,>2. }

\markup "Scriabin IMSLP 10999 p5"
\score {
\new PianoStaff <<
  \new Staff = "rh" { \clef treble \global << \rhhi \\ \rhlo >>}
  \new Staff = "lh" { \clef bass   \global << \lhhi \\ \lhlo >>}
>>
\layout { indent = 0.0\cm }
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
global = {
  \key bes \major
  \time 9/8
  \mergeDifferentlyHeadedOn
  \mergeDifferentlyDottedOn
  \override Staff.TimeSignature.stencil = ##f
}
rhhi = { \partial 4 <cis' cis''>8[\( <d' d''>8] <ees' ees''>4
         <e' e''>8 <fis' fis''>4 <g' g''>8 <g' g''>4 <fis' fis''>8\) }
rhlo = { \partial 4 r8 r8 r8 bes'8[ bes'8] r8 e''8[ e''8]
         <a' ees''>8[ <a' ees''>8 <c'' ees''>8] }
lhhi = { \partial 4 \oneVoice r8 r8 r8 s4
         \once \override Rest.X-extent = #'(0 . 2.5)
         r8 s4 s4.}
lhlo = { \partial 4 s4 s8 <cis, cis>8[
         \thBr "R" <g bes g'>8] s8
         \thBr "R100=" %"R102="
         <bes e' bes'>8[ <cis, cis>8]
         \stemUp <cis, cis>8[<c, c>8 <a, a>] }

\markup "Scriabin IMSLP 08382 p47"
\score {
\new PianoStaff <<
  \new Staff = "rh" { \clef treble \global << \rhhi \\ \rhlo >>}
  \new Staff = "lh" { \clef bass   \global << \lhhi \\ \lhlo >>}
>>
\layout { indent = 0.0\cm }
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
global = {
  \key bes \major
  \time 4/4
  \mergeDifferentlyHeadedOn
  \mergeDifferentlyDottedOn
  \override Staff.TimeSignature.stencil = ##f
}
arpLengthenTo = #(define-music-function (parser location bound) (integer?)
#{ \once \override Arpeggio.positions = #(lambda (grob)
   (interval-union (cons bound bound) (ly:arpeggio::calc-positions grob)))
#})

%%% saw what looked like tie pushing arpeggio vertically when doubled up alto
rhhiA = {
  \once \override Arpeggio.arpeggio-direction = #down
  \once \override NoteColumn.force-hshift = #-0.2
  <\tweak transparent ##t  d' ees'' g'' c'''>1\arpeggio ~ <ees'' g'' c'''>1 }
rhhiB = {
  \once \override Arpeggio.arpeggio-direction = #down
  \arpLengthenTo #-4
  <ees'' g'' c'''>1\arpeggio  ~ <ees'' g'' c'''>1 }
rhhi = { \rhhiA \rhhiB }
rhlo = \repeat unfold 2 { \thBr "l22]" <f' bes'>1 ~ <f' bes'>1 }
lhhi = \repeat unfold 2 { \oneVoice r1 r1}
lhlo = \repeat unfold 2 { s1 s1 }

\markup "F9sus"
\score {
\new PianoStaff <<
  \new Staff = "rh" { \clef treble \global << \rhhi \\ \rhlo >>}
  \new Staff = "lh" { \clef bass   \global << \lhhi \\ \lhlo >>}
>>
\layout { indent = 0.0\cm }
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
global = {
  \key f \major
  \time 3/4
  \mergeDifferentlyHeadedOn
  \mergeDifferentlyDottedOn
}
rhhi = { a'2. }
rhlo = { r4
  \thumbBracketEx "L442" #(acons 'htip 2.5 thumbBracketSettings)
  <a c'>8[ <bes d'>8] <c' e'>8[ <a c'>8] }
lhhi = { f,2.}
lhlo = { \hideNotes f,16 } % spacing hack

\markup "Possibility"
\score {
\new PianoStaff <<
  \new Staff = "rh" { \clef treble \global << \rhhi \\ \rhlo >>}
  \new Staff = "lh" { \clef bass   \global << \lhhi \\ \lhlo >>}
>>
\layout { indent = 0.0\cm }
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\new Staff = "down" {
  \clef bass
  \set tieWaitForNote = ##t
  \times 2/3 { cis,8~ d~ \thBr "R4001" a~ } <cis, d a>4
  \times 2/3 { d,8~ fis~ \thBr "R" d'~ } <d, fis d'>4
  \bar "||"
}


Gruß,
  Harm

chrispema

  • Gast
Re: Klammerzeichen für "linke Hand"/"rechte Hand"
« Antwort #10 am: Mittwoch, 9. Juli 2014, 20:52 »
Harm, was soll ich sagen... mir steht der Mund offen vor Staunen!  :o
Das ist genau das, wonach ich gesucht habe. Vielen herzlichen Dank dafür!
Da ich mich mit Scheme überhaupt nicht auskenne, werd ich sehr wahrscheinlich nicht alle Möglichkeiten ausfindig machen, aber die Grundfunktionen (die ja wirklich sehr leicht zu bedienen sind!  :) ) reichen für meine Zwecke vollkommen aus.

Problem gelöst und ein glücklicher Lily-User mehr!  ;)

Beste Grüße,
Christof