back to list

Normalizing badness and complexity

🔗genewardsmith <genewardsmith@sbcglobal.net>

7/13/2010 11:39:21 PM

I have proposed to define the norm of weighted vals or multivals W as

||W|| = sqrt(W.W/length(W))

where "length" means the number of coefficients of W; its dimension in terms of how many numbers it lists. The reason for this is to get measures for different prime limits to roughly correspond. If we use this definition, we would want simple badness and complexity defined in terms of wedge products to correspond to the same figures defined as Graham does, so we want to normalize.

Simple badness of a multival is ||W^JIP||. The corresponding formula for a saturated (GCD reduced) set of independent weighted vals defining the same temperament is

sqrt(n * det(vi.vj/n - ai*aj))

where ai is the mean of the coefficients of vi, and det is the determinant.

Complexity of W is simply ||W||. The corresponding definition in terms of a saturated list of vals v is

sqrt(det(vi.vj)/C(n, k))

where C(n, k) = n choose k is the binomial coefficient, where n is the dimension (length) of each val, and k is the number of vals.

I plan on using these normalizations, and I think they are a good idea, as however you compute things, they have the property of giving some amount of stability from one prime limit to the next.

🔗Graham Breed <gbreed@gmail.com>

7/14/2010 11:52:46 AM

On 14 July 2010 07:39, genewardsmith <genewardsmith@sbcglobal.net> wrote:
> I have proposed to define the norm of weighted vals or multivals W as
>
> ||W|| = sqrt(W.W/length(W))
>
> where "length" means the number of coefficients of W; its dimension in terms of how many numbers it lists. The reason for this is to get measures for different prime limits to roughly correspond. If we use this definition, we would want simple badness and complexity defined in terms of wedge products to correspond to the same figures defined as Graham does, so we want to normalize.

Does that mean you want the same values I get, but with wedgies (which
I don't think I did normalize properly), or that you think the values
I get don't treat different prime limits correctly? They're chosen to
give close results to existing measures, like the number of notes to
the octave, or the standard deviation of the weighted
orthogonal-to-period mapping.

What I start with is

||W|| = sqrt(W.W/V.V)

where V is the weighted JIP. It's independent of the units you choose
for weighting. You can also give zero weight to a prime and it
behaves sensibly.

The scalar complexity of Miracle in the 5-limit is 2.780. In the
11-limit, it goes up to 2.786. That certainly makes it look like the
prime limits correspond.

> Simple badness of a multival is ||W^JIP||. The corresponding formula for a saturated (GCD reduced) set of independent weighted vals defining the same temperament is

The badness formula that corresponds to the above is

||W^JIP||/||JIP||

That gives the correct TOP-RMS error for badness = error * complexity.
Although the definition I gave above would make ||JIP||=1.

> sqrt(n * det(vi.vj/n - ai*aj))
>
> where ai is the mean of the coefficients of vi, and det is the determinant.

Dividing by the JIP should make that

sqrt(det(vi.vj/n - ai*aj) / n)

which is the square root of the determinant of the covariance matrix.
For rank 1, it's a standard deviation.

> Complexity of W is simply ||W||. The corresponding definition in terms of a saturated list of vals v is
>
> sqrt(det(vi.vj)/C(n, k))
>
> where C(n, k) = n choose k is the binomial coefficient, where n is the dimension (length) of each val, and k is the number of vals.

Does this mean you're defining the linear algebra measure to match the
wedgie one?

> I plan on using these normalizations, and I think they are a good idea, as however you compute things, they have the property of giving some amount of stability from one prime limit to the next.

You lose the rule that the badness of a rank 2 temperament must be
less than the product of the badnesses of the equal temperaments that
make it up, though, don't you?

Graham

🔗genewardsmith <genewardsmith@sbcglobal.net>

7/14/2010 2:48:01 PM

--- In tuning-math@yahoogroups.com, Graham Breed <gbreed@...> wrote:

> Does that mean you want the same values I get, but with wedgies (which
> I don't think I did normalize properly), or that you think the values
> I get don't treat different prime limits correctly?

I('m afraid I didn't check the numbers you got; my concern was to get the wedgie numbers I got to accord with matrix/determinant numbers.

They're chosen to
> give close results to existing measures, like the number of notes to
> the octave, or the standard deviation of the weighted
> orthogonal-to-period mapping.

Should be the same with the first, at any rate.

> What I start with is
>
> ||W|| = sqrt(W.W/V.V)
>
> where V is the weighted JIP. It's independent of the units you choose
> for weighting. You can also give zero weight to a prime and it
> behaves sensibly.

In the special case I'm using, where the weight is just a row of 1s, this is the same as my version. Zero weight would also work the same.

> The scalar complexity of Miracle in the 5-limit is 2.780. In the
> 11-limit, it goes up to 2.786. That certainly makes it look like the
> prime limits correspond.

The scalar product is physics terminology for the dot product in three dimensional space, and has nothing to do with music theory.

I get 4.815 in the 5-limit, 3.991 in the 7-limit, and 4.405 in the 11-limit.

> > sqrt(n * det(vi.vj/n - ai*aj))
> >
> > where ai is the mean of the coefficients of vi, and det is the determinant.
>
> Dividing by the JIP should make that
>
> sqrt(det(vi.vj/n - ai*aj) / n)

It should? You just got through saying ||JIP|| = 1.

> > Complexity of W is simply ||W||. The corresponding definition in terms of a saturated list of vals v is
> >
> > sqrt(det(vi.vj)/C(n, k))
> >
> > where C(n, k) = n choose k is the binomial coefficient, where n is the dimension (length) of each val, and k is the number of vals.
>
> Does this mean you're defining the linear algebra measure to match the
> wedgie one?

Exactly.

> You lose the rule that the badness of a rank 2 temperament must be
> less than the product of the badnesses of the equal temperaments that
> make it up, though, don't you?

Do I? It's not clear we are even using a different definition.

🔗Graham Breed <gbreed@gmail.com>

7/14/2010 3:39:38 PM

On 14 July 2010 22:48, genewardsmith <genewardsmith@sbcglobal.net> wrote:
>

>> What I start with is
>>
>> ||W|| = sqrt(W.W/V.V)
>>
>> where V is the weighted JIP.  It's independent of the units you choose
>> for weighting.  You can also give zero weight to a prime and it
>> behaves sensibly.
>
> In the special case I'm using, where the weight is just a row of 1s, this is the same as my version. Zero weight would also work the same.

No, the number of coefficients of V isn't the same as the number of
coefficients of W for rank > 1.

>> The scalar complexity of Miracle in the 5-limit is 2.780.  In the
>> 11-limit, it goes up to 2.786.  That certainly makes it look like the
>> prime limits correspond.
>
> The scalar product is physics terminology for the dot product in three dimensional space, and has nothing to do with music theory.

What's that got to do with anything?

> I get 4.815 in the 5-limit, 3.991 in the 7-limit, and 4.405 in the 11-limit.

4.815 = 2.780*sqrt(3)

3.991 = 2.444*sqrt(8/3)

4.405 = 2.786*sqrt(2.5)

>> > sqrt(n * det(vi.vj/n - ai*aj))
>> >
>> > where ai is the mean of the coefficients of vi, and det is the determinant.
>>
>> Dividing by the JIP should make that
>>
>> sqrt(det(vi.vj/n - ai*aj) / n)
>
> It should? You just got through saying ||JIP|| = 1.

Only if you define ||...|| in such a way that you don't get the result above.

>> > Complexity of W is simply ||W||. The corresponding definition in terms of a saturated list of vals v is
>> >
>> > sqrt(det(vi.vj)/C(n, k))
>> >
>> > where C(n, k) = n choose k is the binomial coefficient, where n is the dimension (length) of each val, and k is the number of vals.
<snip>
>> You lose the rule that the badness of a rank 2 temperament must be
>> less than the product of the badnesses of the equal temperaments that
>> make it up, though, don't you?
>
> Do I? It's not clear we are even using a different definition.

We're getting different results. And if you're putting binomials on
the linear algebra side, we're using different definitions.

I do have code doing these wedgie-side. Here's the part that defines
the metric:

sqrt(abs((M^~M).flatten()[0])/ self.dimension**self.rank)

It could be shortened to

sqrt(||M||/d**r)

where ||M|| is the usual Euclidean measure of the multivector, with an
implied sum, d is the number of primes, and r is the rank.

I forget how rigorously I tested that with different ranks. It's
clearly only defined for Tenney weighting.

Graham

🔗genewardsmith <genewardsmith@sbcglobal.net>

7/14/2010 6:08:08 PM

--- In tuning-math@yahoogroups.com, Graham Breed <gbreed@...> wrote:

> It could be shortened to
>
> sqrt(||M||/d**r)
>
> where ||M|| is the usual Euclidean measure of the multivector, with an
> implied sum, d is the number of primes, and r is the rank.

Two different degree r polynomials in d as the weight: I use
d choose r, and you use d**r. The justification for doing it my way is that complexity is the rms average size of the coefficients of M. What's your reasoning?

🔗Graham Breed <gbreed@gmail.com>

7/14/2010 6:29:51 PM

On 15 July 2010 02:08, genewardsmith <genewardsmith@sbcglobal.net> wrote:
>
>
> --- In tuning-math@yahoogroups.com, Graham Breed <gbreed@...> wrote:
>
>> It could be shortened to
>>
>> sqrt(||M||/d**r)
>>
>> where ||M|| is the usual Euclidean measure of the multivector, with an
>> implied sum, d is the number of primes, and r is the rank.
>
> Two different degree r polynomials in d as the weight: I use
> d choose r, and you use d**r. The justification for doing it my way is that complexity is the rms average size of the coefficients of M. What's your reasoning?

It should give the right geometry in the inner product space. The
complexity of a val is its length (or distance from the origin). The
complexity of a rank 2 temperament is the area of a parallelogram
described by two of its vals without contorsion. And so on. That
should also mean you get the same result if you divide through by d as
part of the weighting, and then use the standard Euclidean metric.

It's also set so that the scalar complexity approximates the STD
complexity, or vice versa. This is the RMS equivalent of the range
complexity (or Kees-max complexity) which is in turn the TOP
equivalent of the old odd-limit complexity. It's the average
complexity of an interval in terms of generators divided by the
complexity of the ratio it approximates. So the **r comes in because
you do a sum over r coefficients when you calculate the wedge
products.

Graham