back to list

The two types of temperament complexity

🔗Mike Battaglia <battaglia01@gmail.com>

11/10/2012 11:20:31 PM

If you impose a norm on the vector space of monzos, then you end up
with a total of four norms which are naturally implied:
1) the norm on the vector space of monzos
2) the norm on the exterior algebra of the vector space of monzos
3) the norm on the dual space of vals
4) the norm on the exterior algebra of the dual space of vals

For any temperament, this naturally implies two measures of complexity:

1) "Kernel complexity" - the norm of the multimonzo representing the
kernel of the temperament
2) "Generator complexity" - the norm of the multival representing the
wedge product of the supporting vals of the temperament

These two in general do not agree, and furthermore, they have
different musical interpretations. Those interpretations are:

NOTE IN ADVANCE: I'm going to talk about every multivector having a
"grade" rather than a rank. <12 19 18| is grade-1, and <<1 4 4|| is
grade-2. I'm not going to say that the latter is "rank 2" because the
word "rank" has a very specific meaning in exterior algebra and it's
entirely different than what you'd expect; it would be mathematically
incorrect to say that <<1 4 4|| is a rank-2 multivector.

==KERNEL COMPLEXITY==

This one is simple enough and you all know it; I'm just rewriting it
here for reference.

Imagine any large Tenney-bounded set of intervals on the JI lattice.
If you temper this set by eliminating one or more "simple" commas,
then many of these intervals will all become equivalent to one
another. The norm of the multimonzo representing the temperament's
kernel, then, tells you in some meaningful sense in how efficient
tempered intervals are at representing multiple simple JI intervals.
So if you're tempering something out something like 16/15, then you
know that a small amount of tempered intervals can represent a large
amount of simple JI intervals, whereas if you're tempering out
32805/32768, this isn't quite the case.

It's immediately notable that using kernel complexity makes it easy to
compare temperaments of the same -codimension-, not the same rank,
since you're always comparing norms on multimonzos of the same grade.
So it's easy to compare 2.3.5 81/80 and 2.3.5.7 81/80 and find that
they have the same kernel complexity.

==GENERATOR COMPLEXITY==

This one is a bit more interesting. Unlike with kernel complexity,
this makes it easy to compare temperaments of the same -rank-, since
you're now always comparing the norm on same-grade multivals.

The first thing to realize is that multivals are linear functionals on
multimonzos of the same grade. So for instance, the bival <<1 4 4|| is
a linear functional on bimonzos. This means that you can bra-ket them
together, the same as you do when you apply a monzo to a val. For
instance, <<1 4 4||-1 1 0>> = -1 + 4 + 0 = 3.

To interpret the resulting number that this process spits out, I'm
going to introduce the concept of the amount of "coverage" a set of
intervals has over a temperament. If a set of intervals serves as
generators for the temperament, we can say that it covers 100% of that
temperament's lattice and hence has a coverage of 1. If a set of
intervals generates only half of the temperament's lattice, then it
has a coverage of 50% or 1/2; the set {2/1, 9/4} has a coverage of 1/2
in the meantone lattice. In abstract algebra terms, the coverage of a
set of intervals S has over a temperament T is the reciprocal of the
index of the subgroup of T generated by mapping S to T. The value
<<V||M>>, for some multival V and some multimonzo M, then reflects the
*reciprocal* of the coverage of M in V, if we disregard the sign.

For instance, <<3 5 1|| is porcupine temperament, and ||2 -1 0>> is
the wedge product of 10/9 and 2/1. By computing <<3 5 1||2 -1 0>> = 6
- 5 = 1 we can see that 2/1 and 10/9 have a coverage of 1/1 = 1, and
generate the entire porcupine lattice. Likewise, ||-1 1 0>> is the
wedge product of 6/5 and 2/1, and <<3 5 1||-1 1 0>> = -3 + 5 = 2,
telling you that 6/5 and 2/1 together have a coverage of 1/2 = 50% of
the porcupine lattice.

Our task is now to use this information to evaluate what the norm on
multivals means. This norm is dual to the norm on multimonzos, and as
such we can use the standard definition of dual norm to find that, for
some multival V and some multimonzo of the same grade M, the following
identity must hold:

||V|| = sup {|<V|M>|/||M||: M is not the zero vector}

Remember from before that |<V|M>| is the reciprocal of the coverage of
M in V. Also, ||M|| is the complexity of M.. Then it's clear that the
above equation can be rewritten as follows:

||V|| = sup {1/(coverage * complexity) over all monzos}

From this, we can immediately see what causes the norm on V to be
high: if you have multimonzos which are of low complexity (like the
wedge product of 2/1 and 3/1 or something), but which fail to generate
or cover a significant portion of V's temperamental lattice, then this
is going to be high. So ||V||, then, looks at all sets of monzos of
the same cardinality as the grade of V, and picks the one which has
the worst combined complexity and coverage; e.g. the winner will be as
simple as possible while covering jack on the lattice.

In plain English, the generator complexity says - in an ideal world,
the simplest JI intervals would generate the largest portions of the
tempered lattice, mimicking exactly how JI works. Generator complexity
tells us how much a temperament fails to live up to this ideal in its
worst case scenario.

Phew!

-Mike

🔗Mike Battaglia <battaglia01@gmail.com>

11/11/2012 12:00:27 AM

On Sun, Nov 11, 2012 at 2:20 AM, Mike Battaglia <battaglia01@gmail.com> wrote:
>
> In plain English, the generator complexity says - in an ideal world,
> the simplest JI intervals would generate the largest portions of the
> tempered lattice, mimicking exactly how JI works. Generator complexity
> tells us how much a temperament fails to live up to this ideal in its
> worst case scenario.
>
> Phew!

An addendum to this before I retire for the evening:

First, there's a wrinkle here: the dual norm is giving you the max
1/(coverage * complexity) over ALL multimonzos of the same grade.
However, lots of multimonzos are "junk" and do not correspond to
anything musical that I know of (at least not yet).

For instance, there are "simple" multimonzos which you can get by
wedging a set of monzos together, e.g. they're "totally decomposable"
to a wedge product of regular monzos. But, then you can add these
simple multimonzos together to really mess things up; you can obtain
these special non-simple multimonzos which are only expressible as a
sum of simple multimonzos and do not reflect a direct wedge product of
*anything*. Until someone figures out what to do with these things,
they're basically pathological from a regular temperament standpoint.

The issue is that the dual norm is giving you the max over all of
these junk multimonzos as well, so you run the risk of the generator
complexity looking artificially "inflated" because it's giving you
some terrible max value for 1/(coverage * complexity) for a multimonzo
which isn't even simple, and hence isn't directly the wedge product of
anything. BUT, there's no need to fear if what we're using is an L1 or
L2 norm, because then it's guaranteed that the "worst" multimonzo is
going to be totally decomposable:
- In the case of an L1 norm, the worst multimonzo will always be a
vector with all coefficients as 0 except for one which is +/-1, e.g.
it'll be a unit basis multivector, and this is always guaranteed to be
simple.
- In the case of an L2 norm, the worst multimonzo will always look
exactly like the multival, but written as a multimonzo. So the worst
multimonzo for <<a b c|| will always be ||a b c>>. Therefore, if
you're taking the norm of a simple multival, the worst multimonzo will
also be simple.

This doesn't seem to hold for Linf norms, but who cares? We only
really care about L1 and L2. For "nice" subgroups, T1 and T2 norms can
be transformed into L1 and L2 norms with weighted coordinates, so this
holds. Working out the logistics of Tp* norms for non-nice subgroups
is what I'll work on in my next post (there's some weird issues with
scaling there).

-Mike

🔗Mike Battaglia <battaglia01@gmail.com>

11/11/2012 12:21:03 AM

On Sun, Nov 11, 2012 at 2:20 AM, Mike Battaglia <battaglia01@gmail.com> wrote:
>
> In plain English, the generator complexity says - in an ideal world,
> the simplest JI intervals would generate the largest portions of the
> tempered lattice, mimicking exactly how JI works. Generator complexity
> tells us how much a temperament fails to live up to this ideal in its
> worst case scenario.

Can't sleep; two more really quick interpretations and offshoots
before I'm out for the evening:

First, this also hints at something interesting in terms of Fokker
blocks. The best chromatic unison vectors are simple, because as
mentioned before, simpler chromas let you transform simple JI
intervals into other simple JI intervals. So if you have a grade-r
multival V, and you send a grade-r multimonzo M into it representing
unison vectors, then <<V||M>> tells you how many notes are in the
resulting scale (be sure to add 2/1 or whatever your equivalence
vector is into the wedge product explicitly). So the
1/(coverage*complexity) thing can also be interpreted as (scale
size)/(complexity of scale chromata). Less complex chromata + huge
scale size is what's really bad here; we want good temperaments to
pair up less complex chromata with small manageable scale sizes. The
norm tells you how bad a temperament is at doing this in the worst
case scenario.

The downside to this interpretation is, the norm on V is looking at
the supremum of 1/(coverage*complexity) over -all- multimonzos,
including ones which don't have 2/1 wedged in. If 2/1 isn't wedged in,
you can't interpret the multimonzo as delimiting a set of unison
vectors for a scale that repeats at the 2/1; you have to pretend
something else is the equivalence vector. However, it's still
interesting enough to suggest this might be nice to look at for future
research.

Secondly, note that using multivals as linear functionals is a nice
way to generalize Graham complexity.

For instance, say that V is some grade-2 multival, and we want to
figure out the Graham complexity of some monzo M. Then if N is M^2/1,
then the Graham complexity of M in V is <<V|N>>. So for rank-3
temperaments, we can easily generalize this to compute the Graham
complexity of bimonzos. If V is a grade-3 multival, B is your bimonzo,
and C is B^2/1, then the Graham complexity of B is <<<V|||C>>>.

In this case, for rank-3 Graham complexity to make sense, one needs to
specify a pair of two intervals, not just one. This is a bit odd, but
sort of makes sense if you think about it in terms of coverage.

-Mike

🔗Keenan Pepper <keenanpepper@gmail.com>

11/14/2012 8:46:39 AM

--- In tuning-math@yahoogroups.com, Mike Battaglia <battaglia01@...> wrote:
> NOTE IN ADVANCE: I'm going to talk about every multivector having a
> "grade" rather than a rank. <12 19 18| is grade-1, and <<1 4 4|| is
> grade-2. I'm not going to say that the latter is "rank 2" because the
> word "rank" has a very specific meaning in exterior algebra and it's
> entirely different than what you'd expect; it would be mathematically
> incorrect to say that <<1 4 4|| is a rank-2 multivector.

This other meaning of "rank" is the Schmidt rank, right? http://en.wikipedia.org/wiki/Schmidt_decomposition

So decomposible multivectors (wedgies) are exactly those that have Schmidt rank 1. Right?

I'll read the rest of this later.

Keenan

🔗Mike Battaglia <battaglia01@gmail.com>

11/14/2012 10:53:26 AM

On Wed, Nov 14, 2012 at 11:46 AM, Keenan Pepper <keenanpepper@gmail.com> wrote:
>
> --- In tuning-math@yahoogroups.com, Mike Battaglia <battaglia01@...> wrote:
> > NOTE IN ADVANCE: I'm going to talk about every multivector having a
> > "grade" rather than a rank. <12 19 18| is grade-1, and <<1 4 4|| is
> > grade-2. I'm not going to say that the latter is "rank 2" because the
> > word "rank" has a very specific meaning in exterior algebra and it's
> > entirely different than what you'd expect; it would be mathematically
> > incorrect to say that <<1 4 4|| is a rank-2 multivector.
>
> This other meaning of "rank" is the Schmidt rank, right? http://en.wikipedia.org/wiki/Schmidt_decomposition
>
> So decomposible multivectors (wedgies) are exactly those that have Schmidt rank 1. Right?

Right. Rank-1 multivectors are the only things we care about, at least
until someone manages to figure out a musical interpretation for rank
> 1 multivectors.

-Mike