As reported by Robert Schmaus in this thread, after modifying drumStyleTable
\improvisationOn
won’t affect any pitches modified through the style table:
\version "2.19.82" #(define mydrums '((snare default #f 1))) \score { \new DrumStaff \with { drumStyleTable = #(alist->hash-table mydrums) } \new DrumVoice \drummode { sn4 sn4 sn4 sn4 \improvisationOn sn4 sn4 sn4 sn4 } }
(output attached)
IMHO, this is no bug but expected behaviour:
\improvisationOn will set NoteHead.style = #'slash.
So far, so good.
As soon the custom drumStyleTable contains an explicit NoteHead.style (such as #'default or #'cross), the #'slash preset by \improvisationOn will be overwritten again.
The standard drumStyleTable definitions don't use #'default but () so that these instruments won't override the #'slash set by \improvisationOn. #f instead of () will also work:
If the modified custom drumStyleTable uses () instead of default, just like in the standard defintions, even custom drumStyleTable definitions will work exactly like the standard.
All the best,
Torsten
Hmmm,
http://lilypond.org/doc/v2.19/Documentation/notation/common-notation-for-percussion#custom-percussion-staves
always uses default instead of (), so it wasn't Robert's invention.
Perhaps we should change the NR to match the actual LilyPond standard definitions that never use default.