lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: string-lines


From: Mario Moles
Subject: Re: string-lines
Date: Fri, 10 Jul 2009 00:49:31 +0200
User-agent: KMail/1.11.4 (Linux/2.6.29.6-desktop-1mnb; KDE/4.2.4; i686; ; )

In data venerdì 10 luglio 2009 00:08:19, Nick Payne ha scritto:
: > Here are the functions I use for a string number indication with a text
> spanner. One for up, one for down. I suppose it could be simplified to one
> function by passing in an extra parameter to indicate UP or DOWN.
>
> % usage e.g.:
> % \stringUp "2" #0 #'(0 . -0.5) #5 #1
> % g\startTextSpan c bf'-> ef, af-> c, g c bf'-> ef, af->
> c,\stopTextSpan
> stringUp = #(define-music-function (parser location stringnum osp shorten
> adjBreak adjEnd) (string? number? pair? number? number?) #{
> % set osp to 999 if spanner is colliding with another element
> % this will position the spanner outside all other elements
> % can be normally be set to zero
> \once \override TextSpanner #'outside-staff-priority = #$osp
> \once \override TextSpanner #'bound-details #'left #'text = \markup
> \bold { \teeny \concat { \circle { \finger $stringnum } " " } }
> \once \override TextSpanner #'font-shape = #'upright
> % setup dashed line and draw a bracket edge on RHS
> \once \override TextSpanner #'dash-period = #0.8
> \once \override TextSpanner #'dash-fraction = #0.6
> \once \override TextSpanner #'thickness = #0.8
> \once \override TextSpanner #'bound-details #'right #'text = \markup
> { \draw-line #'(0 . -0.5) }
> % set alignment of line with reference to left text
> \once \override TextSpanner #'bound-details #'left
> #'stencil-align-dir-y = #CENTER
> \once \override TextSpanner #'bound-details #'left #'padding = #(car
> $shorten)
> \once \override TextSpanner #'bound-details #'right #'padding =
> #(cdr $shorten)
> % allow adjustment of line end when it wraps to following stave
> \once \override TextSpanner #'bound-details #'right-broken #'padding
> = #$adjEnd
> % adjust LH end of line when it wraps to following stave so that it
> doesn't
> % extend to the left of the notes on the stave
> \once \override TextSpanner #'bound-details #'left-broken #'X =
> #$adjBreak
> % optional override to remove text and bracket edge at line breaks
> % \once \override TextSpanner #'bound-details #'left-broken #'text =
> ##f
> \once \override TextSpanner #'bound-details #'right-broken #'text =
> ##f
> #})
>
> % usage e.g.:
> % \stringDn "2" #0 #'(0 . -0.5) #5 #1
> % g\startTextSpan c bf'-> ef, af-> c, g c bf'-> ef, af->
> c,\stopTextSpan
> stringDn = #(define-music-function (parser location stringnum osp shorten
> adjBreak adjEnd) (string? number? pair? number? number?) #{
> % set osp to 999 if spanner is colliding with another element
> % this will position the spanner outside all other elements
> % can be normally be set to zero
> \once \override TextSpanner #'outside-staff-priority = #$osp
> \once \override TextSpanner #'direction = #DOWN
> \once \override TextSpanner #'bound-details #'left #'text = \markup
> \bold { \teeny \concat { \circle { \finger $stringnum } " " } }
> \once \override TextSpanner #'font-shape = #'upright
> % setup dashed line and draw a bracket edge on RHS
> \once \override TextSpanner #'dash-period = #0.8
> \once \override TextSpanner #'dash-fraction = #0.6
> \once \override TextSpanner #'thickness = #0.8
> \once \override TextSpanner #'bound-details #'right #'text = \markup
> { \draw-line #'(0 . 0.5) }
> % set alignment of line with reference to left text
> \once \override TextSpanner #'bound-details #'left
> #'stencil-align-dir-y = #CENTER
> \once \override TextSpanner #'bound-details #'left #'padding = #(car
> $shorten)
> \once \override TextSpanner #'bound-details #'right #'padding =
> #(cdr $shorten)
> % allow adjustment of line end when it wraps to following stave
> \once \override TextSpanner #'bound-details #'right-broken #'padding
> = #$adjEnd
> % adjust LH end of line when it wraps to following stave so that it
> doesn't
> % extend to the left of the notes on the stave
> \once \override TextSpanner #'bound-details #'left-broken #'X =
> #$adjBreak
> % optional override to remove text and bracket edge at line breaks
> % \once \override TextSpanner #'bound-details #'left-broken #'text =
> ##f
> \once \override TextSpanner #'bound-details #'right-broken #'text =
> ##f
> #})
>
> > -----Original Message-----
> > From: address@hidden
> > [mailto:address@hidden On
> > Behalf Of Jonathan Kulp
> > Sent: Friday, 10 July 2009 6:49 AM
> > To: Mark Polesky
> > Cc: address@hidden
> > Subject: Re: string-lines
> >
> > Mark Polesky wrote:
> > > You don't need any fancy scheme, just a music-function:
> > > http://lilypond.org/doc/v2.13/Documentation/user/lilypond/Simple-
> >
> > substitution-functions
> >
> >
> > Oh, sweet! That was about the easiest thing ever! Thanks for the
> > tip, Mark & Neil. :) This is much more elegant and useful.
> >
> > Revised in LSR:
> >
> > http://lsr.dsi.unimi.it/LSR/Item?u=1&id=616
> >
> > Here's how it looks now (in case you don't want to go to LSR):
> >
> > %\version "2.12.2"
> >
> > stringNumberSpanner = #(define-music-function (parser location
> > StringNumber) (string?)
> > #{
> > \override TextSpanner #'style = #'solid
> > \override TextSpanner #'font-size = #-5
> > \override TextSpanner #'(bound-details left
> > stencil-align-dir-y) = #CENTER
> > \override TextSpanner #'(bound-details left text) = \markup {
> > \circle \number $StringNumber }
> > #})
> >
> >
> > \relative c {
> > \clef "treble_8"
> > \stringNumberSpanner "5"
> > \textSpannerDown
> > a8\startTextSpan
> > b c d e f\stopTextSpan
> > \stringNumberSpanner "4"
> > g\startTextSpan a
> > bes4 a g2\stopTextSpan
> > }
> >


È possibile avere il file ly dell'esempio che riporti?
Il file png è interessante!
Grazie
> >
> >
> > _______________________________________________
> > lilypond-user mailing list
> > address@hidden
> > http://lists.gnu.org/mailman/listinfo/lilypond-user
> > Checked by AVG - www.avg.com
> > Version: 8.5.375 / Virus Database: 270.13.8/2224 - Release Date:
> > 07/08/09 05:53:00

--

oiram/bin/selom


reply via email to

[Prev in Thread] Current Thread [Next in Thread]