back to list

Model 1: RDD

🔗Mike Battaglia <battaglia01@...>

3/17/2012 12:59:51 AM

I define diamond(scale) for any periodic scale, with values
representing the cent sizes of successive scale degrees relative to
the root, to be the -multiset- of differences between notes in the
scale. Therefore, for any scale, diamond(scale) represents the set of
all intervals appearing somewhere in this scale. Under this
definition, diamond(diamond(scale)) represents the multiset of all
differences between intervals in the scale. In other words, it's the
multiset of "chromas" that transform one interval to another. I will
call this the "chroma multiset" of a scale. What we want is to make
all of these chromas as large as we possibly can, so that the
intervals are as spread out as they can possibly get.

One way to do this is to make the size of the average chroma in the
chroma multiset as large as possible. Unfortunately, if we naively
take the arithmetic mean of this set, meaning we look at
mean(diamond(diamond(scale))), it's trivial to show that we will
always get a value of 1/2 the period no matter what scale we use. A
solution presents itself by considering that we don't actually care
about ALL of the differences between intervals in the scale. What we
care about most are the chromata between intervals that are close in
size - things like the MOS "s", "c", and "d" intervals.

We can thus focus our attention on maximizing the size of the
-smallest- intervals in the chroma multiset. Furthermore, it's also
trivial to see that any interval in this multiset will be perfectly
matched by its octave-inverse, so that the smallest intervals in the
set are matched 1-1 to the largest intervals in the set. This means
that an equivalent goal is to minimize the size of the largest
intervals in the chroma multiset - the octave-inverted chromata - as
this is an identical procedure to maximizing the size of the smallest
intervals in the same set. We will find that minimizing the rms of
diamond(diamond(scale)) does the trick; this measure when applied to a
scale will be called the "RDD" of the scale for short.

While RDD can be used for any scale, for now we're going to restrict
our attention to seeing what it says about various MOS's. The
following is a graph of the RDD for all 7-note scales consisting of
iterated stackings of a single generator - which may not always
correspond to MOS. The x-axis represents the size of the generator,
and the y-axis represents the RDD of the resulting scale:

/tuning/files/MikeBattaglia/RDD7.png

Note that local maxima of RDD are typically found at simple rational
divisions of the octave. The reason for this should be pretty clear:
if the generator for your MOS is close to something like 1/2 or 1/4 of
an octave, then you're going to end up accumulating a ton of very
small intervals in your scale, which doesn't satisfy our initial
desideratum of making all of the intervals as distinct in size from
one another as possible. Local minima, which are what we want,
typically end up being placed maximally far from such ratios.

Here's the set of all minima for N=7. These are listed in order of
goodness, and if the generator doesn't actually make an MOS, I've put
a question mark next to it:

525.2 - Roughly mavila[7] in 16-EDO
160.5 - Roughly porcupine[7] in 15-EDO
503.4 - Roughly POTE 7-limit meantone[7] (!)
353.8 - Roughly maqamic[7] in 17-EDO
182.3 - Roughly glacial[7] in 33-EDO
331.9 - Roughly orgone[7] in 18-EDO
458.2 - Roughly father[7?] in 21-EDO
442.6 - Roughly sensi[7?] in 19-EDO
535.2 - Slightly sharp of mavila[7] in 9-EDO
144.9 - Roughly bleu[7] in 17-EDO
215.1 - Roughly machine[7?] in 17-EDO
272.1 - Roughly orwell[7?] in 22-EDO
262.0 - Roughly superpelog[7?] in 23-EDO

Note that if you want the generators minimizing RDD for 7-note scales
of period less than an octave, you can simply multiply these
generators by period/1200 to get the new values. Divide by two to get
the best 7-note generators with respect to a 1/2-octave period.

-Mike

🔗Mike Battaglia <battaglia01@...>

3/17/2012 5:58:07 AM

Some more useful data for this model is to look at the
greatest-cardinality MOS formed by some generator under a certain
ceiling. The following graph represents the RDD for the largest MOS
formed by a given generator that is less than 7, 8, 9, and 10 notes,
with the plots overlapping one another:

/tuning/files/MikeBattaglia/RDDbestMOS.png

Here are the minima for each MOS cutoff:

MOS max length 10

526.6000 - mavila
126.6000 - negri
273.4000 - orwell
259.9000 - 14-edo semaphore/superpelog
140.1000 - bleu
540.1000 -
547.8000 -
116.1000 - miracle
441.5000 - sensi
158.5000 - opossum
458.5000 - father
108.4000 -
436.0000 - sensi in 11-edo ("sentry")
503.4000 - meantone
353.8000 - maqamic
182.3000 - glacial
331.9000 - 18-edo orgone
214.6000 - machine

MOS max length 9

441.5000 - sensi
158.5000 - opossum
141.5000 - bleu
458.5000 - father
436.0000 - sentry
128.9000 - negri
525.2000 - mavila
503.4000 - meantone
353.8000 - maqamic
182.3000 - glacial
331.9000 - dicot in 18-edo
535.2000 - mavila in about 9-edo
214.6000 - machine
260.7000 - 14-edo semaphore/superpelog

MOS max length 8

525.2000 - mavila
160.5000 - porcupine
503.4000 - meantone
353.8000 - maqamic
182.3000 - glacial
331.9000 - dicot in 18-edo
535.2000 - mavila in about 9-edo
144.9000 - bleu, sort of
214.6000 - machine
260.7000 - 14-edo semaphore/superpelog
459.3000 - father

MOS max length 7

214.6000 - machine
185.4000 - glacial
165.9000 - porcupine
260.7000 - 14-edo semaphore/superpelog
459.3000 - father
500.7000 - meantone
331.6000 - dicot in 18-edo

Note that the many of the same generators are turning up in all of
these lists: a non-inclusive list would contain mavila, meantone,
father, machine, sensi, orwell, glacial, maqamic, etc. Sometimes they
change order, and sometimes some drop off the list (and new ones will
make a list or so), but typically the same cast of characters will be
making appearances on most of these lists. It's similar to how
Graham's temperament finder yields many of the same results as
Keenan's HE search, for instance - sensible models of the same
desiderata simply tend to give similar results. You're not going to
see Father[8] at the top of any list of temperaments optimized for
harmonic accuracy in any sort of reasonable way, and you're not going
to see tetracot at the top of any of these lists either.

(However, tetracot is still awesome; the fact that it's quasi-equal is
actually something I really like about it. I should note here that
this approach doesn't model how "good" the scale is, just how easy it
is to identify the intervals overall. But quasi-equalness can produce
its own, beautiful effect, and the intervals in things like porcupine
and tetracot in my experience get easier to identify with training
anyway.)

-Mike

On Sat, Mar 17, 2012 at 3:59 AM, Mike Battaglia <battaglia01@...> wrote:
>
> Here's the set of all minima for N=7. These are listed in order of
> goodness, and if the generator doesn't actually make an MOS, I've put
> a question mark next to it:
>
> 525.2 - Roughly mavila[7] in 16-EDO
> 160.5 - Roughly porcupine[7] in 15-EDO
> 503.4 - Roughly POTE 7-limit meantone[7] (!)
> 353.8 - Roughly maqamic[7] in 17-EDO
> 182.3 - Roughly glacial[7] in 33-EDO
> 331.9 - Roughly orgone[7] in 18-EDO
> 458.2 - Roughly father[7?] in 21-EDO
> 442.6 - Roughly sensi[7?] in 19-EDO
> 535.2 - Slightly sharp of mavila[7] in 9-EDO
> 144.9 - Roughly bleu[7] in 17-EDO
> 215.1 - Roughly machine[7?] in 17-EDO
> 272.1 - Roughly orwell[7?] in 22-EDO
> 262.0 - Roughly superpelog[7?] in 23-EDO
>
> Note that if you want the generators minimizing RDD for 7-note scales
> of period less than an octave, you can simply multiply these
> generators by period/1200 to get the new values. Divide by two to get
> the best 7-note generators with respect to a 1/2-octave period.
>
> -Mike

🔗genewardsmith <genewardsmith@...>

3/17/2012 10:49:38 AM

--- In tuning@yahoogroups.com, Mike Battaglia <battaglia01@...> wrote:
>
> I define diamond(scale) for any periodic scale, with values
> representing the cent sizes of successive scale degrees relative to
> the root, to be the -multiset- of differences between notes in the
> scale.

Maybe we need two different functions, diamond(S) and diamult(S), with domains sets or multisets respectively.

🔗Mike Battaglia <battaglia01@...>

3/17/2012 7:06:37 PM

On Sat, Mar 17, 2012 at 1:49 PM, genewardsmith <genewardsmith@...>
wrote:
>
> --- In tuning@yahoogroups.com, Mike Battaglia <battaglia01@...> wrote:
> >
> > I define diamond(scale) for any periodic scale, with values
> > representing the cent sizes of successive scale degrees relative to
> > the root, to be the -multiset- of differences between notes in the
> > scale.
>
> Maybe we need two different functions, diamond(S) and diamult(S), with
> domains sets or multisets respectively.

That might be a good idea. Just replace all instances of diamond above
with diamult then. RDD now stands for rms(diamult(diamult(...))).

-Mike