2/22/97 12:00 AM
Subject: MAX Digest - 20 Feb 1997 to 21 Feb
1997To: Recipients of MAX digests 

There are 3 messages totalling 136 lines in this issue.

Topics of the day:

  1. Chord Recognition
  2. ouchstring
  3. Nat'l Mag Seeks Authors


Date:    Fri, 21 Feb 1997 07:57:27 +0100
From:    Peter Castine 
Subject: Re: Chord Recognition

Steve Smith asked:
>Regarding the chord recognition stuff,  I wonder if it is possible, without
>using lists of user input chords, to get it to recognize jazz chords, which
>are actually regular chords superinposed in a higher octave.  For example,
>one such chord might consist of a D7 chord played one octave above a C7
>chord.  Jazz terminology for this would be C7 9 #11 13.
>Has there been any work on software to recognize such chords?


First off, there's literature dating back to the 60's on doing set and set
class recognition (set classes are, if I may oversimplify, the
12-tone/serialist equivalent of chords). The standard technique was
sketched out a week or two ago, to briefly recap: get yourself a list of
MIDI Note Numbers, take them all mod 12 (giving you a pitch class number),
then for each note, left shift the integer 1 by the resulting pitch class
number (so: any C will map to 1, C# maps to 2, D maps to 4, D# maps to 8, E
maps to 16, and so on). Add up all the pitch class numbers (you might want
to use accum for this), resulting in a number between 0 and 4095, then look
up your set class specification in a table (you might want to use a coll or
a table for this). This is described in more detail in a number of articles
and books, I'm rather fond of (shameless plug warning!) a little book
called _Set Theory Objects_, published by Peter Lang. The author is some
guy called Peter Castine.

Tonal chord recognition (whether jazz, pop, classic/romantic/baroque style
is largely irrelevant) can be done similarly, but you really have to take
the bass note into account and the current key. This makes things a little
trickier than with atonal music. Your best bet is to roll all your MIDI
Note Numbers into a list and sort it. Then generate a list of the intervals
between the lowest note and rest of the notes. Take all the intervals mod
12 and sort _them_ (ignoring any zeros or duplicates). This will give you a
signature you can use to to look up the chord `flavor' (the interval class
signature '4 7' would indicate root position major triad; '3 7' would
indicate minor root p.; first inversions would be '3 8' and '4 9' for major
and minor, respectively; Steve's example, which one might call a dominant 7
with superimposed double dominant (...though when Strauss used it in
_Elektra_, we just called it a _Terzschichtung_ in theory class... and in
Henry Cowell, it was probably just a cluster) would have the signature '2 4
6 7 9 10'. All very reminiscent of figured bass. Finally, once you have
your signature and the bass note, it's easy figure out what the root is.
F'rinstance, if your bass is a D (midi note number % 12 == 2) and the
signature is '3 8', you've got Bb major in 1st inversion.

Some of the list processing is tricky with plain vanilla Max, but Peter
E.'s Lobjects ought to be a big help.

Sorry for not pasting a Max patch, but I've got some C programming that's
gotta get done. Still, I hope this has caused more enlightenment than
confusion. Apologies if it's t'other way 'round.



Dr. Peter Castine           | "Of course he was telling the truth," she
said.   | "His facts might not always be correct, but he
                            | was telling the truth."
                            |           -- Paul Auster, in _Moon Palace_

                Worth checking out:
                       And wait for the logo to load!-)


Date:    Fri, 21 Feb 1997 12:54:46 +0100
From:    dudas 
Subject: ouchstring

Dearest Maxers...

Has anyone out there had problems running Max3.0 patches with Max3.5 (68k
or FAT) when the patch contains (possibly) the following:

- loops/feedback with a counter retriggering itself (even with a small
- delaying the output of an Uzi

A seemingly normal patch I was looking at yesterday refused to run on
Max3.5 (on a 68k Mac IIfx), -- although the same patch poses no particular
problems with 3.0 -- giving the ever-familiar ouchstring error-dialog
several times in rapid-fire succession:

  Stack Overflow... choose Restart to reactivate the Max Scheduler.
  (or however the sentence is phrased)

I tried adjusting the new granularity setting to no avail.
Overdrive was turned off.

It was particularly puzzling since there didn't SEEM to be anything out of
the ordinary in the patch. However I did not have the time to thoroughly
figure it out.

Honestly, I've been using Max 3.5 EXCLUSIVELY since I started beta testing
this past Autumn and have had no problems with it.  (I went as far as
deleting everything to do with Max 3.0 from my HD at home sometime in
December... in eager anticipation of the new version!) My sincere opinion
is that the  above-mentioned problem lies with design of the max patch
itself (not Max3.5's fault). It would be comforting nonetheless to find out
that others have had similar problems.



Date:    Fri, 21 Feb 1997 12:04:55 +0100
From:    Kristen Stram 
Subject: Nat'l Mag Seeks Authors

        I am a graduate student working for a non-profit, national magazine
of investigation for elementary school children called DRAGONFLY. The
magazine publishes research,art and creative writing by children, and
currently we are looking for children interested in writing about any topic
that connects music and science.
        Please e-mail me directly or call as soon as possible if you have a
child or know a child who might be interested in contributing to DRAGONFLY.

Thank you,
Kristen Stram
Project Assistant
Dragonfly Magazine
Miami University
Oxford, Ohio 45056
513-529-8574 FAX


End of MAX Digest - 20 Feb 1997 to 21 Feb 1997

X-Mozilla-Status: 0001
Content-Length: 2101