lilypond-user
[Top][All Lists]
Advanced

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

Re: Ricochet bowing articulations


From: Pierre Perol-Schneider
Subject: Re: Ricochet bowing articulations
Date: Fri, 1 Nov 2019 11:00:49 +0100

Simplified:

\version "2.19.83"

#(define-markup-command (ric-mkp layout props note)(ly:music?)
  (interpret-markup layout props
   #{
     \markup {
        \override #'(baseline-skip . 1.5)
        \left-column
        {
          \line { \hspace #2 \teeny\bold "ric." }
          \score {
            \fixed b' {
              \shape #'(((-1 . -.5) (0 . -.5) (0 . -.5) (1 . -.5))) Slur
              \cadenzaOn #note r1
            }
            \layout {
              \context {
                \Score
                proportionalNotationDuration = #(ly:make-moment 1/7)
              }
              \context {
                \Staff
                \omit Clef
                \omit TimeSignature
                \omit Stem
                \omit Flag
                \omit Beam
                \omit Rest
                \override Rest.X-extent = #'(0 . .5)
                \override StaffSymbol.line-positions = #'(0)
                \override StaffSymbol.stencil = ##f
                \override NoteHead.stencil = #(lambda (grob)
                  (grob-interpret-markup grob #{ \markup\musicglyph #"dots.dot" #}))
              }
            }
          }
        }
      } #}))

ric = ^\markup \ric-mkp \etc

% Test:
{
  d''4 \ric ##{ b16( 16 8 16 16 8 16 16 16) #}
  s2.
  d''4 \ric ##{ b16( 16 16 16 16 16 16 16) #}
  s2.
  d''4 \ric ##{ b8( 8 8 8 8 8 4 16 16 16) #}
  s1..
  d''4 \ric ##{ b128( 128) #} % <= bad output...
  s2.
  d''4 \ric ##{ b4( 4 16) #}
}

Cheers,
Pierre

Le ven. 1 nov. 2019 à 00:54, Pierre Perol-Schneider <address@hidden> a écrit :
Some tests:

#(define-markup-command (ric layout props note)(ly:music?)
  (interpret-markup layout props
   #{
     \markup {
        \override #'(baseline-skip . 1.5)
        \left-column {
          \line { \hspace #2 \teeny\bold "ric." }
          \score {
            \fixed b' {
              \shape #'(((-1 . -.5) (0 . -.5) (0 . -.5) (1 . -.5))) Slur
              \cadenzaOn
              #note
              r1
            }
            \layout {
              \context {
                \Score
                proportionalNotationDuration = #(ly:make-moment 1/7)
              }
              \context {
                \Staff
                \omit Clef
                \omit TimeSignature
                \omit Stem
                \omit Flag
                \omit Beam
                \omit Rest
                \override Rest.X-extent = #'(0 . .5)
                \override StaffSymbol.line-positions = #'(0)
                \override StaffSymbol.stencil = ##f
                \override NoteHead.stencil = #(lambda (grob)
                  (grob-interpret-markup grob #{ \markup\musicglyph #"dots.dot" #}))
              }
            }
          }
        }
      } #}))

% Tests:
{
  d''4 ^\markup \ric ##{ b16( 16 8 16 16 8 16 16 16) #} s2.
  d''4 ^\markup \ric ##{ b16( 16 16 16 16 16 16 16) #} s2.
  d''4 ^\markup \ric ##{ b8( 8 8 8 8 8 8 8 8 8 16) #} s1 s
  d''4 ^\markup \ric ##{ b4( 4 16) #}
}

Le ven. 1 nov. 2019 à 00:44, Pierre Perol-Schneider <address@hidden> a écrit :
" \override Slur.positions = #'(0 . -3)" should be removed, not needed.

Le ven. 1 nov. 2019 à 00:38, Pierre Perol-Schneider <address@hidden> a écrit :
This should work:
#(define-markup-command (ric layout props note)(ly:music?)
  (interpret-markup layout props
   #{
     \markup {
        \override #'(baseline-skip . 1)
        \left-column {
          \line { \hspace #2 \teeny\bold "ric." }
          \score {
            \fixed b' {
              \shape #'(((-1 . -.5) (0 . -.5) (0 . -.5) (1 . -.5))) Slur
              #note
              r1
            }
            \layout {
              \context {
                \Score
                proportionalNotationDuration = #(ly:make-moment 1/10)
              }
              \context {
                \Staff
                \omit Clef
                \omit TimeSignature
                \omit Stem
                \omit Flag
                \omit Beam
                \omit BarLine
                \omit Rest
                \override Rest.X-extent = #'(0 . .5)
                \override StaffSymbol.line-positions = #'(0)
                \override StaffSymbol.stencil = ##f
                \override Slur.positions = #'(0 . -3)
                \override NoteHead.stencil = #(lambda (grob)
                  (grob-interpret-markup grob #{ \markup\musicglyph #"dots.dot" #}))
              }
            }
          }
        }
      } #}))

% Test:
{ d'' ^\markup \ric ##{ b16( 16 8 16 16 8 16 16 16) #} }

Le jeu. 31 oct. 2019 à 23:58, Pierre Perol-Schneider <address@hidden> a écrit :
PS. You can remove "\omit SystemStartBar", no need here.

Le jeu. 31 oct. 2019 à 23:55, Pierre Perol-Schneider <address@hidden> a écrit :
I was thinking of something just before going to bed:

{
  d''4^\markup {
        \override #'(baseline-skip . 1)
        \left-column {
          \line { \hspace #2 \teeny\bold "ric." }
          \score {
            \fixed b' {
              \shape #'(((-1 . -.5) (0 . -.5) (0 . -.5) (1 . -.5))) Slur
              { b16( 16 8 16 16 8 16 16 8 16 16 8) } % <= input the rhythm needed
              r1
            }
            \layout {
              \context {
                \Score
                proportionalNotationDuration = #(ly:make-moment 1/10)
                \omit SystemStartBar
              }
              \context {
                \Staff
                \omit Clef
                \omit TimeSignature
                \omit Stem
                \omit Flag
                \omit Beam
                \omit BarLine
                \omit Rest
                \override Rest.X-extent = #'(0 . .5)
                \override StaffSymbol.line-positions = #'(0)
                \override StaffSymbol.stencil = ##f
                \override Slur.positions = #'(0 . -3)
                \override NoteHead.stencil = #(lambda (grob)
                  (grob-interpret-markup grob #{ \markup\musicglyph #"dots.dot" #}))
              }
            }
          }
        }
      }
}

Now, for some reason, I did not succeed any markup function; this does not work:

#(define-markup-command (ric layout props note)(ly:music?)
  (interpret-markup layout props
   #{
     \markup {
        \override #'(baseline-skip . 1)
        \left-column {
          \line { \hspace #2 \teeny\bold "ric." }
          \score {
            \fixed b' {
              \shape #'(((-1 . -.5) (0 . -.5) (0 . -.5) (1 . -.5))) Slur
              { #note }
              r1
            }
            \layout {
              \context {
                \Score
                proportionalNotationDuration = #(ly:make-moment 1/10)
                \omit SystemStartBar
              }
              \context {
                \Staff
                \omit Clef
                \omit TimeSignature
                \omit Stem
                \omit Flag
                \omit Beam
                \omit BarLine
                \omit Rest
                \override Rest.X-extent = #'(0 . .5)
                \override StaffSymbol.line-positions = #'(0)
                \override StaffSymbol.stencil = ##f
                \override Slur.positions = #'(0 . -3)
                \override NoteHead.stencil = #(lambda (grob)
                  (grob-interpret-markup grob #{ \markup\musicglyph #"dots.dot" #}))
              }
            }
          }
        }
      } #}))

{ d'' ^\markup  { \ric b16 16 8 } }

Good night to you, cheers,
Pierre


Le jeu. 31 oct. 2019 à 20:26, Ben <address@hidden> a écrit :
On 10/31/2019 3:07 PM, Pierre Perol-Schneider wrote:
Manually you could do:

{
  d''^\markup
       \override #'(baseline-skip . 1.5)
       \left-column {
         \line { \hspace #2 \teeny\bold "ric." }
         \line {
            " "
            \overtie\concat {
              " " \pattern #3 #X #1 \musicglyph #"dots.dot"
              \hspace #10
              \concat {
                " " \pattern #3 #X #1 \musicglyph #"dots.dot"
                " "
              }
            }
         }
       }
}

Automagically, no time enough tonight, sorry...
Cheers,
Pierre

Many thanks for your help and time, Pierre :) Have a good night.


Le jeu. 31 oct. 2019 à 20:05, Ben <address@hidden> a écrit :
On 10/31/2019 2:50 PM, Pierre Perol-Schneider wrote:
Oops, I miss something, here it goes:

\version "2.19.83"

#(define-markup-command (ricochet layout props nb spce) (integer? number?)
  (interpret-markup layout props
    #{ \markup
       \override #'(baseline-skip . 1.5)
       \left-column {
         \line { \hspace #2 \teeny\bold "ric." }
         \line {
            " "
            \overtie\concat {
              " " \pattern #nb #X #spce \musicglyph #"dots.dot"
              " "
            }
         }
       } #}))

{
  d''^\markup\ricochet #7 #1 s s s
  d''^\markup\ricochet #3 #3
}

Cheers,
Pierre

Le jeu. 31 oct. 2019 à 19:45, Pierre Perol-Schneider <address@hidden> a écrit :
Hi Ben,
How about:

\version "2.19.83"

#(define-markup-command (ricochet layout props nb spce) (integer? number?)
  (interpret-markup layout props
    #{ \markup {
          " "
          \overtie\concat {
            " " \pattern #nb #X #spce \musicglyph #"dots.dot"
            " "
          }
        } #}))

{
  d''^\markup\ricochet #7 #1 s s s
  d''^\markup\ricochet #3 #3
}

HTH, cheers,
Pierre

Le jeu. 31 oct. 2019 à 15:45, Ben <address@hidden> a écrit :

Good morning!

How would it be possible to create the attached ricochet articulation in LilyPond?

Also, I'm looking for a way to be able to modify the dots in two ways, for example: add/remove the number of dots (3-6) per articulation instance, and add some space in between several of the dots to suggest a certain 'rhythm' to the ricochet.

Any suggestions would be appreciated. :)

Thanks!


Maybe something like this, where you can group dots and then add space?

c''2^\markup\ricochet #2  #1 #4 s2 |

(   group 2 dots    <1 space>    group 4 dots    |   )

Is this doable?



reply via email to

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