[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: combine different note heads (drumset)
From: |
Daniel E. Moctezuma |
Subject: |
Re: combine different note heads (drumset) |
Date: |
Sun, 22 May 2016 20:21:25 +0900 |
User-agent: |
Mutt/1.6.0 (2016-04-01) |
Thank you very much for your help Thomas!
For a moment I even considered extending on Feta font to support this stuff.
It seems the scheme function can be extended to support other noteheads, etc.,
so it might be a nice approach for what I'm looking to do.
Thanks again.
On 05/22 12:07, Thomas Morley wrote:
> 2016-05-22 10:34 GMT+02:00 Daniel E. Moctezuma <address@hidden>:
> > Hello,
> >
> > I would like to define a note head type (or modify/tweak an existing one)
> > that uses a combination of 2 existing note heads from the Feta font.
> > I'm trying to use the notation proposed by Norman Weinberg in his book
> > Guide to Standardized Drumset Notation.
> >
> > Hi-Hat and Cymbals for instance use both Cross and Diamond shape note heads
> > as follows:
> > 1. Half-note and whole-note use a diamond, very similar to s0miThin except
> > the height of s0miThin is kind of short.
> > 2. Quarter-note and below use a cross shaped note-head such as s2cross.
> >
> > I did manage to make Lilypond show the above note heads accordingly using
> > tweaks.
> > The disadvantage is that in order to achieve the desired result I would
> > have to do something like "\customDiamond cymc2" every time I have to input
> > half or whole notes.
> > So I'm looking for an easier way to input those kind of notes as well as to
> > support chords.
> >
> > In the following sample code you can see how modifying the stencil can give
> > you somewhat what I'm looking for, but here are some concerns:
> > 1. It doesn't work when using chords (for example: hitting the crash cymbal
> > and the snare drum at the same time).
> > 2. When using s0miThin noteheads the stem is not conected to the diamond's
> > left vertex.
> >
> > Maybe a better approach could be, instead of the "cross" note head defined
> > in "mydrums" drum style table could be something like "crossdiamond" so it
> > can include the above mentioned note heads.
> > Probably just modifying the existing "cross" notehead could be enough since
> > Weinberg's book doesn't mention any usage of both s0cross and s1cross.
> >
> > Do you have any ideas on how to achieve something like this, as well as to
> > fix the above 2 points mentioned?
> >
> > Sample:
> >
> > \version "2.18.2"
> >
> > #(define mydrums '(
> > (crashcymbal cross #f 6)))
> >
> > % Based on:
> > https://www.mail-archive.com/lilypond-user%40gnu.org/msg108679.html
> > #(define (my-note-head grob)
> > (let ((duration (ly:grob-property grob 'duration-log)))
> > (if (>= duration 2)
> > (grob-interpret-markup grob
> > (markup #:musicglyph "noteheads.s2cross"))
> > (grob-interpret-markup grob
> > (markup #:scale (cons -0.65 1.2)
> > #:musicglyph "noteheads.s0miThin")))))
> >
> > \new DrumStaff <<
> > \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
> >
> > \drummode {
> > \cadenzaOn
> > \autoBeamOff
> > \override NoteHead.stencil = #my-note-head
> > cymc32 cymc16 cymc8 cymc4 cymc2 cymc1 \bar "|."
> > }
> >>>
> >
> > --
> > Best regards
>
>
> Maybe:
>
> \version "2.18.2"
>
> #(define mydrums '(
> (crashcymbal cross #f 6)
> (snare () #f 1)))
>
> #(define (my-note-head grob)
> (let ((duration (ly:grob-property grob 'duration-log))
> (drumtype
> (ly:prob-property (ly:grob-property grob 'cause) 'drum-type)))
> (if (eq? 'crashcymbal drumtype)
> (if (>= duration 2)
> (grob-interpret-markup grob
> (markup #:musicglyph "noteheads.s2cross"))
> (begin
> (let ((stem-attachment (ly:grob-property grob 'stem-attachment)))
> (ly:grob-set-property! grob 'stem-attachment
> (cons (car stem-attachment) 0))
> (grob-interpret-markup grob
> (markup #:scale (cons -0.65 1.2)
> #:musicglyph "noteheads.s0miThin")))))
> (ly:note-head::print grob))))
>
> \new DrumStaff
> \with {
> drumStyleTable = #(alist->hash-table mydrums)
> \override NoteHead.stencil = #my-note-head
> }
> <<
> \drummode {
> \cadenzaOn
> \autoBeamOff
> cymc32 cymc16 cymc8 cymc4 cymc2 cymc1 \bar "|." \break
> <sn cymc>32 <sn cymc>16 <sn cymc>8 <sn cymc>4 <sn cymc>2 <sn cymc>1
> }
> >>
>
> HTH,
> Harm