Re: combine different note heads (drumset)

2016-05-22 Thread Daniel E. Moctezuma
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 :
> > 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
>   32 16 8 4 2 1
> }
>   >>
>
> HTH,
>   Harm

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: combine different note heads (drumset)

2016-05-22 Thread Thomas Morley
2016-05-22 10:34 GMT+02:00 Daniel E. Moctezuma :
> 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
  32 16 8 4 2 1
}
  >>

HTH,
  Harm

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user