[Top][All Lists]
[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
- drum notation, Rune Zedeler, 2002/05/18
- drum notation,
Han-Wen <=