Notationsspezifisch > Noten für Gitarre

TextSpanner-Befehl für Barré-Angabe abkürzen

<< < (2/4) > >>

fugenkomponist:

--- Zitat von: Castor am Sonntag,  9. Februar 2014, 13:22 ---@ fugenkomponist: ich hatte nur nach so einem "barre = define blablabla" dingens gesucht, wie du und Eluze für mich gemacht habt, und deshalb nicht dran gedacht, dass ein beispiel vllt hilfreich wäre. aber hättest es ja einfach an .. was weiß ich ..


--- Code: ---\relative c' { c1 c c }
--- Ende Code ---

oder so ausprobieren können, was vllt sogar schneller gegangen wäre als es auf irgendein bsp von mir anzuwenden ..

lg Castor

--- Ende Zitat ---
Sorry, ich hab halt nie oder fast nie TextSpanner verwendet … \relative c' { c1 c c } hätte ich auch noch selbst zusammen bauen können, aber ich hätte nicht auf Anhieb gewusst, was eigentlich ein TextSpanner ist und wie ich ihn da jetzt einsetze …

Castor:
@ Eluze: Tausend Dank, so gefällt mir das!! :D

@ fugenkomponist: kein problem, nächstes mal tu ich ein einfaches bsp dazu ;)

harm6:
Hallo,

um den Text und den Startpunkt in eine Funktion zu packen kann man so vorgehen:


--- Code: ---\version "2.18.0"

startBarr =
#(define-event-function (parser location str) (string?)
  #{ 
    \tweak TextSpanner.bound-details.left.text \markup \upright \concat { $str " " }
    \startTextSpan
  #})
 
stopBarr = \stopTextSpan

\relative c'' {
  \acciaccatura f,8 g\startBarr III
   d' bes g' \acciaccatura { e16-4 d-1 } <e-3>8 bes g' d\stopBarr |
}
--- Ende Code ---

oder ausgefeilter und mit mehr features:


--- Code: ---\version "2.18.0"

startBarrB =
#(define-event-function (parser location str) (string?)
  (let* ((mrkp (markup #:vcenter #:upright #:concat (str " "))))

    (define (width grob text-string)
      (let* ((layout (ly:grob-layout grob))
             (props (ly:grob-alist-chain
                       grob
                       (ly:output-def-lookup layout 'text-font-defaults))))
      (interval-length
         (ly:stencil-extent
           (interpret-markup layout props (markup text-string))
           X))))
           
    #{ 
      \tweak TextSpanner.after-line-breaking
        #(lambda (grob)
          (let* ((mrkp-width (width grob mrkp))
                 (line-thickness (ly:staff-symbol-line-thickness grob)))
           (ly:grob-set-nested-property!
             grob
             '(bound-details left padding)
             (+ (/ mrkp-width -4) (* line-thickness 2)))))
      \tweak TextSpanner.bound-details.left.text #mrkp
      \tweak TextSpanner.bound-details.left-broken.text ##f
      %% adjust the numeric values to fit your needs:
      \tweak TextSpanner.bound-details.left-broken.padding 1.5
      \tweak TextSpanner.bound-details.right-broken.padding 1
      \tweak TextSpanner.bound-details.right.padding -1
      \tweak TextSpanner.bound-details.right-broken.text ##f
      \tweak TextSpanner.bound-details.right.text
        \markup \draw-line #'(0 . -0.75)
      \startTextSpan
    #}))
 
stopBarrB = \stopTextSpan

\relative c'' {
  \acciaccatura f,8 g\startBarrB "IX"
   d' bes g' \acciaccatura { e16-4 d-1 } <e-3>8 bes g' d\stopBarrB
   \break
   \acciaccatura f,8 g\startBarrB "IX" d' bes g' \acciaccatura { e16-4 d-1 } <e-3>8 bes g' d
   \break
   g, d' bes g' \acciaccatura { e16-4 d-1 } <e-3>8 bes g' d\stopBarrB
}

--- Ende Code ---

HTH,
  Harm

eluze:

--- Zitat von: harm6 am Sonntag,  9. Februar 2014, 23:03 ---
um den Text und den Startpunkt in eine Funktion zu packen kann man so vorgehen:


--- Code: ---
startBarr =
#(define-event-function (parser location str) (string?)
a { e16-4 d-1 } <e-3>8 bes g' d\stopBarr |
}
--- Ende Code ---

--- Ende Zitat ---
ahh - #(define-event-function ist  hier offenbar besser als #(define-music-function

danke für den tip!

das folgende gefällt mir eigentlich nur als zusammenfassung aller(?) properties, da man ja jedesmal die ganze funktion ändern müsste um zu variieren

--- Zitat ---oder ausgefeilter und mit mehr features:


--- Code: ---\version "2.18.0"

startBarrB =
#(define-event-function (parser location str) (string?)
 ...

--- Ende Code ---

--- Ende Zitat ---

wäre es angesichts der limitierten lagen nicht sinnvoller, die möglichen 19-20 lagen zu definieren

fretI=...
fretII=...

beste grüsse
Eluze

Castor:
auch wenn ich von diesem funktions-kram eig keine ahnung hab, schalt ich mich nochmal ein ;)


--- Zitat ---#(define-event-function ist  hier offenbar besser als #(define-music-function
--- Ende Zitat ---

inwiefern?


--- Zitat ---wäre es angesichts der limitierten lagen nicht sinnvoller, die möglichen 19-20 lagen zu definieren

fretI=...
fretII=...
--- Ende Zitat ---

warum limitiert? wenn man jetz \barre XX eingibt oder so geht das doch einwandfrei ..?

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln