back to list

A planar lattice for the 7-limit

🔗Gene Ward Smith <gwsmith@svpal.org>

4/8/2005 2:31:35 AM

Suppose we put a seminorm on the 7-limit pitch classes by setting

|| |* a b c> || = sqrt(16(a^2+ab+b^2)+16ac+20bc+7c^2)

This is a seminorm, since it sets ||2401/2400|| = 0. It is a norm,
however, on 2401/2400 reduced pitch classes--that is where we consider
anything differing by octaves and powers of 2401/2400 to be identical.
These 2401/2400 classes form a planar lattice, in which the
symmetrical lattice of five limit pitch classes is contained. The
major triad, once again, is an equilateral triangle, but it has a 7 on
the inside, closer to 5 and equidistant from 1 and 3. This could be
useful for various purposes; below I give a reduced detempering of
31-et, where the reduction reduces this norm. The result is
epimorphic, CS, strictly proper and all of that blah. It also makes
use of 2401/2400; it has nine otonal tetrads, plus three more using
2401/2400; and 8 and 4 for utonal tetrads. Other chords and intervals
show a 2401/2400 boost as well. Compared to the chord cube this still
falls a little short, but the chord cube is not nearly so regular.

! woz31.scl
2401/2400 norm reduced 31
31
!
49/48
21/20
15/14
49/45
28/25
8/7
7/6
6/5
49/40
5/4
9/7
64/49
4/3
48/35
7/5
10/7
35/24
3/2
49/32
14/9
8/5
49/30
5/3
12/7
7/4
25/14
90/49
28/15
40/21
49/25
2

🔗Carl Lumma <ekin@lumma.org>

4/8/2005 3:19:23 AM

>Suppose we put a seminorm on the 7-limit pitch classes by setting
>
>|| |* a b c> || = sqrt(16(a^2+ab+b^2)+16ac+20bc+7c^2)
>
>This is a seminorm, since it sets ||2401/2400|| = 0. It is a norm,
>however, on 2401/2400 reduced pitch classes--that is where we consider
>anything differing by octaves and powers of 2401/2400 to be identical.
>These 2401/2400 classes form a planar lattice, in which the
>symmetrical lattice of five limit pitch classes is contained. The
>major triad, once again, is an equilateral triangle, but it has a 7 on
>the inside, closer to 5 and equidistant from 1 and 3. This could be
>useful for various purposes; below I give a reduced detempering of
>31-et, where the reduction reduces this norm.

I feel like 'canonical detemperings' have come before, but I can't
remember particular attempts -- can you? Is it that the commas of
the TM-reduced basis can be used to create a canonical Fokker block?

Such a result in some sense reduces the Tenney-height norm, no?

In what sense is this || 2401/2400 || = 0 norm reduced with your
method?

-Carl

🔗Gene Ward Smith <gwsmith@svpal.org>

4/8/2005 10:47:08 AM

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

> I feel like 'canonical detemperings' have come before, but I can't
> remember particular attempts -- can you?

Sure; I've done it lots of times around here, using either Tenney
hight reduction, or reduction with respect to either the Tenney norm
or the symmetrical Euclidean norm.

Is it that the commas of
> the TM-reduced basis can be used to create a canonical Fokker block?

Any basis for the commas will give the same result. You can start from
a Fokker block, but after you've finished reducing it's not likely to
be one any more. It doesn't actually matter *where* you start from, so
a Fokker block is fine.

> Such a result in some sense reduces the Tenney-height norm, no?

If it's Tenney-norm reduction.

> In what sense is this || 2401/2400 || = 0 norm reduced with your
> method?

The smallest interval according to that norm is chosen, and to break
ties, Tenney height is used.

🔗Carl Lumma <ekin@lumma.org>

4/8/2005 11:59:46 AM

>> I feel like 'canonical detemperings' have come before, but I can't
>> remember particular attempts -- can you?
>
>Sure; I've done it lots of times around here, using either Tenney
>hight reduction, or reduction with respect to either the Tenney norm
>or the symmetrical Euclidean norm.

Glad I wasn't imagining it. But what's the difference between Tenney
height reduction and Tenney norm reduction?

>> Is it that the commas of
>> the TM-reduced basis can be used to create a canonical Fokker block?
>
>Any basis for the commas will give the same result. You can start from
>a Fokker block, but after you've finished reducing it's not likely to
>be one any more. It doesn't actually matter *where* you start from, so
>a Fokker block is fine.

Oh, you're enforcing some particular definition of Fokker block.
I just meant plain block -- is there any evidence Fokker enforced
epimorphicness, or whatever? -- I meant the scale you end up
with if you interpret the TM-reduced basis as delimiting a block.

>> In what sense is this || 2401/2400 || = 0 norm reduced with your
>> method?
>
>The smallest interval according to that norm is chosen, and to break
>ties, Tenney height is used.

Ok, so is this an iterative process, ie pick a note, add the closest
note to the original note according to the norm, and repeat until ...
you have enough notes, or?

-Carl

🔗Gene Ward Smith <gwsmith@svpal.org>

4/8/2005 12:28:20 PM

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

> Glad I wasn't imagining it. But what's the difference between Tenney
> height reduction and Tenney norm reduction?

There isn't any. Number theorists call things like the Tenney norm a
"height". Maybe I should quit saying that word.

> Oh, you're enforcing some particular definition of Fokker block.
> I just meant plain block -- is there any evidence Fokker enforced
> epimorphicness, or whatever? -- I meant the scale you end up
> with if you interpret the TM-reduced basis as delimiting a block.

I am not a Fokker expert, but if you reduce using commas of the same
val as defines your block (for which Paul had a word), then it remains
epimorphic.

> Ok, so is this an iterative process, ie pick a note, add the closest
> note to the original note according to the norm, and repeat until ...
> you have enough notes, or?

No, but we could try to figure out a good iterative process.

🔗Carl Lumma <ekin@lumma.org>

4/8/2005 12:45:50 PM

>> Ok, so is this an iterative process, ie pick a note, add the closest
>> note to the original note according to the norm, and repeat until ...
>> you have enough notes, or?
>
>No, but we could try to figure out a good iterative process.

So how do you currently do it?

-Carl

🔗Gene Ward Smith <gwsmith@svpal.org>

4/8/2005 2:17:58 PM

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

> So how do you currently do it?

If you simply get an epimorphic scale to start from by any method, and
then reduce it, you end up with the same result.

🔗Carl Lumma <ekin@lumma.org>

4/8/2005 2:23:22 PM

>> So how do you currently do it?
>
>If you simply get an epimorphic scale to start from by any method, and
>then reduce it, you end up with the same result.

So for each note in your starting epimorphic scale, you... ?

-Carl

🔗Gene Ward Smith <gwsmith@svpal.org>

4/8/2005 6:27:58 PM

--- In tuning-math@yahoogroups.com, Carl Lumma <ekin@l...> wrote:
> >> So how do you currently do it?
> >
> >If you simply get an epimorphic scale to start from by any method, and
> >then reduce it, you end up with the same result.
>
> So for each note in your starting epimorphic scale, you... ?

Reduce according to whatever norm you decide to minimize.

🔗Carl Lumma <ekin@lumma.org>

4/8/2005 7:02:51 PM

>> >> So how do you currently do it?
>> >
>> >If you simply get an epimorphic scale to start from by any method, and
>> >then reduce it, you end up with the same result.
>>
>> So for each note in your starting epimorphic scale, you... ?
>
>Reduce according to whatever norm you decide to minimize.

Yes yes, but how do you reduce?

-Carl

🔗Gene Ward Smith <gwsmith@svpal.org>

4/8/2005 11:47:32 PM

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

> Yes yes, but how do you reduce?

In this case brute force works fine; you simply iterate the process of
finding the minimum after multiplying by a product of powers of a
comma basis. A more theoretical proceedure would no doubt be possible.

🔗Carl Lumma <ekin@lumma.org>

4/9/2005 12:34:31 AM

>> Yes yes, but how do you reduce?
>
>In this case brute force works fine; you simply iterate the process of
>finding the minimum

Can you give pseudocode? It might be easier. Iterate over what -- the
whole lattice? The notes of the starting scale?

>after multiplying by a product of powers of a
>comma basis.

Multiplying what by that product?

-Carl

🔗Gene Ward Smith <gwsmith@svpal.org>

4/9/2005 8:53:24 AM

--- In tuning-math@yahoogroups.com, Carl Lumma <ekin@l...> wrote:
> >> Yes yes, but how do you reduce?
> >
> >In this case brute force works fine; you simply iterate the process of
> >finding the minimum
>
> Can you give pseudocode? It might be easier. Iterate over what -- the
> whole lattice? The notes of the starting scale?

Suppose you want to reduce using meantone, and "qf" is your distance
function, and "th" is Tenney height. Then

for i from -L to L
for j from -L to L
v := (81/80)^i * (126/125)^j * u;
if qf(v)<qf(u) then u:=v fi;
if qf(v)=qf(u) and th(v)<th(u) then u:=v fi;
od od:

reduces. Iterate until the result stops changing. This is a pretty
lowbrow algorithm, of course.

🔗Carl Lumma <ekin@lumma.org>

4/9/2005 4:05:38 PM

>> >> Yes yes, but how do you reduce?
>> >
>> >In this case brute force works fine; you simply iterate the process of
>> >finding the minimum
>>
>> Can you give pseudocode? It might be easier. Iterate over what -- the
>> whole lattice? The notes of the starting scale?
>
>Suppose you want to reduce using meantone, and "qf" is your distance
>function, and "th" is Tenney height. Then
>
>for i from -L to L
>for j from -L to L
>v := (81/80)^i * (126/125)^j * u;
>if qf(v)<qf(u) then u:=v fi;
>if qf(v)=qf(u) and th(v)<th(u) then u:=v fi;
>od od:
>
>reduces.

Great, thanks. Now, is L just some number that you pick to be
big enough?

And what's u -- a note from your starting scale?

>Iterate until the result stops changing.

Iterate over what? All u in the starting scale?

Was the last line meant to be "rof rof;"?

-Carl

🔗Carl Lumma <ekin@lumma.org>

4/11/2005 2:57:35 PM

>>Suppose you want to reduce using meantone, and "qf" is your distance
>>function, and "th" is Tenney height. Then
>>
>>for i from -L to L
>>for j from -L to L
>>v := (81/80)^i * (126/125)^j * u;
>>if qf(v)<qf(u) then u:=v fi;
>>if qf(v)=qf(u) and th(v)<th(u) then u:=v fi;
>>od od:
>>
>>reduces.
>
>Great, thanks. Now, is L just some number that you pick to be
>big enough?
>
>And what's u -- a note from your starting scale?
>
>>Iterate until the result stops changing.
>
>Iterate over what? All u in the starting scale?
>
>Was the last line meant to be "rof rof;"?
>
>-Carl

Heya Gene,

Hopefully you can find the time to answer these questions, which
you must know the answers to... we've come this far and I'm so
close to completely understanding this.

-Carl

🔗Gene Ward Smith <gwsmith@svpal.org>

4/11/2005 3:43:13 PM

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

> Hopefully you can find the time to answer these questions, which
> you must know the answers to... we've come this far and I'm so
> close to completely understanding this.

You've already figured it out by way of your guesses.

🔗Carl Lumma <ekin@lumma.org>

4/11/2005 5:03:28 PM

>> Hopefully you can find the time to answer these questions,
>> which you must know the answers to... we've come this far
>> and I'm so close to completely understanding this.
>
>You've already figured it out by way of your guesses.

I only make those guesses to make it easier for you to
respond -- you only have to type "yes". It always freaks me
out when people give code or equations without declaring
the variables (in this case, L and u).

Great, so I'll take what I've learned and write a Wiki entry
for reduction...

http://riters.com/microtonal/index.cgi/Reduction

In addition to checking that out, you might consider the
following question. You wrote...

>>Is it that the commas of the TM-reduced basis can be used to
>>create a canonical Fokker block?
>
>Any basis for the commas will give the same result.

Did you mean: Any basis for the same temperament will give the
same reduced scale if the norm you're reducing with is the same?

-Carl