2018-04-03 18:25 GMT+02:00 Karim Haddad <[email protected]>:

> And thanx also for your snippet. I have already tried it and works 
> marvelously.
> But concerning customizing new note heads i think checking the code itself 
> seems necessary.
> Do you know if define-grobs.scm is a good place to start with ?

Well, some scheme-knowledge is needed.
There is a scheme-tutorial in the docs. Several guile tutorials out
there, as well as the guile manual.
Best general training is reading this list, though, trying to
understand the requests and trying to solve them.
If you read someones code, try to understand what happens and why, can
it be improved and ...

The Extending Manual is not bad as well.
I remember as a starter I did several exercises, defining several
custom-markup-command, markup-list-commands, substitution functions
etc etc
Homework, like a decade ago, but I'm still learning ;)

If you try to solve an own problem searching the archives is always a
good starting point.



On topic.
There's something annoying happening while using custom-styles. I just
wrote a bug-report about it:
http://lilypond.1069038.n5.nabble.com/custom-style-custom-stencil-combination-returns-warning-tt211374.html

So with the workaround, in the bug-report as well you could do:

\version "2.19.81"

#(define mydrums '(
         (bassdrum        myStyle   #f           -1)
         (snare           myStyleII   #f           0)
         (hihat           cross     #f           1)
         (halfopenhihat   cross     "halfopen"   1)
         (pedalhihat      xcircle   "stopped"    2)
         (lowtom          diamond   #f           3)))

#(define stencil-for-my-style
  (lambda (grob)
    (cond
      ((eq? 'myStyle (ly:grob-property grob 'style))
        (begin
          (ly:grob-set-property! grob 'style '())
          (grob-interpret-markup grob
            #{
              \markup \vcenter \musicglyph #"pedal.*"
            #})))
      ((eq? 'myStyleII (ly:grob-property grob 'style))
        (begin
          (ly:grob-set-property! grob 'style '())
          (grob-interpret-markup grob
            #{
%% from http://lsr.di.unimi.it/LSR/Item?id=515
%% slightly changed
               \markup \vcenter \scale #'(0.4 . 0.4) {
                   \combine
                     \translate #(cons -1.25 0) \combine
                       \draw-circle #0.65 #0 ##t
                       \override #'(thickness . 2.5) \draw-line #'(3 . -3)
                     \translate #(cons 1.25 0) \combine
                       \draw-circle #0.65 #0 ##t
                       \override #'(thickness . 2.5) \draw-line #'(-3 . -3)
                 }
            #})))
      (else (ly:note-head::print grob)))))

\new DrumStaff
  \with {
    drumStyleTable = #(alist->hash-table mydrums)
    \override NoteHead.stencil = #stencil-for-my-style
  }
  \drummode {
        bd8
        sn
        hh
        hhho
        hhp
        toml
  }

You may want to adjust stem-attachment.
I leave it as an exercise ;)


HTH,
  Harm

_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to