Notationsspezifisch > Noten für Gitarre

Lagenwechsel - Strich anfügen und verschieben

<< < (2/2)

trulli:
Hallo harm6,

herzlich Willkommen und danke für deine Lösungen!

Da dieser Thread vom Lagenwechsel handelt, wäre es schön, wenn du in diesem Barre-Thread deinen Barre-Vorschlag posten kannst. Dort ist nach meiner Meinung die bisher beste Lösung (\arpBarre) von Comper gepostet. Die Comper-Definition braucht nur eine einzige Längenangabe, während deine Definition zwei braucht. Trotzdem bitte posten, denn deine Lösung ist auch interessant und sicher für viele nützlich.

An deiner Lagenwechseldefinition gefällt mir besonders, dass man die Länge des Striches stufenlos einstellen kann. \guides #'(2 . 0) #'-0.2 #'12 #'(left). Es ist zwar selten, aber manchmal braucht man eben auch einen langen Strich.

Auch hast du das Problem des beginnenden Lagenwechsels vor dem Zeilenumbruch gelöst. Bei meiner Lösung wäre das nur durch eine umständliche Verschiebung möglich und dann könnten in derselben Stimme auch keine Fingersätze mehr stehen.

Grüße von Trulli

harm6:
Bei erneuter Durchsicht meiner obigen Definition fiel mir auf, daß ich einen Wert "doppeltgemoppelt" eingebaut habe.

Hier die Verbesserung (mit noch einigen Veränderungen):


--- Code: ---\version "2.12.3"

\pointAndClickOff

guides = #(define-music-function (parser location ext shift side note)(pair? number? list? ly:music?)
#{
     \once\override Voice.StringNumber #'stencil = #ly:text-interface::print
     \once\override Voice.StringNumber #'text =
     \markup { \override #'(thickness . 1.5) \draw-line $ext  }      
     \once\override Voice.StringNumber #'Y-offset = $shift
     \once\override Voice.StringNumber #'script-priority = #150 % default ist 100
     \set stringNumberOrientations = $side
     \set fingeringOrientations = #'(left)
     $note
     \set stringNumberOrientations = #'(down)
     \set fingeringOrientations = #'(up)

#})

bracketsArp =
#(define-music-function (parser location ext transp)(pair? boolean?)
   #{
     \once\override Voice.Arpeggio #'stencil = #ly:text-interface::print
     \once\override Voice.Arpeggio #'text = \markup { \stencil #(ly:bracket Y $ext 0.1 0.4) }
     \once\override Voice.Arpeggio #'X-extent = #'( 0 . 0.2)
     \once\override Voice.Arpeggio #'script-priority = #125 % default ist 0
     \once\override Voice.Arpeggio #'transparent = #$transp
     $(make-music 'EventChord 'elements (list (make-music 'ArpeggioEvent)))
   #})

\paper{ ragged-right = ##t }

 \relative c''
        {
        \key a \major
           \time 2/2

           \set fingeringOrientations = #'(left)
%%1
<e,-1 a-2 cis-3>2. <e a cis>4 |
%%2
<dis-1 a'-2 cis-3 fis-4>2. <dis a' cis fis>4 |
%%3
<d? a' cis fis>2.

<dis-1 a'-2 cis-3 fis-4>4
%%4
\bracketsArp #'(-1.5 . 4.5) ##t
\guides #'(1.5 . 0.4) #'-0.4 #'(left)
<gis-1 \1
d'?-\tweak #'extra-offset #'(0 . -0.2) -2\1
fis-\tweak #'extra-offset #'(0 . 0.2) -3\1
b-4\1
>2.
\guides #'(1.5 . 0.4) #'0.4 #'(right)
<dis-1\1 a'-2\1 cis-3\1 fis-4\1>4
\break
%5
\bracketsArp #'(-1.5 . 4.5) ##f
\guides #'(1.5 . 0.4) #'-0.4 #'(left)
<gis-1 \1
d'?-\tweak #'extra-offset #'(0 . -0.2) -2\1
fis-\tweak #'extra-offset #'(0 . 0.2) -3\1
b-4\1
>4
<gis-1\3>2.
        }
--- Ende Code ---

Desweiteren habe ich angeregt durch http://lsr.dsi.unimi.it/LSR/Item?id=662 versucht eine Fingerführen-Funktion mittels TextSpanner zu bauen ("\slide" Code siehe unten). Das Ergebnis ist in der Handhabung sehr umständlich, und das Verhalten beim Zeilenumbruch habe ich nicht in den Griff bekommen. Aber man kann lange Striche ziehen und dabei andere Noten "links liegenlassen".
Darüberhinaus kann man in Kombination mit meiner obigen \guides-Definition Führungsstriche in verschiedenen Winkeln ziehen. (Ist mit \guides allein nicht möglich und mit \slide noch viel umständlicher).
Deshalb poste ich das Ergebnis doch noch (Das Bildergebnis im Anhang):


--- Code: ---\version "2.12.3"
\pointAndClickOff

slide = #(define-music-function (parser location finger shift shorten pad)
(string? pair? pair? number?)        
#{        
 \once\override TextSpanner #'font-encoding = #'fetaNumber
 \once\override TextSpanner #'(bound-details left text) = \markup { \fontsize #-5 $finger " " }
 \once\override TextSpanner #'bound-details #'left #'stencil-align-dir-y = #CENTER
 \once\override TextSpanner #'style = #'line
 \once\override TextSpanner #'extra-offset = #$shift
 \once\override TextSpanner #'(bound-details right Y) = #$pad
 \once\override TextSpanner #'bound-details #'left #'padding = #(car $shorten)
 \once\override TextSpanner #'bound-details #'right #'padding = #(cdr $shorten)
 \once\override TextSpanner #'thickness = #1.5
#})

guides = #(define-music-function (parser location ext shift side note)
(pair? number? list? ly:music?)
#{
     \once\override Voice.StringNumber #'stencil = #ly:text-interface::print
     \once\override Voice.StringNumber #'text = \markup { \override #'(thickness . 1.5) \draw-line $ext  }      
     \once\override Voice.StringNumber #'Y-offset = $shift
     \once\override Voice.StringNumber #'script-priority = #150 % default ist 100
     \set stringNumberOrientations = $side
     \set fingeringOrientations = #'(left)
     $note
     \set stringNumberOrientations = #'(down)
     \set fingeringOrientations = #'(up)
#})

#(define startSlide startTextSpan )
#(define stopSlide stopTextSpan )


\paper { ragged-right = ##t }

\new Staff { \relative c'
        {

        \set fingeringOrientations = #'(left)
    \slide " 2  " #'(-0.5 . -5.3)  #'(-1 . 1.6) #'0.7
     <a'>16\startSlide  <e-1> <b'-2>\stopSlide b  b2

    \slide " 2   " #'(-0 . -4.6) #'(-2 . 3) #'-0.8
     b4\startSlide
     <a'-4>8 <a,-2>\stopSlide
    
    \slide " 1   " #'(-0 . -6.6) #'(-2 . 4) #'0.9
     <g>\startSlide <ais'-4>
    
    \guides #'(1.5 . 0.4) #'-0.4 #'(left)
     <aes,-1 c'-4\1>2\stopSlide
        }
}
--- Ende Code ---


Grüße
    Harm

P.S. zum Barré später mehr (im richtigen Thread)

harm6:
Hallo Trulli,

ich habe mal versucht meine stufenlose Einstellbarkeit des Striches in Deine Lagenwechsel-Definition einzubauen:


--- Code: ----\tweak #'text #(markup #:concat ( #:raise 0.5 #:draw-line '(-2 . -0.4)  "3")) -3
--- Ende Code ---

Mir persönlich gefällt es aber besser, wenn zwischen dem Strich und dem Fingersatz etwas Platz ist.

Also habe ich concat rausgenommen und stattdessen pad-to-box als variablen Platzschaffer eingeführt.
Auch habe ich die Definition aufgeteilt auf zwei Fingersatzangaben.
(<b-5-4\7\8> funktioniert zu meiner großen Überraschung.)
Den Platz hätte ich gerne, insbesondere wenn ich daran denke, daß noch ein Barré irgendwo hin soll, den ich am liebsten nach dem Führungsstrich und vor der Fingersatzzahl sehe.

(Anm.: #:box ist auskommentiert, dient nur der besseren Sichtbarkeit beim Einstellen der Werte)


--- Code: ----3 -\tweak #'text #(markup #:line (
                    ;#:box
                    #:pad-to-box `(-2 . 0) '(0 . 0)
                    #:raise -0.5
                    #:draw-line '(-2 . -0.4)))
 -3
--- Ende Code ---

Mir ist es aber nicht gelungen einige weitere Verbesserungen umzusetzen:


*  1. Es würde Bearbeitungszeit sparen, wenn man in draw-line nicht die x/y-Koordinaten angäbe, sondern x-Koordinate und Winkel.

*  2. Es würde ebenfalls Zeit sparen und die Übersichtlichkeit der Datei verbessern, wenn man das ganze in eine scheme-Routine packen könnte.

*  3. Das überschreiben der StringNumber analog zum Überschreiben des fingering klappt nicht so ganz: Ich konnte den circle-Vorgang nicht abstellen.

Anbei noch ein Beispiel. Es mag als Pseudo-change-log und Anwendungstest dienen.


--- Code: ---\version "2.12.3"

\pointAndClickOff

% Meine Barre-Definition. (brauch ich nur fürs testen)

bracketsArpTwo =
#(define-music-function (parser location ext transp)(pair? boolean?)
   #{
     \once\override Voice.Arpeggio #'stencil = #ly:text-interface::print
     \once\override Voice.Arpeggio #'text = \markup { \stencil #(ly:bracket Y $ext 0.1 0.4) }
     \once\override Voice.Arpeggio #'X-extent = #'( 0 . 0.2)
     \once\override Voice.Arpeggio #'script-priority = #125 % default ist 0
     \once\override Voice.Arpeggio #'transparent = #$transp
     $(make-music 'EventChord 'elements (list (make-music 'ArpeggioEvent)))
   #})
  
\paper {
        ragged-right = ##t
        indent = 0
}
\relative c'' {
    \clef "treble_8"

    \set fingeringOrientations = #'(left)
  
%1
<b>8
<d-\tweak #'text
#(markup #:concat (
                        #:rotate 10
                        #:raise -0.4 "—" "3"))
 -3
>
c2.^"Original Trulli"
\break

%2
<b-5-4\7\8>8
<d-\tweak #'text
#(markup #:concat (
                        #:raise 0.5
                        #:draw-line '(-2 . -0.4)  "3"))
 -3
>
c2.^"2. mit draw-line und concat"
\break

%3
b8
<d-\tweak #'text #(markup #:line (
                        #:raise 0.5
                        #:draw-line '(-2 . -0.4)
                        "3" ))
 -3
 >
c2.^"3. mit draw-line ohne concat"
\break

%4
b8
<d-\tweak #'text #(markup #:line (
                           ;#:box
                           #:pad-to-box `(-3 . 0) '(0 . 0)
                           #:raise 0.5
                           #:draw-line '(-2 . -0.4)
                           "3" ))
 -3
 >
c2.^"4. mit draw-line und pad-to-box (um variablen Platz zu schaffen) ohne concat"  
\break

%5
b8
    \once\override Arpeggio #'extra-offset = #'(3 . 0)
    \bracketsArpTwo #'(-1.5 . 6.5) ##f
<d-\tweak #'text #(markup #:line (
                                ;#:box
                                #:pad-to-box `(-2 . 0) '(0 . 0)
                                #:raise 0.5
                                #:draw-line '(-2 . -0.4)
                                "3" ))
 -3
 >
c2.^"5. Dieselbe Funktion plus barré"
\break

%6
b8
<d-3 -\tweak #'text #(markup #:line (
                                ;#:box
                                #:pad-to-box `(-2 . 0) '(0 . 0)
                                #:raise -0.5
                                #:draw-line '(-2 . -0.4)))
 -3
 >
c2.^"6. Dieselbe Funktion aufgeteilt! (raise-Wert ändert sich !)"
\break
 
%7
b8
    \once\override Arpeggio #'extra-offset = #'(3 . 0)
    \bracketsArpTwo #'(-1.5 . 6.5) ##f
     <d-3 -\tweak #'text #(markup #:line (
                         ;#:box
                         #:pad-to-box `(-2 . 0) '(0 . 0)
                         #:raise -0.5
                         #:draw-line '(-2 . -0.4)))
 -3
 >
c2.^"7. Dieselbe Funktion (aufgeteilt) plus barré"
\break
%8
    \set fingeringOrientations = #'(right)
b8
<d-3 -\tweak #'text #(markup #:line (
                               ;#:box
                               #:pad-to-box `(0 . 2.2) '(0 . 0)
                               #:raise 1
                               #:draw-line '(2 . 0.7)))
 -3
 >
<f-3 -\tweak #'text #(markup #:line (
                                ;#:box
                                #:pad-to-box `(0 . 2.2) '(0 . 0)
                                #:raise -1.3
                                #:draw-line '(2 . -1)))
 -3
>2.^"8. Dieselbe Funktion (aufgeteilt) nach rechts plus Zeilenumbruch"
\break
%9
    \set fingeringOrientations = #'(left)
<d-3 -\tweak #'text #(markup #:line (
                                 ;#:box
                                 #:pad-to-box `(0 . 0) '(0 . 0)
                                 #:raise -1.2
                                 #:draw-line '(-2 . -0.7)))
 -3
 >1
\break

%10
    \set fingeringOrientations = #'(right)
    \set stringNumberOrientations = #'(right)
b8
<d-3 -\tweak #'text #(markup #:line (
                                 ;#:box
                                 #:pad-to-box `(0 . 2.2) '(0 . 0)
                                 #:raise -1
                                 #:draw-line '(2 . 0.7)))
 \7
 >
<f-3
                  -5
 >2.^"9. Dieselbe Funktion als Stringnumber-Ersetzung"
}
--- Ende Code ---

Im Anhang noch das Bild dazu.


Gruß,
  Harm

harm6:
Um diesen Thread nicht mit weiteren langen Texten zu belasten, habe ich ein Zwischenergebnis meiner weiteren Grübeleien nur in den Anhang gepackt.

Grüße,
  Harm

trulli:

--- Zitat von: harm6 am Samstag,  2. April 2011, 22:34 ---Mir persönlich gefällt es aber besser, wenn zwischen dem Strich und dem Fingersatz etwas Platz ist.

--- Ende Zitat ---

Ja, ich finde auch, dass das besser aussieht.
Ich erreiche den gewünschten Platz mit einem einfachen Leerzeichen vor dem Fingersatz.
Also statt:
-\tweak #'text #(markup #:concat ( #:raise 0.5 #:draw-line '(-2 . -0.4) "3")) -3
dann:
-\tweak #'text #(markup #:concat ( #:raise 0.5 #:draw-line '(-2 . -0.4)  " 3")) -3

Gruß

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln