back to list

RMS tuning on Xenwiki

🔗genewardsmith <genewardsmith@sbcglobal.net>

7/27/2010 1:58:11 PM

I just finished an article which may interest people here as I make the point that the projection maps, like wedgiea, automatically take care of torsion problems.

http://xenharmonic.wikispaces.com/RMS+tuning

🔗Graham Breed <gbreed@gmail.com>

7/27/2010 3:39:06 PM

On 27 July 2010 21:58, genewardsmith <genewardsmith@sbcglobal.net> wrote:
> I just finished an article which may interest people here as I make the point that the projection maps, like wedgiea, automatically take care of torsion problems.
>
> http://xenharmonic.wikispaces.com/RMS+tuning

You assert that, but you don't make the point. What are torsion
problems? And why wouldn't we expect them to be taken care of?

You say "P . . . does not depend on . . . whether torsion problems
have been removed. Those are removed automatically." What that seems
to mean is that contorsion is removed. So you've introduced a torsion
problem: that different systems aren't distinguished.

I'll look at other problems, like how to define this for linearly
dependent vectors, in the morning.

Graham

🔗genewardsmith <genewardsmith@sbcglobal.net>

7/27/2010 6:51:13 PM

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

> You say "P . . . does not depend on . . . whether torsion problems
> have been removed. Those are removed automatically." What that seems
> to mean is that contorsion is removed. So you've introduced a torsion
> problem: that different systems aren't distinguished.

You say that as if you thought removing torsion and removing contorsion were sharply distinguished. In fact, just as with wedgies, <24 38 56| and |-8 8 -2> are dealt with in basically the same way. Both wedgies and rational projection maps are associated 1-1 with points on the Grassmannian over Q for that kind of temperament, which it seems to me is clearly the right classifying space. The "different systems" you want to talk about can be added later after the important stuff is done, but I wouldn't bother. To me, that's the garbage you want to get rid of.

🔗Graham Breed <gbreed@gmail.com>

7/28/2010 5:51:27 AM

On 27 July 2010 21:58, genewardsmith <genewardsmith@sbcglobal.net> wrote:
> I just finished an article which may interest people here as I make the point that the projection maps, like wedgiea, automatically take care of torsion problems.
>
> http://xenharmonic.wikispaces.com/RMS+tuning

I've worked out how to get the pseudoinverse of linearly dependent
vectors now. I'm using the singular value decomposition (SVD).

http://en.wikipedia.org/wiki/Singular_value_decomposition

I'll write the SVD of an arbitrary matrix A as

A = U S V*

You'll have to compare with the Wikipedia article to understand the
symbols. The pseudoinverse is then

A' = V S' U*

where S' is like S but with the reciprocal of every non-zero element.

The projection matrix is then

P = V S' U* U S V*

Because U is unitary, that simplifies to

P = V S' S V*

Wikipedia defines V as a square matrix. You can also define it to
only have columns that correspond to non-zero singular values. In
this case,

P = V V*

so V carries the same information as P. Wikipedia calls it a span of
the null space, so that's to be expected.

The singular values tell us the complexity of the temperament class.
Scalar complexity comes from the product of the non-zero singular
values, with suitable weighting.

These definitions do work when A is not of full rank. But you have to
be careful about what counts as zero. I tried with numpy (which wraps
LAPACK) and it can give small floating point values. You have to
explicitly removed them to get the correct projection matrix.

When I looked at this before, I found V was unique for different
representations of a temperament class. According to Wikipedia, that
needn't always be the case. I don't know if LAPACK gives a unique
result anyway or how to get V as a matrix of rationals. It isn't a
good way of uniquely identifying the temperament class, anyway. If
you want to throw away contorsion, the reduced row echelon form of the
mapping does that job better.

The other matrix in the SVD, U, holds the information about the
particular basis you started with.

This is about as far as I got by looking at the SVD before. Which
means I didn't find anything genuinely interesting. It's obviously
relevant to TOP-RMS because it's one way of solving a least squares
problem but it doesn't go much further.

Graham

🔗genewardsmith <genewardsmith@sbcglobal.net>

7/28/2010 10:24:07 AM

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

> The singular values tell us the complexity of the temperament class.
> Scalar complexity comes from the product of the non-zero singular
> values, with suitable weighting.

Thanks, Graham! I've been trying to think how to compute that.

It isn't a
> good way of uniquely identifying the temperament class, anyway. If
> you want to throw away contorsion, the reduced row echelon form of the
> mapping does that job better.

Yes, but it's less canonical, which was my point.

🔗genewardsmith <genewardsmith@sbcglobal.net>

7/28/2010 11:12:41 AM

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

> The singular values tell us the complexity of the temperament class.
> Scalar complexity comes from the product of the non-zero singular
> values, with suitable weighting.

Using unweighted vals, I get singular values which are the positive roots of the following example polynomials:

7-limit rank 2

meantone: x^4 - 8491*x^2 + 446
miracle: x^4 - 44271*x^2 + 1339
ennealimmal: x^4 - 9550591*x^2 + 3018

11 limit rank 2

miracle: x^4 -75884*x^2 + 7455

7 limit rank 3

marvel: x^6 - 192928*x^4 + 7464*x^2 - 34

From what you say, complexity should be definable by the square root of the norm term (constant term) of polynomials like these only derived from weighted vals. Clearly it's related, but sqrt(34) is awfully small, whereas the x^4 term for marvel isn't. Anyway, I'll check some values and see what emerges.

🔗Graham Breed <gbreed@gmail.com>

7/28/2010 11:59:30 AM

On 28 July 2010 19:12, genewardsmith <genewardsmith@sbcglobal.net> wrote:
>
>
> --- In tuning-math@yahoogroups.com, Graham Breed <gbreed@...> wrote:
>
>> The singular values tell us the complexity of the temperament class.
>> Scalar complexity comes from the product of the non-zero singular
>> values, with suitable weighting.

Specifically, for any rank:

- Take the mapping matrix.

- Apply Tenney weighting.

- Divide through by the square root of the number of primes.

- Take the product of the singular values.

This isn't a very logical way to do it, but it gives roughly the
number of steps to the octave for an equal temperament, roughly the
standard deviation of the weighted generator mapping for a linear
temperament, and gives the right geometry for comparing different
ranks.

> Using unweighted vals, I get singular values which are the positive roots of the following example polynomials:
>
> 7-limit rank 2
>
> meantone: x^4 - 8491*x^2 + 446
> miracle: x^4 - 44271*x^2 + 1339
> ennealimmal: x^4 - 9550591*x^2 + 3018
>
> 11 limit rank 2
>
> miracle: x^4 -75884*x^2 + 7455
>
> 7 limit rank 3
>
> marvel: x^6 - 192928*x^4 + 7464*x^2 - 34

Oh, great, we've got some polynomials! That makes it real computer algebra.

> From what you say, complexity should be definable by the square root of the norm term (constant term) of polynomials like these only derived from weighted vals. Clearly it's related, but sqrt(34) is awfully small, whereas the x^4 term for marvel isn't. Anyway, I'll check some values and see what emerges.

The product of the marvel singular values is 5.831. Normalized,
0.729. The Tenney-weighted complexity, 0.0972. The only positive
root I get to that equation is 380.

Graham

🔗Graham Breed <gbreed@gmail.com>

7/30/2010 3:45:25 AM

On 28 July 2010 02:51, genewardsmith <genewardsmith@sbcglobal.net> wrote:
>
> --- In tuning-math@yahoogroups.com, Graham Breed <gbreed@...> wrote:
>
>> You say  "P . . . does not depend on . . . whether torsion problems
>> have been removed. Those are removed automatically."  What that seems
>> to mean is that contorsion is removed.  So you've introduced a torsion
>> problem: that different systems aren't distinguished.
>
> You say that as if you thought removing torsion and
> removing contorsion were sharply distinguished. In
> fact, just as with wedgies, <24 38 56| and |-8 8 -2>
> are dealt with in basically the same way. Both
> wedgies and rational projection maps are associated
> 1-1 with points on the Grassmannian over Q for that
> kind of temperament, which it seems to me is
> clearly the right classifying space. The "different
> systems" you want to talk about can be added later
> after the important stuff is done, but I wouldn't
> bother. To me, that's the garbage you want to
> get rid of.

I wasn't talking about removing anything. And nothing in this thread
describes how you would remove torsion.

Now, I'll try to work out that middle sentence. Grasmannian is here:

http://en.wikipedia.org/wiki/Grassmannian

"In mathematics, a Grassmannian is a space which parameterizes all
linear subspaces of a vector space V of a given dimension. For
example, the Grassmannian Gr1(V) is the space of lines through the
origin in V, so it is the same as the projective space PV.
Grassmannians are named in honor of Hermann Grassmann."

I don't understand that but I think "through the origin" is the key.
You're talking about the set of all tunings of a temperament class
(including the stupid ones).

Q is the set of rational numbers. So is that frequency ratios or
rational points in tuning space? Probably the latter, which is fine.
Tuning space is real. But mappings (vals) are integer, not rational,
and constitute a lattice. If you're treating them as rational, then
yes, you'll get the right tuning. But if you allow rationals,
contorsion is irrelevant. I don't know how contorsion can cause
problems when you deal with rationals.

When you deal with the lattice of mappings, torsion does matter. You
need integers and you need the right ones.

Classifying space is here:

"In mathematics, specifically in homotopy theory, a classifying space
BG of a topological group G is the quotient of a weakly contractible
space EG (i.e. a topological space for which all its homotopy groups
are trivial) by a free action of G. It has the property that any G
principal bundle over a paracompact manifold is isomorphic to a
pullback of the principal bundle EG--->BG
"For a discrete group G, BG is, roughly speaking, a path-connected
topological space X such that the fundamental group of X is isomorphic
to G and the higher homotopy groups of X are trivial."

I count 14 technical terms that I don't understand. So I'll give up.

No, you can't add the contorsion back in once you've thrown it away to
get a wedgie or a null space (kernel). The best way of dealing with
contorsion is to leave it in. Then it doesn't cause any problems.

If you think contorsional systems are garbage, that's fine. It's
you're opinion. It isn't one that's shared by the big quartertone
movement, that doesn't tend to use higher-limit mappings, or Vicentino
with his two contorsional tunings. But you can believe whatever you
like. What you should do is make these opinions clear before you
start talking about "torsional problems".

Graham

🔗Graham Breed <gbreed@gmail.com>

7/30/2010 3:48:29 AM

On 28 July 2010 18:24, genewardsmith <genewardsmith@sbcglobal.net> wrote:

> It isn't a
>> good way of uniquely identifying the temperament class, anyway.  If
>> you want to throw away contorsion, the reduced row echelon form of the
>> mapping does that job better.
>
> Yes, but it's less canonical, which was my point.

I've done a little Googling, and come up with a load of sites
(including Wikipedia) that give "row canonical form" as a synonym of
"reduced row echelon form". So I'm at a loss to know what you mean
here.

Graham

🔗genewardsmith <genewardsmith@sbcglobal.net>

7/30/2010 7:08:23 PM

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

> If you think contorsional systems are garbage, that's fine. It's
> you're opinion. It isn't one that's shared by the big quartertone
> movement, that doesn't tend to use higher-limit mappings, or Vicentino
> with his two contorsional tunings.

The trouble with this analysis is that it is talking about scales, not temperaments. 24et is not a temperament of 5-limit JI, since the image of all 5-limit intervals under the mapping is 12et, not 24et. If you want to add more notes to that you can, but it doesn't make it a tempering of 5-limit JI.

🔗genewardsmith <genewardsmith@sbcglobal.net>

7/30/2010 7:18:18 PM

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

> Classifying space is here:

Sorry, I meant to say moduli space, but I suggest you forget about that. I'm just saying that temperaments are classified by the rational points on a Grassmannian. There's this thing called the Pluecker embedding which maps that to wedgies, and the points can also be identified as rational projection maps.

🔗genewardsmith <genewardsmith@sbcglobal.net>

7/30/2010 7:31:08 PM

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

> I've done a little Googling, and come up with a load of sites
> (including Wikipedia) that give "row canonical form" as a synonym of
> "reduced row echelon form". So I'm at a loss to know what you mean
> here.

It's "less canonical" in the sense of not being as natural. Equating a point with a wedgie or a projection map involves a more natural definition. Hermite form or reduced row echelon form involves choices of where things could have been done differently, and that's even more true of LLL. From the point of view of applications to music, the reduced echelon form is likely to give the "wrong" result in the sense of mappings with generators which aren't what you want or lists of commas which aren't quite what you want, and "fixing" that leads to other choices of a reduced form.

🔗Graham Breed <gbreed@gmail.com>

7/31/2010 1:26:23 AM

On 31 July 2010 03:31, genewardsmith <genewardsmith@sbcglobal.net> wrote:
>
> --- In tuning-math@yahoogroups.com, Graham Breed <gbreed@...> wrote:
>
>> I've done a little Googling, and come up with a load of sites
>> (including Wikipedia) that give "row canonical form" as a synonym of
>> "reduced row echelon form".  So I'm at a loss to know what you mean
>> here.
>
> It's "less canonical" in the sense of not being as
> natural. Equating a point with a wedgie or a
> projection map involves a more natural definition.
> Hermite form or reduced row echelon form involves
> choices of where things could have been done
> differently, and that's even more true of LLL. From
> the point of view of applications to music, the
> reduced echelon form is likely to give the "wrong"
> result in the sense of mappings with generators
> which aren't what you want or lists of commas which
> aren't quite what you want, and "fixing" that leads to
> other choices of a reduced form.

We're not talking about a point but a row space. Reduced row echelon
form is the natural way of representing that space. There are ways it
could have been done differently, but most people who read left to
right converge on one canonical form. And if somebody makes a
different choice it should become obvious pretty quickly. The
arbitrariness of LLL has nothing to do with this.

The wedgies could be defined differently. We started out with
different ways of linearizing them. The projection map could be done
differently. You could subtract the identity matrix to get something
more like a wedgie. Or you could use the smaller (but irrational)
matrix that comes from the singular value decomposition.

I can't see anything special about applications to music.

You may get the wrong generators, in that your algorithm for producing
them may introduce contorsion. This can also happen with wedgies or
projection maps. The solution is to find an algorithm to remove
contorsion -- or stick with a lattice in the first place.

The natural way of defining the lattice basis is Hermite normal form.
That presents us with another choice: should certain entries be
defined as non-positive or non-negative. It makes sense for them to
be non-positive in mappings and non-negative in commas. (You can also
use a lower triangular form for commas, which is less standard.)

If you get the wrong commas, there's something wrong with your
algorithm for producing commas. That's true wherever you start from.

Graham

🔗Graham Breed <gbreed@gmail.com>

7/31/2010 1:30:34 AM

On 31 July 2010 03:08, genewardsmith <genewardsmith@sbcglobal.net> wrote:

> The trouble with this analysis is that it is talking about
> scales, not temperaments. 24et is not a
> temperament of 5-limit JI, since the image of all 5-limit
> intervals under the mapping is 12et, not 24et. If you want to
> add more notes to that you can, but it doesn't make it a
> tempering of 5-limit JI.

It depends on how you define "temperament" and "tempering", doesn't
it? Why does that matter?

Vicentino's second archicembalo tuning is sometimes described as an
adaptive temperament.

Graham

🔗genewardsmith <genewardsmith@sbcglobal.net>

7/31/2010 11:35:20 AM

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

> We're not talking about a point but a row space.

We're talking about a point if you look at it that way, which I would recommend.

Reduced row echelon
> form is the natural way of representing that space.

It seems to me it's a fairly piss-poor alternative to Hermite for musical purposes, actually, since it is defined over the rationals. Great for solving linear equations, of course.

There are ways it
> could have been done differently, but most people who read left to
> right converge on one canonical form. And if somebody makes a
> different choice it should become obvious pretty quickly. The
> arbitrariness of LLL has nothing to do with this.

No they don't, or we wouldn't have Hermite form, which makes more sense for music anyway, and we wouldn't have more than one version of it.

> The wedgies could be defined differently. We started out with
> different ways of linearizing them.

No, we started out with more than one way of determining sign. That's like complaining that p/q for rational numbers isn't very canonical, because the sign could be -p/q or p/-q. That sort of thing is not a big deal in my view.

The projection map could be done
> differently. You could subtract the identity matrix to get something
> more like a wedgie.

Which gives you a different projection map. Really, the alternatives are to project vals to identity and commas to null, or the reverse: dal mappings. Like you could use a multival or the Hodge dual.

> You may get the wrong generators, in that your algorithm for producing
> them may introduce contorsion. This can also happen with wedgies or
> projection maps.

It can't, since neither is giving generators and both remove contorsion.

> The natural way of defining the lattice basis is Hermite normal form.

It's a good choice, but "the natural way" is a big exaggeration.

🔗Graham Breed <gbreed@gmail.com>

7/31/2010 2:48:17 PM

On 31 July 2010 19:35, genewardsmith <genewardsmith@sbcglobal.net> wrote:
>
>
> --- In tuning-math@yahoogroups.com, Graham Breed <gbreed@...> wrote:
>
>> We're not talking about a point but a row space.
>
> We're talking about a point if you look at it that way, which I would recommend.

You'll have to explain how to do it, then.

>  Reduced row echelon
>> form is the natural way of representing that space.
>
> It seems to me it's a fairly piss-poor alternative to
> Hermite for musical purposes, actually, since it is
> defined over the rationals. Great for solving linear
> equations, of course.

Yes, what a crazy idea, to use a rational space. I wonder who could
have suggested it. Oh, it was you, wasn't it? Have you changed your
mind, and you're not advocating wedgies or projection matrices any
more?

>  There are ways it
>> could have been done differently, but most people who read left to
>> right converge on one canonical form.  And if somebody makes a
>> different choice it should become obvious pretty quickly.  The
>> arbitrariness of LLL has nothing to do with this.
>
> No they don't, or we wouldn't have Hermite form, which makes more sense for music anyway, and we wouldn't have more than one version of it.

We have Hermite normal form because reduced row echelon form isn't
defined, in general, for integers.

You keep evoking music as if it magically supported all your caprices.
You don't give reasons. What makes what we're doing different to any
other lattice?

>> The wedgies could be defined differently.  We started out with
>> different ways of linearizing them.
>
> No, we started out with more than one way of
> determining sign. That's like complaining that
> p/q for rational numbers isn't very canonical,
> because the sign could be -p/q or p/-q. That
> sort of thing is not a big deal in my view.

No we didn't. We started out with different ways of defining the
elements and different ways of ordering them.

We're comparing this with reduced row echelon form. What different
ways of doing reduced row echelon form are a big deal in your view?

>  The projection map could be done
>> differently.  You could subtract the identity matrix to get something
>> more like a wedgie.
>
> Which gives you a different projection map. Really, the alternatives are to project vals to identity and commas to null, or the reverse: dal mappings. Like you could use a multival or the Hodge dual.

Yes, different things are different.

>> You may get the wrong generators, in that your algorithm for producing
>> them may introduce contorsion.  This can also happen with wedgies or
>> projection maps.
>
> It can't, since neither is giving generators and both remove contorsion.

Neither of what? Let's check the context.

> From
> the point of view of applications to music, the
> reduced echelon form is likely to give the "wrong"
> result in the sense of mappings with generators
> which aren't what you want or lists of commas which
> aren't quite what you want, and "fixing" that leads to
> other choices of a reduced form.

So giving mappings with generators isn't giving generators. How am I
supposed to make sense of that?

Contorsion can be introduced when you go from the wedgie or the
projection map to the mapping. I thought you'd finally recognized
that. If not, where's your algorithm?

And, yes, removing contorsion will also give you invalid generators.

>> The natural way of defining the lattice basis is Hermite normal form.
>
> It's a good choice, but "the natural way" is a big exaggeration.

How are you defining this word "natural" so that it applies to the
projection matrix but not Hermite normal form?

Graham

🔗genewardsmith <genewardsmith@sbcglobal.net>

7/31/2010 5:16:03 PM

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

> > It seems to me it's a fairly piss-poor alternative to
> > Hermite for musical purposes, actually, since it is
> > defined over the rationals. Great for solving linear
> > equations, of course.
>
> Yes, what a crazy idea, to use a rational space. I wonder who could
> have suggested it. Oh, it was you, wasn't it?

Let's look at what reduced row echelon form gives you. Apply it to a row matrix of vals, and you get a matrix whose columns are Joe's beloved fractional monzos. If the rank is r, the first r columns are the first r primes. The rest of the columns give the other primes as fractional monzos expressed in terms of the first r primes. If the first r primes are tuned justly, the other columns give what the tuning would be for the other primes. Usually, of course, this isn't a good idea, but if you define a tuning for the first r primes, you can always get the tuning of the rest of the primes.

All of this is well and good, but it doesn't make clear to me why we would want to use reduced row echelon form, with its fractional vals and monzos, rather than Hermite form which actual vals, for the purpose of characterizing temperaments. I suppose if that appeals to you you might also like that a fairly perverse way of interpreting the rational projection map is that the rows can be considered either fractional vals or fractional monzos.

As for reduced row echelon form applied to a matrix with monzo rows, it seems to me that's rather artificial. r fractional monzos, with one of the first r primes to the power 1, and the rest 0, along with the remaining primes to whatever fractional power makes the whole thing come out to be a fractional comma.

Have you changed your
> mind, and you're not advocating wedgies or projection matrices any
> more?

Anything projective over the rationals can be and usually is expressed in terms of integers. For instance, the analog to echelon form for a polynomial with rational coefficients would be one with the leading term 1. But more often, denominators are cleared, and coefficients are given as integers, with the leading term positive. Taht would be like a wedgie.

> No we didn't. We started out with different ways of defining the
> elements and different ways of ordering them.

That was because I made two mistakes: one was to think I could explain enough of the wedgie business to be useful while sparing people any difficulties by simply pulling a definition suitable for 7 and 11 limit rank two situations out of a hat and waving it around, and the second being that since that's what I was doing, I didn't check to see what the standard ordering was. I don't think there was a good Wikipedia article at the time.

> Contorsion can be introduced when you go from the wedgie or the
> projection map to the mapping.

And it can be eliminated. But you don't really need the mapping for most purposes, you could simply use the tuning map.

> >> The natural way of defining the lattice basis is Hermite normal form.
> >
> > It's a good choice, but "the natural way" is a big exaggeration.
>
> How are you defining this word "natural" so that it applies to the
> projection matrix but not Hermite normal form?

You've just got the one projection map and its dual. For Hermite form, you need to be very specific about how exactly it is to be defined. The definition isn't forced on you by the nature of the question.

🔗genewardsmith <genewardsmith@sbcglobal.net>

7/31/2010 6:18:39 PM

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

> > It seems to me it's a fairly piss-poor alternative to
> > Hermite for musical purposes, actually, since it is
> > defined over the rationals. Great for solving linear
> > equations, of course.
>
> Yes, what a crazy idea, to use a rational space.

By the way, if all you are saying is that reduced row echelon form would be a good way to represent temperaments internally, then I agree. It's unique and quick to compute. As a way of presenting a unique identifier, its main advantage it seems to me is that routines to do the reduction are ubiquitous, so anyone can play. But what other advantage does it hold over Hermite form? You can claim it is more canonical, I guess, but it seems to me it's also more artificial.

🔗Graham Breed <gbreed@gmail.com>

8/1/2010 3:51:25 AM

On 1 August 2010 02:18, genewardsmith <genewardsmith@sbcglobal.net> wrote:

> By the way, if all you are saying is that reduced
> row echelon form would be a good way to represent
> temperaments internally, then I agree. It's unique
> and quick to compute. As a way of presenting a
> unique identifier, its main advantage it seems to me
> is that routines to do the reduction are ubiquitous,
> so anyone can play. But what other advantage
> does it hold over Hermite form? You can claim it is
> more canonical, I guess, but it seems to me it's
> also more artificial.

Reduced row echelon form (RREF) is for real matrices or spaces.
Hermite normal form (HNF) is for integer matrices or lattices. The
main advantage of RREF is that it gives the same result regardless of
(con)torsion. And the main disadvantage or RREF is that it gives the
same result regardless of (con)torsion.

What I use seems to agree with Sage's HNF (hermite_form). That
happens to disagree with Wikipedia, which gives a column instead of
row reduction.

Graham

🔗genewardsmith <genewardsmith@sbcglobal.net>

8/1/2010 10:29:31 AM

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

> Reduced row echelon form (RREF) is for real matrices or spaces.

REEF is defined over any vector space, so it's just as valid for rational matricies and vector spaces over Q. And that's good, because if you are using it as a unique marker for temperaments, that's what you want. Why would you use real matricies?

> Hermite normal form (HNF) is for integer matrices or lattices. The
> main advantage of RREF is that it gives the same result regardless of
> (con)torsion. And the main disadvantage or RREF is that it gives the
> same result regardless of (con)torsion.

Like the wedgie or the projection map, REEF over the rationals is related 1-1 to a point on the Grassmannian, ie a subspace of the rational vector space assoicated to a free abelian group of vals or monzos by extension of coefficients ("tensoring"). It seems to drive you nuts when I say something like that "gets rid" of (con)torsion, but it does go bye-bye. Feed <24 38 56| to REEF and you get <1 19/12 7/3|, and contorsion is not recoverable. Feed |-8 8 -2> in and you get |1 -1 1/4>, and torsion is not recoverable. This is an advantage over Hermite form, since you don't need to saturate things first. But anything which gives a satisfactory result for this task will do the same thing--end up with something related 1-1 to a point on the Grassmannian.

And no, it's not a disadvantage. Why you want to consider something which produces results which are not temperings of p-limit intervals a p-limit temperament is beyond me. Why not call that something else?

> What I use seems to agree with Sage's HNF (hermite_form). That
> happens to disagree with Wikipedia, which gives a column instead of
> row reduction.

You get the same result if you transpose, reduce, and transpose back?

🔗Graham Breed <gbreed@gmail.com>

8/1/2010 3:41:09 PM

On 1 August 2010 18:29, genewardsmith <genewardsmith@sbcglobal.net> wrote:
>
> REEF is defined over any vector space, so it's
> just as valid for rational matricies and vector spaces
> over Q. And that's good, because if you are using it
> as a unique marker for temperaments, that's what
> you want. Why would you use real matricies?

When did rationals stop being real?

>> Hermite normal form (HNF) is for integer matrices or lattices.  The
>> main advantage of RREF is that it gives the same result regardless of
>> (con)torsion.  And the main disadvantage or RREF is that it gives the
>> same result regardless of (con)torsion.
>
> Like the wedgie or the projection map, REEF over
> the rationals is related 1-1 to a point on the
> Grassmannian, ie a subspace of the rational
> vector space assoicated to a free abelian group
> of vals or monzos by extension of coefficients
> ("tensoring"). It seems to drive you nuts when I
> say something like that "gets rid" of (con)torsion,
> but it does go bye-bye. Feed <24 38 56| to REEF
> and you get <1 19/12 7/3|, and contorsion is not
> recoverable. Feed |-8 8 -2> in and you get |1 -1 1/4>,
> and torsion is not recoverable. This is an advantage
> over Hermite form, since you don't need to saturate
> things first. But anything which gives a satisfactory
> result for this task will do the same thing--end up
> with something related 1-1 to a point on the
> Grassmannian.

It doesn't drive me nuts, I only point out that it isn't true. And it
isn't. It can get rid of torsion, but it doesn't always. What it
does is hide the torsion where you can't see it so that it comes out
and bites you later. So you don't need to saturate things first, like
you don't with HNF. But you do need to saturate things afterwards, by
every algorithm I know, and you know it.

An example: miracle temperament

[ 31 49 72 87]
[ 41 65 95 115]

HNF:
[ 1 1 3 3]
[ 0 6 -7 -2]

RREF:
[ 1 0 25/6 10/3]
[ 0 1 -7/6 -1/3]

RREF multiplied through to give integers:
[ 6 0 25 20]
[ 0 6 -7 -2]

That gives two vals that should describe the temperament class. But
they have contorsion. That should be obvious: the matrix is already
in HNF but it isn't the same as what we had before.

There are other ways to recover the mapping, of course. But so far
you haven't given me an algorithm beyond rank 2 that doesn't introduce
contorsion. So I still say contorsion isn't removed.

> And no, it's not a disadvantage. Why you want to
> consider something which produces results which
> are not temperings of p-limit intervals a p-limit
> temperament is beyond me. Why not call that
> something else?

There are three points here, crammed into the one paragraph. I'll
deal with them separately.

Firstly, you say it isn't a disadvantage. Well, that depends on what
you want to do, doesn't it? That's all I said in my paragraph. I
didn't say which I preferred, only that different reductions worked in
different situations. You haven't contradicted that, but still you
had to start an argument.

Secondly, I've told you why I want to consider things with contorsion.
They include historically important systems like quartertones of
different guises and Vicentino's adaptive temperament. And you never
give reasons for why you find these systems to be unworthy of
consideration. All you do is keep stating your opinion as if it were
an objective fact. Well, I've got it now. Unless you have something
new to say it isn't interesting to keep talking about.

Thirdly, why not call what something else? I'd like to call the
contorted things temperaments or temperament classes but I don't. And
I really don't want to get into another stupid terminology dispute.

>> What I use seems to agree with Sage's HNF (hermite_form).  That
>> happens to disagree with Wikipedia, which gives a column instead of
>> row reduction.
>
> You get the same result if you transpose, reduce, and transpose back?

No, because an upper triangular matrix will transpose to be lower
triangular. But some transformation will do it.

Graham

🔗Graham Breed <gbreed@gmail.com>

8/1/2010 3:49:30 PM

On 1 August 2010 01:16, genewardsmith <genewardsmith@sbcglobal.net> wrote:

>> Contorsion can be introduced when you go from the wedgie or the
>> projection map to the mapping.
>
> And it can be eliminated. But you don't really need
> the mapping for most purposes, you could simply
> use the tuning map.

This is where you concede that the contorsion doesn't disappear after all.

You "most purposes" is egocentric. There's one purpose you don't need
the mapping for: writing music in JI with commas tempered out and
rendering that music in an optimal tuning. Other purposes --
generalized keyboards, linear notations, MOS scales -- require a
mapping. Or, at least, they go wrong if you introduce contorsion
where you don't want it.

Graham

🔗Graham Breed <gbreed@gmail.com>

8/1/2010 3:55:54 PM

On 1 August 2010 01:16, genewardsmith <genewardsmith@sbcglobal.net> wrote:

> You've just got the one projection map and its dual.
> For Hermite form, you need to be very specific
> about how exactly it is to be defined. The definition
> isn't forced on you by the nature of the question.

If the projection map is the answer, what was the question?

Graham

🔗genewardsmith <genewardsmith@sbcglobal.net>

8/1/2010 6:51:00 PM

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

> There are other ways to recover the mapping, of course. But so far
> you haven't given me an algorithm beyond rank 2 that doesn't introduce
> contorsion. So I still say contorsion isn't removed.

Eh? What was all the song and dance about Smith form for removing controsion, then?

> Secondly, I've told you why I want to consider things with contorsion.
> They include historically important systems like quartertones of
> different guises and Vicentino's adaptive temperament. And you never
> give reasons for why you find these systems to be unworthy of
> consideration.

Consider them all you like, but don't confuse them with regular temperaments.

🔗Carl Lumma <carl@lumma.org>

8/1/2010 7:32:27 PM

Graham wrote:

>Secondly, I've told you why I want to consider things with contorsion.
> They include historically important systems like quartertones of
>different guises and Vicentino's adaptive temperament. And you never
>give reasons for why you find these systems to be unworthy of
>consideration.

He didn't say they were unworthy of consideration. So that's just
a straw man. Your "reason" is also poppycock, since neither
Vincentino nor the quartertone composers had any knowledge of the
situation that's useful to us now. What you need to do is to show
how considering contorted systems to be first-class citizens makes
sense or makes things easier. To me it looks like it would make
things much harder.

-Carl

🔗Graham Breed <gbreed@gmail.com>

8/2/2010 2:48:10 AM

On 2 August 2010 02:51, genewardsmith <genewardsmith@sbcglobal.net> wrote:
>
> --- In tuning-math@yahoogroups.com, Graham Breed <gbreed@...> wrote:
>
>> There are other ways to recover the mapping, of course.  But so far
>> you haven't given me an algorithm beyond rank 2 that doesn't introduce
>> contorsion.  So I still say contorsion isn't removed.
>
> Eh? What was all the song and dance about Smith form for removing controsion, then?

Smith form gives an algorithm for removing contorsion, yes. You
wouldn't have to use it if you didn't already have contorsion. So if
you have to use it, it shows that contorsion hasn't been removed.

>> Secondly, I've told you why I want to consider things with contorsion.
>>  They include historically important systems like quartertones of
>> different guises and Vicentino's adaptive temperament.  And you never
>> give reasons for why you find these systems to be unworthy of
>> consideration.
>
> Consider them all you like, but don't confuse them with regular temperaments.

What gives you the right to order me about?

Graham

🔗Graham Breed <gbreed@gmail.com>

8/2/2010 3:55:42 AM

On 2 August 2010 03:32, Carl Lumma <carl@lumma.org> wrote:

> He didn't say they were unworthy of consideration.  So that's just
> a straw man.  Your "reason" is also poppycock, since neither
> Vincentino nor the quartertone composers had any knowledge of the
> situation that's useful to us now.  What you need to do is to show
> how considering contorted systems to be first-class citizens makes
> sense or makes things easier.  To me it looks like it would make
> things much harder.

Sorry, I did misread Gene's statement.

Throwing insults and evoking mysterious new advances doesn't
constitute a refutation.

I don't see why I have to show anything. Why is the onus on me to
prove a negative? I'll try and explain what I see, anyway.

Rank 1 is pretty trivial. The simplest thing is to ignore contorsion.
It's so trivial I can't think of any interesting way of explaining
it.

The simplest thing for rank 2 searches is to ignore contorsion but use
the octave-equivalent wedgie as a unique key. This is wrong whatever
way you look at it. If you didn't want contorted things, it's wrong
because you get them. If you did want contorted things, it's wrong
because you don't get all of them. So there's a sacrifice for the
simplicity.

You should have Scheme code for rank 2 searches, and Scheme is the
language I believe you're most familiar with. So look at regular.scm.
If you ignore contorsion, you can remove the "hcf" function, lines 37
to 40. With a true Scheme implementation, you can remove that anyway,
but there you go.

There's a contorsion test on line 89 that you can remove.

You can remove lt.contorted on lines 310 to 323 and the reference to
it on line 355.

At this point, I believe you have simpler code that ignores
contorsion. You'll have to tell me why you think things are going to
get harder.

This is already implemented in the simple but unreadable
regular_terse.py. If you can do searches with less code than that I'd
like to see it.

There are problems with leaving the contorsion in. As I said above,
the simplest method is wrong. You can use Hermite normal form (HNF)
or a canonical period/generator mapping as the unique key. But
contorted things come in groups that have identical error and
complexity, and therefore badness. That makes the order they get
listed in arbitrary. And that can be a problem. You can regression
test the code by ensuring it always gives the same results. But then
you need to explicitly recognize contorted pairs and use a tie-breaker
to decide what order they should be in. I found the easiest thing, in
that case, was to throw the contorted things away.

So, now let's say we want to do things correctly, and we don't care
about consistent output. The right things are getting everything or
nothing contorted.

The extra complexity for getting everything contorted is that you need
a unique way of identifying temperament classes. One way, as in this
thread, is HNF. That is quite complicated. But the code I have is
for the general case, and it can probably be simplified for rank 2. I
also have separate code for finding generator/period mappings, which
is a similar idea. So that's the complexity you have to consider on
the one hand.

If you want nothing contorted, you can keep using the
octave-equivalent wedgie as the unique key for rank 2. Or, if you
want to be strict, you can use the full wedgie. There's also an
integerized version of the reduced row echelon form, which turns out
to be the wedgie in different clothes. Producing the rank 2 wedgie is
very easy, and I think simpler than the generator/period mapping. But
you also need to detect contorsion, which means a bit more complexity.

Overall, it doesn't make much difference for rank 2. Finding the
wedgie is pretty easy. Calculating the GCD is pretty easy, and may be
built into the language. Finding the generator/period mapping is also
easy and you might want to do it anyway. So it's best to go with what
you want and ignore the complexity.

For higher ranks, I'm not so clear. I have implemented the search
using wedgies. That meant a full implementation of exterior algebra,
using Python dictionaries. That isn't horribly complicated, but it is
worth avoiding, and it's slow. It would also get more complicated in
a lower level language that doesn't provide the dictionaries -- unless
you find a better way to do it. You have to compare this with the HNF
function. I think HNF is simpler but I haven't done a full
comparison, and wedgies may still be simpler if you make rank 3 a
special case.

The other approach is to use reduced row echelon form. That's pretty
easy if you have support for rational numbers. If you don't, the
rational number library adds to the complexity. There's also a twist
that gives an integer matrix, and I have code to do that without using
rationals. It uses the same function to get the echelon form that
contributes most of the complexity to the HNF implementation. You
also need a way of detecting torsion, which means either HNF or
wedgies.

I think that shows how treating contorted systems as first class
citizens might be simpler than some undefined null hypothesis. I
don't know how to show that they make sense because I can't think of
any argument why they wouldn't make sense that I can refute.

Graham

🔗Graham Breed <gbreed@gmail.com>

8/2/2010 5:28:22 AM

In my reply, I talked about wedgies as linearized wedge products. The
definition AIUI is that wedgies have torsion removed. In that case,
obviously it doesn't make sense to use them for detecting torsion. So
you use the things like wedgies that still have the torsion. Take
note.

Graham

🔗Carl Lumma <carl@lumma.org>

8/2/2010 11:57:36 AM

Graham wrote:

>I don't see why I have to show anything. Why is the onus on me to
>prove a negative?

Maybe I've misunderstood. What are you claiming torsional maps
are good for?

>Rank 1 is pretty trivial. The simplest thing is to ignore contorsion.
>It's so trivial I can't think of any interesting way of explaining it.

If by "ignore" you mean "divide through by the GCD" I'm with you 100%.

>The simplest thing for rank 2 searches is to ignore contorsion but use
>the octave-equivalent wedgie as a unique key. This is wrong whatever
>way you look at it. If you didn't want contorted things, it's wrong
>because you get them. If you did want contorted things, it's wrong
>because you don't get all of them. So there's a sacrifice for the
>simplicity.
>You should have Scheme code for rank 2 searches, and Scheme is the
>language I believe you're most familiar with. So look at regular.scm.
> If you ignore contorsion, you can remove the "hcf" function, lines 37
>to 40. With a true Scheme implementation, you can remove that anyway,
>but there you go.
>There's a contorsion test on line 89 that you can remove.
>You can remove lt.contorted on lines 310 to 323 and the reference to
>it on line 355.
>At this point, I believe you have simpler code that ignores
>contorsion. You'll have to tell me why you think things are going to
>get harder.
>This is already implemented in the simple but unreadable
>regular_terse.py. If you can do searches with less code than that I'd
>like to see it.

It looks like you're telling me to implement something you first
say makes no sense. But I don't know what you mean by "ignore"
so I'm lost here anyway.

>There are problems with leaving the contorsion in. As I said above,
>the simplest method is wrong. You can use Hermite normal form (HNF)
>or a canonical period/generator mapping as the unique key. But
>contorted things come in groups that have identical error and
>complexity, and therefore badness.

Example? Ought they not have higher complexity?

>The extra complexity for getting everything contorted is that you need
>a unique way of identifying temperament classes. One way, as in this
>thread, is HNF. That is quite complicated. But the code I have is
>for the general case, and it can probably be simplified for rank 2. I
>also have separate code for finding generator/period mappings, which
>is a similar idea. So that's the complexity you have to consider on
>the one hand.

I'm not going to have a clue what this is about without examples.

>If you want nothing contorted, you can keep using the
>octave-equivalent wedgie as the unique key for rank 2. Or, if you
>want to be strict, you can use the full wedgie.

The octave-equivalent wedgie is just the front of the wedgie,
right? I don't see what's wrong with the whole wedgie and I
don't know what you mean by "unique key".

-Carl

🔗genewardsmith <genewardsmith@sbcglobal.net>

8/2/2010 12:20:43 PM

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

> > Eh? What was all the song and dance about Smith form for removing controsion, then?
>
> Smith form gives an algorithm for removing contorsion, yes. You
> wouldn't have to use it if you didn't already have contorsion. So if
> you have to use it, it shows that contorsion hasn't been removed.

There can't be any contorsion without a mapping, and only HNF gives you a mapping. The rational projection map and RREF are defined over the rationals and don't in general give you a mapping without further work, and your complaint seems to be that if you do the work incorrectly, you might get an incorrect result. The most theoretically straightforward way of getting a mapping from a wedgie is to take interior products to get a list of vals, and then reduce the list by HNF, which produces no contorsion, so it seems preposterous to claim it somehow "has" contorsion.

🔗genewardsmith <genewardsmith@sbcglobal.net>

8/2/2010 1:02:03 PM

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

Producing the rank 2 wedgie is
> very easy, and I think simpler than the generator/period mapping. But
> you also need to detect contorsion, which means a bit more complexity.

As I keep saying, there isn't any contorsion in a wedgie. But to get the wedgie, you might need to divide out the GCD.

> I think that shows how treating contorted systems as first class
> citizens might be simpler than some undefined null hypothesis.

It does? If you argued that in this posting, I missed it. What happened to your idea of using RREF as the key?

I
> don't know how to show that they make sense because I can't think of
> any argument why they wouldn't make sense that I can refute.

They make sense, they just aren't regular temperaments since many of their intervals are not temperings of JI.

🔗genewardsmith <genewardsmith@sbcglobal.net>

8/2/2010 1:03:16 PM

--- In tuning-math@yahoogroups.com, Graham Breed <gbreed@...> wrote:
So
> you use the things like wedgies that still have the torsion. Take
> note.

Multivals.

🔗Carl Lumma <carl@lumma.org>

8/2/2010 1:23:31 PM

Gene wrote:

>--- In tuning-math@yahoogroups.com, Graham Breed <gbreed@...> wrote:
>> So
>> you use the things like wedgies that still have the torsion. Take
>> note.
>
>Multivals.

You are saying that wedgies are defined as being torsion-free, so
we must call them multivals. Correct?

-Carl

🔗Graham Breed <gbreed@gmail.com>

8/2/2010 1:48:02 PM

On 2 August 2010 19:57, Carl Lumma <carl@lumma.org> wrote:
> Graham wrote:
>
>>I don't see why I have to show anything.  Why is the onus on me to
>>prove a negative?
>
> Maybe I've misunderstood.  What are you claiming torsional maps
> are good for?

What's a torsional map? Something like a temperament that has a
mapping with contorsion? They're good if they're what you want. You
can make music with them that you couldn't make otherwise.

>>Rank 1 is pretty trivial.  The simplest thing is to ignore contorsion.
>>It's so trivial I can't think of any interesting way of explaining it.
>
> If by "ignore" you mean "divide through by the GCD" I'm with you 100%.

No, by "ignore" I mean do nothing. I don't see how doing something
can be simpler than doing nothing.

>>The simplest thing for rank 2 searches is to ignore contorsion but use
>>the octave-equivalent wedgie as a unique key.  This is wrong whatever
>>way you look at it.  If you didn't want contorted things, it's wrong
>>because you get them.  If you did want contorted things, it's wrong
>>because you don't get all of them.  So there's a sacrifice for the
>>simplicity.
>>You should have Scheme code for rank 2 searches, and Scheme is the
>>language I believe you're most familiar with.  So look at regular.scm.
>> If you ignore contorsion, you can remove the "hcf" function, lines 37
>>to 40.  With a true Scheme implementation, you can remove that anyway,
>>but there you go.
>>There's a contorsion test on line 89 that you can remove.
>>You can remove lt.contorted on lines 310 to 323 and the reference to
>>it on line 355.
>>At this point, I believe you have simpler code that ignores
>>contorsion.  You'll have to tell me why you think things are going to
>>get harder.
>>This is already implemented in the simple but unreadable
>>regular_terse.py.  If you can do searches with less code than that I'd
>>like to see it.
>
> It looks like you're telling me to implement something you first
> say makes no sense.  But I don't know what you mean by "ignore"
> so I'm lost here anyway.

I've searched and I can find no "sense" in my message. I've left the
whole paragraph there in case it leads to enlightenment.

http://dictionary.reference.com/browse/ignore

ig·nore   [ig-nawr, -nohr] Show IPA
–verb (used with object), -nored, -nor·ing.
1.
to refrain from noticing or recognizing: to ignore insulting remarks.

World English Dictionary
ignore (ɪɡˈnɔː)

— vb
1. to fail or refuse to notice; disregard

Word Origin & History

ignore
1611, "not to know, to be ignorant of," from Fr. ignorer, from L.
ignorare "not to know, disregard," from ignarus "not knowing,
unaware" (see ignorant). Sense of "pay no attention to" first recorded
1801 and not common until c.1850.
Online Etymology Dictionary, © 2010 Douglas Harper
Cite This Source

>>There are problems with leaving the contorsion in.  As I said above,
>>the simplest method is wrong.  You can use Hermite normal form (HNF)
>>or a canonical period/generator mapping as the unique key.  But
>>contorted things come in groups that have identical error and
>>complexity, and therefore badness.
>
> Example?  Ought they not have higher complexity?

Vicentino

mapping by steps:
[<7, 11, 16],
<31, 49, 72]>

reduced mapping:
[<1, 1, 0],
<0, 2, 8]>

complexity: 1.422 TOP-RMS error: 1.582 cent/oct

Semaphore

mapping by steps:
[<5, 8, 12],
<19, 30, 44]>

reduced mapping:
[<1, 0, -4],
<0, 2, 8]>

complexity: 1.422 TOP-RMS error: 1.582 cent/oct

The complexities are the same. You can easily see that the
octave-equivalent complexities are the same because the generator
mappings are the same.

Also,

Injera

mapping by steps:
[<12, 19, 28],
<38, 60, 88]>

reduced mapping:
[<2, 0, -8],
<0, 1, 4]>

complexity: 1.422 TOP-RMS error: 1.582 cent/oct

Different generator mapping, but the period's divided, so the
octave-equivalent wedgie (or whatever) is the same.

I suppose it's possible that something with contorsion will get
confused with something without contorsion, and that would cause
trouble.

>>The extra complexity for getting everything contorted is that you need
>>a unique way of identifying temperament classes.  One way, as in this
>>thread, is HNF.  That is quite complicated.  But the code I have is
>>for the general case, and it can probably be simplified for rank 2.  I
>>also have separate code for finding generator/period mappings, which
>>is a similar idea.  So that's the complexity you have to consider on
>>the one hand.
>
> I'm not going to have a clue what this is about without examples.

You'll have to look at the code then.

>>If you want nothing contorted, you can keep using the
>>octave-equivalent wedgie as the unique key for rank 2.  Or, if you
>>want to be strict, you can use the full wedgie.
>
> The octave-equivalent wedgie is just the front of the wedgie,
> right?  I don't see what's wrong with the whole wedgie and I
> don't know what you mean by "unique key".

Yes, the front of the wedgie. The full wedgie's bigger and more
difficult to calculate. You can also take a bit more of the front of
the wedgie, in which case you can uniquely identify uncontorted
temperament classes in the rare (but not unheard of) event that two of
them have the same octave-equivalent wedgie. And, yes, "more of the
front" can be made quantitative. It's essentially identical to the
reduced row echelon form.

By "unique key" I mean the key part of a key/value pair that uniquely
identifies a temperament class.

Graham

🔗Graham Breed <gbreed@gmail.com>

8/2/2010 1:58:53 PM

On 2 August 2010 21:02, genewardsmith <genewardsmith@sbcglobal.net> wrote:

> As I keep saying, there isn't any contorsion in a wedgie. But to get the wedgie, you might need to divide out the GCD.

Didn't you get the message where I said that?

>> I think that shows how treating contorted systems as first class
>> citizens might be simpler than some undefined null hypothesis.
>
> It does? If you argued that in this posting, I missed it. What happened to your idea of using RREF as the key?

You'll have to read it again, then. Nothing happened to RREF.

>  I
>> don't know how to show that they make sense because I can't think of
>> any argument why they wouldn't make sense that I can refute.
>
> They make sense, they just aren't regular temperaments since many of their intervals are not temperings of JI.

By your definition, yes. Why do you keep saying this?

Graham

🔗Carl Lumma <carl@lumma.org>

8/2/2010 2:25:01 PM

Graham wrote:

>>>The simplest thing for rank 2 searches is to ignore contorsion but use
>>>the octave-equivalent wedgie as a unique key. This is wrong whatever
>>>way you look at it. If you didn't want contorted things, it's wrong
>>>because you get them. If you did want contorted things, it's wrong
>>>because you don't get all of them. So there's a sacrifice for the
>>>simplicity.
>>>You should have Scheme code for rank 2 searches, and Scheme is the
>>>language I believe you're most familiar with. So look at regular.scm.
>>> If you ignore contorsion, you can remove the "hcf" function, lines 37
>>>to 40. With a true Scheme implementation, you can remove that anyway,
>>>but there you go.
>>>There's a contorsion test on line 89 that you can remove.
>>>You can remove lt.contorted on lines 310 to 323 and the reference to
>>>it on line 355.
>>>At this point, I believe you have simpler code that ignores
>>>contorsion. You'll have to tell me why you think things are going to
>>>get harder.
>>>This is already implemented in the simple but unreadable
>>>regular_terse.py. If you can do searches with less code than that I'd
>>>like to see it.
>>
>> It looks like you're telling me to implement something you first
>> say makes no sense. But I don't know what you mean by "ignore"
>> so I'm lost here anyway.
>
>I've searched and I can find no "sense" in my message.

Sorry, you said it is "wrong whatever way you look at it".

>>>There are problems with leaving the contorsion in. As I said above,
>>>the simplest method is wrong. You can use Hermite normal form (HNF)
>>>or a canonical period/generator mapping as the unique key. But
>>>contorted things come in groups that have identical error and
>>>complexity, and therefore badness.
>>
>> Example? Ought they not have higher complexity?
>
>Vicentino
>
>mapping by steps:
>[<7, 11, 16],
> <31, 49, 72]>
>
>reduced mapping:
>[<1, 1, 0],
> <0, 2, 8]>
>
>complexity: 1.422 TOP-RMS error: 1.582 cent/oct
>
>Semaphore
>
>mapping by steps:
>[<5, 8, 12],
> <19, 30, 44]>
>
>reduced mapping:
>[<1, 0, -4],
> <0, 2, 8]>
>
>complexity: 1.422 TOP-RMS error: 1.582 cent/oct
>
>The complexities are the same.

What kind of complexity is this? Semaphore requires 5 of one of its
generators vs. 1 for Vicentino.

-Carl

🔗Graham Breed <gbreed@gmail.com>

8/2/2010 2:35:07 PM

On 2 August 2010 22:25, Carl Lumma <carl@lumma.org> wrote:

> Sorry, you said it is "wrong whatever way you look at it".

Yes. It's wrong, but it's simple. Sometimes you can put up with a
bit of wrongness for the sake of simplicity. It doesn't matter much
because it won't affect the best temperaments. And when you see
something with contorsion, you know there must be similar things that
got left out.

>>Vicentino
>>[<1, 1, 0],
>> <0, 2, 8]>

>>Semaphore
>>[<1, 0, -4],
>> <0, 2, 8]>
>>
>>complexity: 1.422  TOP-RMS error: 1.582 cent/oct
>>
>>The complexities are the same.
>
> What kind of complexity is this?  Semaphore requires 5 of one of its
> generators vs. 1 for Vicentino.

It's scalar complexity. Semaphore requires 1 generator for 1 of
Vicentino's in the 5-limit. They have the same multival, and scalar
complexity can be calculated from the multival.

Graham

🔗Carl Lumma <carl@lumma.org>

8/2/2010 3:33:22 PM

Graham wrote:

>> Sorry, you said it is "wrong whatever way you look at it".
>
>Yes. It's wrong, but it's simple. Sometimes you can put up with a
>bit of wrongness for the sake of simplicity. It doesn't matter much
>because it won't affect the best temperaments. And when you see
>something with contorsion, you know there must be similar things that
>got left out.

I'm not sure what goal you're commenting in relation to.
A temperament search perhaps?

>>>Vicentino
>>>[<1, 1, 0],
>>> <0, 2, 8]>
>
>>>Semaphore
>>>[<1, 0, -4],
>>> <0, 2, 8]>
>>>
>>>complexity: 1.422 TOP-RMS error: 1.582 cent/oct
>>>
>>>The complexities are the same.
>>
>> What kind of complexity is this? Semaphore requires 5 of one of its
>> generators vs. 1 for Vicentino.
>
>It's scalar complexity.

Where is "scalar complexity" defined?

>Semaphore requires 1 generator for 1 of
>Vicentino's in the 5-limit.

That would be an octave-equivalent complexity. Otherwise you
have to heed the "period".

>They have the same multival, and scalar
>complexity can be calculated from the multival.

What is that multival then?

-Carl

🔗Graham Breed <gbreed@gmail.com>

8/2/2010 3:47:43 PM

On 2 August 2010 23:33, Carl Lumma <carl@lumma.org> wrote:
> Graham wrote:
>
>>> Sorry, you said it is "wrong whatever way you look at it".
>>
>>Yes.  It's wrong, but it's simple.  Sometimes you can put up with a
>>bit of wrongness for the sake of simplicity.  It doesn't matter much
>>because it won't affect the best temperaments.  And when you see
>>something with contorsion, you know there must be similar things that
>>got left out.
>
> I'm not sure what goal you're commenting in relation to.
> A temperament search perhaps?

Yes.

> Where is "scalar complexity" defined?

http://x31eq.com/temper/primerr.pdf isn't it?

>>Semaphore requires 1 generator for 1 of
>>Vicentino's in the 5-limit.
>
> That would be an octave-equivalent complexity.  Otherwise you
> have to heed the "period".

You can heed the period and they still come out the same.

>>They have the same multival, and scalar
>>complexity can be calculated from the multival.
>
> What is that multival then?

<<2,8,8]] I think. In dictionary form:

{(0, 2): -8, (0, 1): -2, (1, 2): -8}

or its negation.

Graham

🔗Carl Lumma <carl@lumma.org>

8/2/2010 4:39:23 PM

Graham wrote:

>>> Vicentino
>>> [<1, 1, 0],
>>> <0, 2, 8]>
>>>
>>> Semaphore
>>> [<1, 0, -4],
>>> <0, 2, 8]>
//
>> That would be an octave-equivalent complexity. Otherwise you
>> have to heed the "period".
>
> You can heed the period and they still come out the same.

A 2:3:5 chord will delimit a square region on a generator,period
lattice of 16 pitches in the case of vicentino, and 40 in the case
of semaphore. That's how it might work out on a matrix keyboard.

>>>They have the same multival, and scalar
>>>complexity can be calculated from the multival.
>>
>> What is that multival then?
>
><<2,8,8]] I think.

So why have two names been assigned. Gene?

-Carl

🔗Graham Breed <gbreed@gmail.com>

8/2/2010 5:13:49 PM

On 3 August 2010 00:39, Carl Lumma <carl@lumma.org> wrote:
> Graham wrote:
>
>>>> Vicentino
>>>> [<1, 1, 0],
>>>>  <0, 2, 8]>
>>>>
>>>> Semaphore
>>>> [<1, 0, -4],
>>>>  <0, 2, 8]>
> //
>>> That would be an octave-equivalent complexity.  Otherwise you
>>> have to heed the "period".
>>
>> You can heed the period and they still come out the same.
>
> A 2:3:5 chord will delimit a square region on a generator,period
> lattice of 16 pitches in the case of vicentino, and 40 in the case
> of semaphore.  That's how it might work out on a matrix keyboard.

That's only one chord. You'll get different numbers for different
chords. And it depends on the choice of generator and period, so it
fails one of my "scalar" tests.

>>>>They have the same multival, and scalar
>>>>complexity can be calculated from the multival.
>>>
>>> What is that multival then?
>>
>><<2,8,8]] I think.
>
> So why have two names been assigned.  Gene?

Vicentino is named after Vicentino, who invented it. The others are
inherited form higher-prime temperaments.

Graham

🔗genewardsmith <genewardsmith@sbcglobal.net>

8/2/2010 9:39:43 PM

--- In tuning-math@yahoogroups.com, Carl Lumma <carl@...> wrote:
>
> Gene wrote:
>
> >--- In tuning-math@yahoogroups.com, Graham Breed <gbreed@> wrote:
> >> So
> >> you use the things like wedgies that still have the torsion. Take
> >> note.
> >
> >Multivals.
>
> You are saying that wedgies are defined as being torsion-free, so
> we must call them multivals. Correct?

If they are not reduced, yes.

🔗genewardsmith <genewardsmith@sbcglobal.net>

8/2/2010 9:58:38 PM

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

> Vicentino
>
> mapping by steps:
> [<7, 11, 16],
> <31, 49, 72]>
>
> reduced mapping:
> [<1, 1, 0],
> <0, 2, 8]>

The justification for the claim Vicentino invented this is? I suspect a keyboard arrangement has been promoted to a contorted temperament here. Did Vicentino use the 7-note mohajira MOS, or the diatonic scale? Where are the neutral thirds in his music? I'd be interested in the sources behind this; if Vicentino did anything like mohajira I'd like to know.

🔗genewardsmith <genewardsmith@sbcglobal.net>

8/2/2010 10:01:21 PM

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

> > They make sense, they just aren't regular temperaments since many of their intervals are not temperings of JI.
>
> By your definition, yes. Why do you keep saying this?

Take <24 38 56|. What 5-limit interval is 11 steps a tempering of?

🔗genewardsmith <genewardsmith@sbcglobal.net>

8/2/2010 10:07:45 PM

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

> > Where is "scalar complexity" defined?
>
> http://x31eq.com/temper/primerr.pdf isn't it?

Or

http://xenharmonic.wikispaces.com/RMS+temperament+measures

where I call it "wedgie complexity". But I need to add a link to primerr to that article.

🔗genewardsmith <genewardsmith@sbcglobal.net>

8/2/2010 10:15:04 PM

--- In tuning-math@yahoogroups.com, Carl Lumma <carl@...> wrote:

> So why have two names been assigned. Gene?

More than that; semaphore is also called godzilla and mohajira (which is what we really are talking about) semififths. I'm sceptical of the idea Vicentino had anything to do with any of them; I'd like to see the argument.

🔗Carl Lumma <carl@lumma.org>

8/2/2010 10:27:43 PM

At 10:15 PM 8/2/2010, you wrote:
>
>--- In tuning-math@yahoogroups.com, Carl Lumma <carl@...> wrote:
>
>> So why have two names been assigned. Gene?
>
>More than that; semaphore is also called godzilla and mohajira (which
>is what we really are talking about) semififths.

Graham: Can you add a name lookup box here:

http://x31eq.com/temper/pregular.html

?

-Carl

🔗Graham Breed <gbreed@gmail.com>

8/3/2010 12:34:44 AM

On 3 August 2010 06:27, Carl Lumma <carl@lumma.org> wrote:

> Graham: Can you add a name lookup box here:
>
> http://x31eq.com/temper/pregular.html
>
> ?

I don't know. What would one of them be?

Graham

🔗Graham Breed <gbreed@gmail.com>

8/3/2010 12:40:44 AM

On 3 August 2010 06:01, genewardsmith <genewardsmith@sbcglobal.net> wrote:

> Take <24 38 56|. What 5-limit interval is 11 steps a tempering of?

Nothing. I thought you knew that. Did you forget?

Graham

🔗Graham Breed <gbreed@gmail.com>

8/3/2010 1:03:19 AM

On 3 August 2010 05:58, genewardsmith <genewardsmith@sbcglobal.net> wrote:
>
>
> --- In tuning-math@yahoogroups.com, Graham Breed <gbreed@...> wrote:
>
>> Vicentino
>>
>> mapping by steps:
>> [<7, 11, 16],
>>  <31, 49, 72]>
>>
>> reduced mapping:
>> [<1, 1, 0],
>>  <0, 2, 8]>
>
> The justification for the claim Vicentino invented this
> is? I suspect a keyboard arrangement has been
> promoted to a contorted temperament here. Did
> Vicentino use the 7-note mohajira MOS, or the
> diatonic scale? Where are the neutral thirds in his
> music? I'd be interested in the sources behind this;
> if Vicentino did anything like mohajira I'd like to
> know.

The justification is that he talked about it in his treatise, which
has since been translated into English. I don't think he used the 7
note mohajira. I can find 7 note diatonics, 8 note chromatics and 10
or 11 note enharmonics. More to the point, there are fifths "with a
mixture of the ... species from the three genera" in Book III Chapter
48 that imply the 24 note MOS.

Graham

🔗genewardsmith <genewardsmith@sbcglobal.net>

8/3/2010 1:35:31 PM

--- In tuning-math@yahoogroups.com, Graham Breed <gbreed@...> wrote:
>
> On 3 August 2010 06:01, genewardsmith <genewardsmith@...> wrote:
>
> > Take <24 38 56|. What 5-limit interval is 11 steps a tempering of?
>
> Nothing. I thought you knew that. Did you forget?

Did you forget that tempering tempers?

🔗genewardsmith <genewardsmith@sbcglobal.net>

8/3/2010 1:42:27 PM

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

> The justification is that he talked about it in his treatise, which
> has since been translated into English.

Do you have a url?

I don't think he used the 7
> note mohajira. I can find 7 note diatonics, 8 note chromatics and 10
> or 11 note enharmonics.

None of which helps prove the point.

More to the point, there are fifths "with a
> mixture of the ... species from the three genera" in Book III Chapter
> 48 that imply the 24 note MOS.

I think you need more than that to pin a 5-limit version of mohajira on him.
> Graham
>

🔗Graham Breed <gbreed@gmail.com>

8/3/2010 1:44:17 PM

On 3 August 2010 21:35, genewardsmith <genewardsmith@sbcglobal.net> wrote:

> Did you forget that tempering tempers?

No.

Graham

🔗Carl Lumma <carl@lumma.org>

8/3/2010 8:18:59 PM

At 12:34 AM 8/3/2010, you wrote:
>Content-Transfer-Encoding: 7bit
>
>On 3 August 2010 06:27, Carl Lumma <carl@lumma.org> wrote:
>
>> Graham: Can you add a name lookup box here:
>>
>> http://x31eq.com/temper/pregular.html
>>
>> ?
>
>I don't know. What would one of them be?
>

Semaphore

-Carl

🔗Graham Breed <gbreed@gmail.com>

8/4/2010 2:37:06 AM

On 3 August 2010 21:42, genewardsmith <genewardsmith@sbcglobal.net> wrote:
>
> --- In tuning-math@yahoogroups.com, Graham Breed <gbreed@...> wrote:
>
>> The justification is that he talked about it in his treatise, which
>> has since been translated into English.
>
> Do you have a url?

http://preview.tinyurl.com/33hk2q3

>  I don't think he used the 7
>> note mohajira.  I can find 7 note diatonics, 8 note chromatics and 10
>> or 11 note enharmonics.
>
> None of which helps prove the point.

I'm not trying to prove a point. I'm giving an accurate answer to
your question. I would ask you to be less confrontational, but that
could be interpreted as confrontational.

>  More to the point, there are fifths "with a
>> mixture of the ... species from the three genera" in Book III Chapter
>> 48 that imply the 24 note MOS.
>
> I think you need more than that to pin a 5-limit version of mohajira on him.

There's more.

Graham

🔗Graham Breed <gbreed@gmail.com>

8/4/2010 2:33:14 AM

On 4 August 2010 04:18, Carl Lumma <carl@lumma.org> wrote:
> At 12:34 AM 8/3/2010, you wrote:
>>Content-Transfer-Encoding: 7bit
>>
>>On 3 August 2010 06:27, Carl Lumma <carl@lumma.org> wrote:
>>
>>> Graham: Can you add a name lookup box here:
>>>
>>> http://x31eq.com/temper/pregular.html
>>>
>>> ?
>>
>>I don't know.  What would one of them be?
>>
>
> Semaphore

That makes no sense at all. Why are you tormenting me like this?

Graham

🔗Carl Lumma <carl@lumma.org>

8/4/2010 2:55:23 AM

>>>> Graham: Can you add a name lookup box here:
>>>>
>>>> http://x31eq.com/temper/pregular.html
>>>>
>>>> ?
>>>
>>>I don't know. What would one of them be?
>>>
>>
>> Semaphore
>
>That makes no sense at all. Why are you tormenting me like this?
>
>
> Graham

I am simply suggesting you let us search your database of
temperaments from your pregular search page!

-Carl

🔗Graham Breed <gbreed@gmail.com>

8/4/2010 2:59:12 AM

On 4 August 2010 10:55, Carl Lumma <carl@lumma.org> wrote:

> I am simply suggesting you let us search your database of
> temperaments from your pregular search page!

I already do. You'll have to go into more detail about what you want.

Graham

🔗Carl Lumma <carl@lumma.org>

8/4/2010 3:04:34 AM

At 02:59 AM 8/4/2010, you wrote:

>> I am simply suggesting you let us search your database of
>> temperaments from your pregular search page!
>
>I already do. You'll have to go into more detail about what you want.
>
>
> Graham

Oh! Where can I type in "semaphore"?

-Carl

🔗Graham Breed <gbreed@gmail.com>

8/4/2010 3:26:32 AM

On 4 August 2010 11:04, Carl Lumma <carl@lumma.org> wrote:
> At 02:59 AM 8/4/2010, you wrote:
>
>>> I am simply suggesting you let us search your database of
>>> temperaments from your pregular search page!
>>
>>I already do.  You'll have to go into more detail about what you want.
>
> Oh!  Where can I type in "semaphore"?

I could certainly give you a box where you type in "semaphore". The
CGI can then ignore it and give you the same results it would have
done anyway. I don't think I will do this, though.

I could also return only those results with a name of "semaphore" or
"Semaphore" or including one of these or a Soundex equivalent. But I
don't think I'll do that because it doesn't have much to do with
badness searches.

What I'm more likely to do is add a different page for doing name
lookups. Or even an alphabetical list of every name it has. I can't
give you a time frame for that though. It's not trivial because the
database isn't set up for reverse lookups. I can do it for
consecutive prime limits, but anything that isn't defined on a
consecutive prime limit comes out wrong.

The database itself is a Python file in the source code bundle
containing a dictionary. The code for generating that file is on the
laptop I left in Oman, and I'll be able to access that when I get back
in September, or I retrieve the backup, whichever I do first.

Graham

🔗Carl Lumma <carl@lumma.org>

8/4/2010 4:16:19 AM

At 03:26 AM 8/4/2010, you wrote:

>What I'm more likely to do is add a different page for doing name
>lookups. Or even an alphabetical list of every name it has. I can't
>give you a time frame for that though.

Splendid.

-Carl

🔗Graham Breed <gbreed@gmail.com>

8/6/2010 11:23:01 AM

On 3 August 2010 06:07, genewardsmith <genewardsmith@sbcglobal.net> wrote:

>http://xenharmonic.wikispaces.com/RMS+temperament+measures
>
> where I call it "wedgie complexity". But I need to add a link to primerr to that article.

It's nice that you've found an alternative norm that gives equivalent
results. But you've broken the formula for the TOP-RMS error as
||W^J||/||W||||J||.

Graham