lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

drum notation


From: Han-Wen
Subject: drum notation
Date: Sun, 19 May 2002 01:41:00 +0200

address@hidden writes:
> I have some issues hopefully to fix before 1.6.
> One of them is drum notation.
> Doing a permanent implementation means doing a drum-head-engraver and an 
> auto-script-engraver (that automatically adds scripts to notes depending 
> on the pitch-information)
> Both seems quite simple to do.
> The less simple things are how to represent the drum instruments and 
> distingush them from normal notes.


> I see different approaches:
>[..] 
> 
> c) use another representation. I.e. use a name,timbre,state tuppel 
> (three strings) instead of the current octave,notename,accidental (three 
> ints) tuppel. name could have values like 
> "bassdrum","highhat","tom","guiro"; timbre could have values like 
> "default","high","mid","low","floor"; and state could have values like 
> "default","open","closed","long","short".

I prefer (c) as well.  I think you should not mess around with
alternative pitch-like representations. We only need a Pitch object if
drum melody is pitched. My proposal:

  * Store the info as

            req->set_mus_property ("instrument", ly_symbol2scm ("guiro"))
            req->set_mus_property ("timbre", ly_symbol2scm ("high"))
            req->set_mus_property ("attack", ly_symbol2scm ("closed"))

    (if it's not defined, then it's default)

  * Figure out a way to extend the parser to insert the above
    information when the user types `cloguirohi'. Probably, the
    notename mechanism should be extended a teensy bit to allow
    different things besides pitches. (Not much code, but perhaps hard
    to get good design that can be used for more purposes.)

  * Write a drum-performer that maps the settings to MIDI notes.

  * (optional) Make a Drum_note_req (similar to Note_req).  Then
    drum_engraver catches Drum_note_reqs iso. Note_reqs. Then you can
    combine normal notes and drum notes in one staff. Useful?
    Dunno. This would require some more parser trickery (probably a
    \drums mode) (which we probably need anyway).

Forget about the complicated hierarchy of different _reqs. They are
from the time that  we did not have Scheme in LilyPond. 


> drums = \drums ...
> restofmusic = \notes ...
> 
> or
> 
> drums = \notes(drums)
> restofmusic = \notes
> 
> is the best/easiest.

I like the 2nd variant, since we could also have stuff like

  \notes #english-notes
  \notes #italian-notes
  \notes #drum-names
  

> Hopefully there are some comments on the subject when I finished the 
> engraving part of the engravers.

(here you go :-)

--
Han-Wen Nienhuys   |   address@hidden   |   http://www.cs.uu.nl/~hanwen 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]