lilypond-user
[Top][All Lists]
Advanced

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

Re: how to write a scheme function to override glissando properties


From: Patrick Schmidt
Subject: Re: how to write a scheme function to override glissando properties
Date: Sun, 19 Dec 2010 21:22:09 +0100


Am 19.12.2010 um 20:13 schrieb Marc Hohl:

Am 16.12.2010 17:04, schrieb Patrick Schmidt:
[...]
Hi Marc,

thanks for your solution but I'm still trying to find out what's wrong with the scheme function I posted. I discussed the need for this function with Carl and he gave me some advice: http:// www.mail-archive.com/address@hidden/msg32745.html.

It might be impossible to find a general set of values for staves and tab staves. If I don't succeed I learned something about writing scheme functions, at least. Maybe you can spot the mistake in the function?
Hm, I don't know what's wrong - I tried something like

slide =
#(define-music-function (parser location len thick beg end) (number? number? ly:music? ly:music?)
  #{
     \once \override Glissando #'minimum-length = $len
     \once \override Glissando #'thickness = $thick
\once \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
      $beg \glissando $end
  #})


myMusic = \relative c' {
  \slide #10 #5 a4 b4\3
}

\score {
<<
 \new Staff {
   \new Voice {
     \clef "treble_8"
     \myMusic
   }
 }
 \new TabStaff {
   \new TabVoice {
     \myMusic
   }
 }
>>
}

and that doesn't work either. I don't understand why ...
Needless to say, that I don't understand it either...

Apparently it's not even possible to override the length of a glissando in one context without changing the look of the other context. Look at this:

\version "2.13.44"

slides = {
  a2\glissando b2\3
}

\score {
  <<
    \new Staff { \clef "treble_8" \slides }
    \new TabStaff { \slides }
  >>
  \layout {
    \context {
      \Voice
      \override Glissando #'minimum-length = #10
      \override Glissando #'springs-and-rods =
                          #ly:spanner::set-spacing-rods
      \override Glissando #'thickness = #3
    }
    \context {
      \TabVoice
      \override Glissando #'minimum-length = #1
      \override Glissando #'springs-and-rods =
                          #ly:spanner::set-spacing-rods
      \override Glissando #'thickness = #10
    }
  }
}

The values for minimum-length in different contexts influence each other. The highest value wins. This is reasonable but unfortunately the glissandi staves and tab staves don't have the same length in print even when they were given the same value for minimum-length...


Sorry for being not very helpful.
No, no, I appreciate your input very much.

Thanks,

patrick

Marc






reply via email to

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