Re: Chord module? And some drum programming examples.

[email protected] ("Sean M. Burke") Fri, 19 Oct 2001 18:53:21 -0600
Newsgroups perl.midi
Message-ID <[email protected]>
At 03:29 PM 2001-10-17 -0400, The Danimal wrote:
>2. Has anyone written a module/filter/subroutine/etc. that
>can accept a list of chord symbols (in some suitable "standard"
>notation), timing info, etc., and render them into a MIDI track?
>It would be nice to have Perl code that works to some degree 
>like PG Music's Band-In-A-Box product. However, it would take a
>lot of Perl code to do everything that Band-In-A-Box can do. [...]

The only reason MIDI::Simple makes you write chords like [0,3,7]
(half-steps) is because my own understanding of chords is very weak, so I
decided to not embed any misunderstanding on my part into the system.
Also, I think I tried asking people about it all, and found actual
disagreement about what's called what.  So I just backed off.

MIDI::Simple is based on "primitives" not because I believe in the
Lispish/sadistic approach where you give people primitives and make them
derive the rest; it's just that I felt relatively sure making those
primitives, and unsure about making much more.

>3. I've written some code that lets me specify drum arrangements
>for a song in (what to me seems like) a somewhat logical way.
>Books on drum programming (such as _Drum Programming_ by Ray Badness)
>represent drum tracks as patterns of (usually) 1, 2, or 4 measures,
>using either musical staff notation or a grid notation. Grid notation
>[...]

Excellent!  I've always thought that something needed doing for drum
notation, but since I have no background with percussive things, I didn't
know that should be done.  In my old TPJ article, at 
http://www.speech.cs.cmu.edu/~sburke/midi-perl/tpj_13_midi.html
I mention cooking up an ad-hoc drum notation so that the percussion line in
"Psycho Killer" could be annotated as:
    "  !.!.!.   !!!!!!   !.!.  "
and then have that interpreted as MIDI things.


BTW, that article is good to read -- if nothing else, it shows how me
wanting particular features drove me to make MIDI::Simple the way it is.
That is, if you wonder why a good feature isn't in MIDI::Simple, the answer
is that there's no good reason, but probably just that nothing happened to
come by and cause me to want it.  (Or I wanted it but had no idea how to do
it, and didn't want to make a mess of it, since if it were necessary,
someone else who knew better would come by and do it right, whereas they
might not if they saw that it were already done, but done wrong.)


--
Sean M. Burke  [email protected]  http://www.spinn.net/~sburke/