[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Custom drum noteHead in define expression
From: |
Karim Haddad |
Subject: |
Re: Custom drum noteHead in define expression |
Date: |
Wed, 4 Apr 2018 04:08:03 +0200 |
User-agent: |
NeoMutt/20170113 (1.7.2) |
Dear Thomas,
Thank you a lot. It is exactly what i was looking for and apparently no need
for adjustment in your example. All fits well.
However will try to learn how to fix the notehead position in the case i will
use other glyphs.
Thank you a lot
Best
K
On Wed, Apr 04, 2018 at 02:39:58AM +0200, Thomas Morley wrote:
> 2018-04-03 18:25 GMT+02:00 Karim Haddad <address@hidden>:
>
> > 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
--
Karim Haddad