Recall that a val was defined to be an element in the dual group to a

note group; if in particular we take the p-limit note group N_p, with

elements we think of concretely as row vectors with integer

coordinate values, then vals are column vectors with integer values.

We make the following definitions: consider the note group N_p where

we take as usual the generating set to be the primes up to p, so that

2 is represented by [1, 0, ..., 0], 3 by [0,1, 0, ..., 0] and so

forth. If a val for notes in this basis has all of its coordinate

values positive, and if the coordinate values have no common

divisor, we will say the val is *valid*. Another way to express this

is to say v is valid if v(q) is positive for all primes q<=p and if

gcd({q_i})=1, where {q_i} is the set of primes up to p.

If {n_i} are a set of generators for the kernel of a valid val v (or

in other words, if they generate the dual group to the group

generated by v) then we call the set valid. We then have the

following:

(Theorem Paul) Let n={n_i} be a valid set of generators associated to

the val v in N_p, where p>3, and let m be n minus one generator. Let

B be a block of v(2) notes in an octave, defined by n and octave

equivalence. Let M be the group generated by m, and let u be a val

which together with v generates the dual M` to M. Then there exists a

nonnegative integer t such that if w is the val t*v + u we have a

v(2) out of w(2) MOS which tempers out M from everything in the block

B.

Proof: Since v is valid, there must be an odd prime q such that

gcd(v(2), v(q))=1. Hence v(q) generates the cyclic group Z/v(2)Z of

integers reduced modulo v(2). Consider the ratios v(q)/v(2) and

w(q)/w(2). As t approaches infinity, w(q)/w(2) approaches v(q)/v(2).

Let us pick a positive t large enough so that all the coordinate

values of w (ie its values w(q_i) on all the primes up to p) are

positive, and w(2) is larger than v(2). If such a t is large enough,

we also have

|v(q)/v(2) - w(q)/w(2)| < 1/v(2)^2,

and v(q)/v(2) is a semiconvergent to w(q)/w(2) and hence v(q) is a

generator for a v(2) out of w(2) MOS. Since w is in M`, all of the

elements of M (and hence in particular of m) are sent to 0 by w--ie,

they are tempered out. Therefore block B is tempered by w to the v(2)

out of w(2) MOS obtained above, QED.

This is quite a weak condition for vals which are intended to

represent ets, and hence a strong version of Theorem Paul, but

nothing more seems to be needed. In practice we could confine our

attentions to valid sets of generators arising from an h_n et for

some integer n.

I'll have to come back to this later, but I don't like the idea (in

the last line) of restricting our attention to MOSs that are within

some ET. Also, did you make use of the hyperparallelepiped

construction? If you don't, you don't necessarily get an MOS . . .

Now do you have a quick way of determining the generator of the

linear temperament, given n-1 commatic unison vectors?

--- In tuning-math@y..., "Paul Erlich" <paul@s...> wrote:

> I'll have to come back to this later, but I don't like the idea (in

> the last line) of restricting our attention to MOSs that are within

> some ET.

I made that assumption and some others simply to make the proof easy,

in the lazy way normal to mathematicians. There isn't any reason to

restrict yourself to these in general, but I thought the point was to

prove the theorem true. Of course, if what I have stated isn't what

what you wanted proven (and I've been having problems with that, as

you know) then the proof won't give you all you want.

Also, did you make use of the hyperparallelepiped

> construction?

You get a hyperparallepiped as the walls of the block defined by the

generators {n_i} together with 2.

--- In tuning-math@y..., genewardsmith@j... wrote:

> --- In tuning-math@y..., "Paul Erlich" <paul@s...> wrote:

>

> > I'll have to come back to this later, but I don't like the idea

(in

> > the last line) of restricting our attention to MOSs that are

within

> > some ET.

>

> I made that assumption and some others simply to make the proof

easy,

> in the lazy way normal to mathematicians. There isn't any reason to

> restrict yourself to these in general, but I thought the point was

to

> prove the theorem true. Of course, if what I have stated isn't what

> what you wanted proven (and I've been having problems with that, as

> you know) then the proof won't give you all you want.

I guess I'd ideally like my original proof to be used as an outline,

with conditions tightened up where needed. But I'll try to take a

close look at yours at a later point in time.

>

> Also, did you make use of the hyperparallelepiped

> > construction?

>

> You get a hyperparallepiped as the walls of the block defined by

the

> generators {n_i} together with 2.

So you did make use of this? I'll have to look more closely

later . . .

--- In tuning-math@y..., "Paul Erlich" <paul@s...> wrote:

> Now do you have a quick way of determining the generator of the

> linear temperament, given n-1 commatic unison vectors?

Let's see if this helps:

Recall that a notation for the note group N_p was a k-tuple of vals

[u_1, ..., u_k], where k = pi(p) is the number of primes up to p, and

where the kxk square matrix we get by writing the vals as column

vectors is unimodular, meaning it has determinant +-1. We may call

this the *val matrix* for the notation; corresponding to it is a

*basis matrix* which is the matrix inverse of the val matrix. The

rows of the basis matrix are the basis notes of the notation, and it

may also be written as a k-tuple of rational numbers

(q_1, ..., q_k) where if q_i = [e_1, e_2, ..., e_k] we also write it

multiplicitively as the rational number q_i= 2^e_1 * 3^e_2 ... p^e_k.

We then have for any prime r <= p

r = q_1^u_1(r) * q_2^u_2(r) * ... q_k^u_k(r),

so that anything which can be written as the product of the first k

primes can also be written as the product of q_1, ..., q_k; that is,

both are a basis for the note group N_p.

I just downloaded Graham's midiconv program, and he is doing this

sort of thing in his tun files. For instance, in 12from31.tun we find

the matrix

[-3 -1 2]

[ 7 0 -3]

[-4 4 -1]

which is a basis matrix (since it is unimodular.) Inverting it we get

the val matrix

[12 7 3]

[19 11 5]

[28 16 7],

which is the notation [h_12, h_7, h_3]. If you look at Graham's file

you will see he is using this notation.

Every note in N_5 can be expressed in terms of this notation as

q = (25/24)^h_12(q) * (128/125)^h_7(q) * (81/80)^h_3(q)

just as it can also be written

q = 2^v_2(q) * 3^v_3(q) * 5^v_5(q),

where v_2, v_3 and v_5 are the 2-adic, 3-adic and 5-adic valuations

of number theory.

Suppose now we want to temper out 81/80, so that we will write the

approximation to q, ~q, as

~q = a^h_12(q) * b^h_7(q).

Finding a basis for this temperament means the same as tuning the

above basis, which we may do in various ways, e.g., least squares. If

we like we may assume ~2 = 2, in which case we really need to specify

only one value, since the other than be found from

2 = a^h_12(2) * b^h_7(2) = a^12 * b^7.

To take another example, consider the basis matrix defined by the

5-tuple (176/175, 385/384, 8019/8000, 441/440, 540/539), which in

matrix form is

[ 4 0 -2 -1 1]

[-7 -1 1 1 1]

[-6 6 -3 0 1]

[-3 2 -1 2 -1]

[ 2 3 1 -2 -1].

The inverse of this matrix is

[72 58 -31 53 46]

[114 92 -49 84 73]

[167 135 -72 123 107]

[202 163 -87 149 129]

[249 201 -107 183 159],

which is the notation [h_72, h_58, -h_31, h_53, h_46]. If we remove

any one element from the basis 5-tuple, and take octave equivalence

in its place, we get a JI block whose number of notes is abs(h(2))

for the val corresponding to the basis element we removed. For

instance, by taking out 540/539, which is in the kernel of all the

vals but h_46, which has instead h_46(540/539)=1, we get a block of

46 notes. We may temper this in various ways by removing other

val/basis pairs, getting equal, linear etc. temperaments. Thus for

instance by tuning ~q = a^h_72(q) (for instance, in the usual way!)

we get the 46 block expressed in the 72-et. If we tune

~q = a^h_72(q) * b^h_53(q), we get a linear temperament, and so forth.

We also have for example that ker(h_72) is generated by all the basis

vectors except 176/175, where h_72(176/175)=1. Just as each val is

associated to the group it generates (of rank one) and hence to the

dual group, i.e. the kernel, of corank one (in this case, that would

be rank four), every basis note q_i generates a rank one group, whose

dual group null(q_i) is of corank one (in this case four again.)

While null(q_i) is of corank one and has an infinity of elements, if

we list only valid vals of the form u_n for integers n we get a

finite list, which is an interesting thing to consider for any

comma-like interval. For instance, 128/125 is associated in this way

to multiples of 3 through 42, excluding h_6 which is invalid. In the

same way, 25/24 is associated to 3,4,7,10,13 and 17; and 81/80 to

5,7,12,19,26,31,43,45,50,55,67,69,74,81,88,98,105 and 117. If we

place some limit based on a measure of goodness when we do this we of

course can get an even smaller list.

--- In tuning-math@y..., genewardsmith@j... wrote:

> If {n_i} are a set of generators for the kernel of a valid val v

(or

> in other words, if they generate the dual group to the group

> generated by v) then we call the set valid.

This needs to be changed to the following:

If n={n_i} are a set of generators for the kernel of a valid val v,

and if B is the block defined by n and octave equivalence, and if the

elements of B b_i are placed in ascending order by ascending values

of v(b_i), then we will call the set valid.

The reason why the new condition is essential is that we are creating

MOS by finding something close to the v(2)-et. That is a sort of

super-MOS, with only one step size and everything as smooth as

possible. However, if the steps are not in order it is not a super

MOS at all, and we don't *want* to get close to it!