back to list

Commas from two 7-limit temperaments

🔗Paul G Hjelmstad <paul_hjelmstad@allianzlife.com>

10/24/2005 6:47:47 AM

I've reloaded Python, and I am studying commas obtained from two 7-
limit temperaments.

For 12 and 22 I obtain 50/49 and 64/63 (both 7-limit). I was kind of
expecting the first one to be in the 5-limit. Graham, if you're out
there, how are these calculated? I take it this is not based on the
kernel of 12&22. Are these TM-reduced? Of course, I could try to find
the answer in the Python code....

Thanks

Paul Hj

🔗Gene Ward Smith <gwsmith@svpal.org>

10/24/2005 4:05:02 PM

--- In tuning-math@yahoogroups.com, "Paul G Hjelmstad"
<paul_hjelmstad@a...> wrote:

> For 12 and 22 I obtain 50/49 and 64/63 (both 7-limit). I was kind of
> expecting the first one to be in the 5-limit.

The first one would be 5-limit for the Hermite comma sequence, but not
in general. For pajara, that would be [2048/2025, 64/63]. The sequence
you got is the TM reduced one.

🔗Graham Breed <gbreed@gmail.com>

10/25/2005 2:50:26 AM

Paul G Hjelmstad wrote:
> I've reloaded Python, and I am studying commas obtained from two 7-
> limit temperaments.

Good oh!

> For 12 and 22 I obtain 50/49 and 64/63 (both 7-limit). I was kind of > expecting the first one to be in the 5-limit. Graham, if you're out > there, how are these calculated? I take it this is not based on the > kernel of 12&22. Are these TM-reduced? Of course, I could try to find > the answer in the Python code....

No, there's no constraint for one of them to be 5-limit. Perhaps you'll get one if you turn the TM-reduction off. Or you could do a 5-limit calculation for it.

You probably don't want to know where the original commas come from, because it's clearly wrong. If you can think of a way that might work, perhaps it will.

What do you mean by "based on the kernel"? It doesn't do anything clever with the wedgie.

Yes, they're TM-reduced. I use a dumb algorithm of adding and subtracting each pair of commas to see if the result is simpler, and repeating. I don't think that's where the problem is. I have an LLL function if it would help. The problem with both is that they can't remove torsion. It's part of the definition of a lattice that you have to preserve torsion. What we need is a way of producing an initial set of commas without torsion. I know it can be done, but not how.

Well, a dumb way would be to generate the nth-order tonality diamond, and try the small intervals. As comma calculation isn't going to be in tight, inner loops, I expect that would be quite efficient enough.

Graham

🔗Paul G Hjelmstad <paul_hjelmstad@allianzlife.com>

10/25/2005 6:46:05 AM

--- In tuning-math@yahoogroups.com, Graham Breed <gbreed@g...> wrote:
>
> Paul G Hjelmstad wrote:
> > I've reloaded Python, and I am studying commas obtained from two
7-
> > limit temperaments.
>
> Good oh!
>
> > For 12 and 22 I obtain 50/49 and 64/63 (both 7-limit). I was kind
of
> > expecting the first one to be in the 5-limit. Graham, if you're
out
> > there, how are these calculated? I take it this is not based on
the
> > kernel of 12&22. Are these TM-reduced? Of course, I could try to
find
> > the answer in the Python code....
>
> No, there's no constraint for one of them to be 5-limit. Perhaps
you'll
> get one if you turn the TM-reduction off. Or you could do a 5-
limit
> calculation for it.
>
> You probably don't want to know where the original commas come
from,
> because it's clearly wrong. If you can think of a way that might
work,
> perhaps it will.

Perhaps it will what..?

Commas look fine to me! What do you think is the matter?
>
> What do you mean by "based on the kernel"? It doesn't do anything
> clever with the wedgie.

You can use the kernel function without wedgies, I am not sure Gene
implements it or not WITH the wedgie...

Gene showed me how the kernel function can find commas in certain
situations (the kernel is what the matrix (of vals in this case)
annihilates...) I've been playing with the kernel function
(nullspace) in Octave with mixed results. (I can find a comma from 3
vals or a temperament from three commas, but not two commas from two
temperaments) I can also do the adjuntant (adjoint) thing but I can
do that in Excel anyway. The thing about Octave is that it
orthonormalizes the result so one has to work with that...

> Yes, they're TM-reduced. I use a dumb algorithm of adding and
> subtracting each pair of commas to see if the result is simpler,
and
> repeating. I don't think that's where the problem is. I have an
LLL
> function if it would help. The problem with both is that they
can't
> remove torsion. It's part of the definition of a lattice that you
have
> to preserve torsion. What we need is a way of producing an initial
set
> of commas without torsion. I know it can be done, but not how.
>
> Well, a dumb way would be to generate the nth-order tonality
diamond,
> and try the small intervals. As comma calculation isn't going to
be in
> tight, inner loops, I expect that would be quite efficient enough.
>

Interesting. Could you explain what it means to preserve torsion?
I should probably check the Tonalsoft Encyclopedia and review
torsion, I've never had a real strong grasp of it:)

Paul Hj

>

🔗Graham Breed <gbreed@gmail.com>

10/25/2005 10:11:15 AM

Paul G Hjelmstad wrote:

> Perhaps it will what..?

Work. Perhaps if you come up with your own algorithm, it'll work.

> Commas look fine to me! What do you think is the matter?

There are some cases when the commas come out absurdly complex. Mystery (temper.Temperament(29,58,temper.limit15)) is a good example. If you can get that to work you can probably do anything.

>>What do you mean by "based on the kernel"? It doesn't do anything >>clever with the wedgie.
> > You can use the kernel function without wedgies, I am not sure Gene > implements it or not WITH the wedgie...

I don't know what "the kernel function" is. If the kernel is the full set of unison vectors, then the result I get should be based on it.

> Gene showed me how the kernel function can find commas in certain > situations (the kernel is what the matrix (of vals in this case) > annihilates...) I've been playing with the kernel function > (nullspace) in Octave with mixed results. (I can find a comma from 3 > vals or a temperament from three commas, but not two commas from two > temperaments) I can also do the adjuntant (adjoint) thing but I can > do that in Excel anyway. The thing about Octave is that it > orthonormalizes the result so one has to work with that...

See if there are any Python libraries matching the Octave ones. Scientific Python and the wrapping of the GNU Scientific Library are good places to look.

If you want adjutants, Numeric (and it's newer equivalent) can do it, by multiplying the inverse by the determinant. I have some code that uses this, but you don't need it because it's all duplicated by wedge products. It isn't in temper.py because of the dependency on Numeric.

> Interesting. Could you explain what it means to preserve torsion?
> I should probably check the Tonalsoft Encyclopedia and review > torsion, I've never had a real strong grasp of it:)

Torsion is where all elements of the wedgie have a common factor. A normal lattice basis reduction preserves this because it only does adding and subtracting, no division.

Note that theres a .getEquivalences(order=n) method that gets you all sets of intervals from the nth order tonality diamond that approximate the same. I think this is more useful and meaningful than the minimal, reduced set of unison vectors. It should be easy to convert them to unison vectors as well. All you need is a way of choosing the right set.

Oh, I've also altered the temper.py on my website so that it chooses a slightly more sensible pair of primes by melody when generating linear temperaments from unison vectors. This is updated for the CGI applications as well.

Graham

🔗Paul G Hjelmstad <paul_hjelmstad@allianzlife.com>

10/25/2005 11:45:28 AM

--- In tuning-math@yahoogroups.com, Graham Breed <gbreed@g...> wrote:
>
> Paul G Hjelmstad wrote:
>
> > Perhaps it will what..?
>
> Work. Perhaps if you come up with your own algorithm, it'll work.
>
> > Commas look fine to me! What do you think is the matter?
>
> There are some cases when the commas come out absurdly complex.
Mystery
> (temper.Temperament(29,58,temper.limit15)) is a good example. If
you
> can get that to work you can probably do anything.
>
> >>What do you mean by "based on the kernel"? It doesn't do
anything
> >>clever with the wedgie.
> >
> > You can use the kernel function without wedgies, I am not sure
Gene
> > implements it or not WITH the wedgie...
>
> I don't know what "the kernel function" is. If the kernel is the
full
> set of unison vectors, then the result I get should be based on it.

Mv=0 or vM=0 according to Gene.
>
> > Gene showed me how the kernel function can find commas in certain
> > situations (the kernel is what the matrix (of vals in this case)
> > annihilates...) I've been playing with the kernel function
> > (nullspace) in Octave with mixed results. (I can find a comma
from 3
> > vals or a temperament from three commas, but not two commas from
two
> > temperaments) I can also do the adjuntant (adjoint) thing but I
can
> > do that in Excel anyway. The thing about Octave is that it
> > orthonormalizes the result so one has to work with that...
>
> See if there are any Python libraries matching the Octave ones.
> Scientific Python and the wrapping of the GNU Scientific Library
are
> good places to look.
>
> If you want adjutants, Numeric (and it's newer equivalent) can do
it, by
> multiplying the inverse by the determinant. I have some code that
uses
> this, but you don't need it because it's all duplicated by wedge
> products. It isn't in temper.py because of the dependency on
Numeric.
>
> > Interesting. Could you explain what it means to preserve torsion?
> > I should probably check the Tonalsoft Encyclopedia and review
> > torsion, I've never had a real strong grasp of it:)
>
> Torsion is where all elements of the wedgie have a common factor.
A
> normal lattice basis reduction preserves this because it only does
> adding and subtracting, no division.
>
> Note that theres a .getEquivalences(order=n) method that gets you
all
> sets of intervals from the nth order tonality diamond that
approximate
> the same. I think this is more useful and meaningful than the
minimal,
> reduced set of unison vectors. It should be easy to convert them
to
> unison vectors as well. All you need is a way of choosing the
right set.

I'll look at it.
>
> Oh, I've also altered the temper.py on my website so that it
chooses a
> slightly more sensible pair of primes by melody when generating
linear
> temperaments from unison vectors. This is updated for the CGI
> applications as well.

I'll look at it, thanks! (What's the CGI application)

>
> Graham
>

🔗Paul G Hjelmstad <paul_hjelmstad@allianzlife.com>

10/25/2005 12:29:07 PM

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

> Note that theres a .getEquivalences(order=n) method that gets you
all
> sets of intervals from the nth order tonality diamond that
approximate
> the same. I think this is more useful and meaningful than the
minimal,
> reduced set of unison vectors. It should be easy to convert them
to
> unison vectors as well. All you need is a way of choosing the
right set.

Could you give me the full syntax? I am getting SyntaxError

>
>
> Oh, I've also altered the temper.py on my website so that it
chooses a
> slightly more sensible pair of primes by melody when generating
linear
> temperaments from unison vectors. This is updated for the CGI
> applications as well.

Is that the celebrated "mapping by steps"?

Paul Hj
>

>
> Graham
>

🔗Paul Erlich <perlich@aya.yale.edu>

10/25/2005 12:45:59 PM

--- In tuning-math@yahoogroups.com, "Paul G Hjelmstad"
<paul_hjelmstad@a...> wrote:
>
> I've reloaded Python, and I am studying commas obtained from two 7-
> limit temperaments.
>
> For 12 and 22 I obtain 50/49 and 64/63 (both 7-limit). I was kind of
> expecting the first one to be in the 5-limit. Graham, if you're out
> there, how are these calculated? I take it this is not based on the
> kernel of 12&22.

Why not? It should be clear from Table 2 in my _Middle Path_ paper that
50:49 and 64:63 are the simplest vectors in the kernel of pajara (aka
12&22).

> Are these TM-reduced?

In this case, yes -- this is the simplest pair of ratios that can be
used to define (that is a basis for) the kernel of pajara.

🔗Paul G Hjelmstad <paul_hjelmstad@allianzlife.com>

10/25/2005 1:01:31 PM

--- In tuning-math@yahoogroups.com, "Paul Erlich" <perlich@a...>
wrote:
>
> --- In tuning-math@yahoogroups.com, "Paul G Hjelmstad"
> <paul_hjelmstad@a...> wrote:
> >
> > I've reloaded Python, and I am studying commas obtained from two
7-
> > limit temperaments.
> >
> > For 12 and 22 I obtain 50/49 and 64/63 (both 7-limit). I was kind
of
> > expecting the first one to be in the 5-limit. Graham, if you're
out
> > there, how are these calculated? I take it this is not based on
the
> > kernel of 12&22.
>
> Why not? It should be clear from Table 2 in my _Middle Path_ paper
that
> 50:49 and 64:63 are the simplest vectors in the kernel of pajara
(aka
> 12&22).

(I meant only in Graham's program - since he doesn't seem to use the
kernel function. Now I know you do!)
>
> > Are these TM-reduced?
>
> In this case, yes -- this is the simplest pair of ratios that can
be
> used to define (that is a basis for) the kernel of pajara.
>

Wow I would love to see the math you use to get this from the kernel
function. I haven't been successful with Octave, (getting two commas
from two temperaments).

🔗Paul Erlich <perlich@aya.yale.edu>

10/25/2005 1:09:50 PM

--- In tuning-math@yahoogroups.com, "Paul G Hjelmstad"
<paul_hjelmstad@a...> wrote:
>
> --- In tuning-math@yahoogroups.com, "Paul Erlich" <perlich@a...>
> wrote:
> >
> > --- In tuning-math@yahoogroups.com, "Paul G Hjelmstad"
> > <paul_hjelmstad@a...> wrote:
> > >
> > > I've reloaded Python, and I am studying commas obtained from
two
> 7-
> > > limit temperaments.
> > >
> > > For 12 and 22 I obtain 50/49 and 64/63 (both 7-limit). I was
kind
> of
> > > expecting the first one to be in the 5-limit. Graham, if you're
> out
> > > there, how are these calculated? I take it this is not based on
> the
> > > kernel of 12&22.
> >
> > Why not? It should be clear from Table 2 in my _Middle Path_
paper
> that
> > 50:49 and 64:63 are the simplest vectors in the kernel of pajara
> (aka
> > 12&22).
>
> (I meant only in Graham's program - since he doesn't seem to use
the
> kernel function. Now I know you do!)

The kernel is a very important concept in this theory as I envision
it. The kernel always forms a sublattice of the original (JI) lattice.

> > > Are these TM-reduced?
> >
> > In this case, yes -- this is the simplest pair of ratios that can
> be
> > used to define (that is a basis for) the kernel of pajara.
> >
>
> Wow I would love to see the math you use to get this from the kernel
> function.

No math -- just inspection (sorry).

🔗Gene Ward Smith <gwsmith@svpal.org>

10/25/2005 1:10:56 PM

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

What we need is a way of producing an initial set
> of commas without torsion. I know it can be done, but not how.

I do it by starting with the wedgie, getting the triprime commas from
it, and then Hermite reducing.

🔗Gene Ward Smith <gwsmith@svpal.org>

10/25/2005 1:10:38 PM

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

What we need is a way of producing an initial set
> of commas without torsion. I know it can be done, but not how.

I do it by starting with the wedgie, getting the triprime commas from
it, and then Hermite reducing.

🔗Gene Ward Smith <gwsmith@svpal.org>

10/25/2005 1:16:30 PM

--- In tuning-math@yahoogroups.com, "Paul G Hjelmstad"
<paul_hjelmstad@a...> wrote:

> Mv=0 or vM=0 according to Gene.

In other words, a nullspace function.

🔗Paul G Hjelmstad <paul_hjelmstad@allianzlife.com>

10/25/2005 3:09:37 PM

--- In tuning-math@yahoogroups.com, Graham Breed <gbreed@g...> wrote:
> Note that theres a .getEquivalences(order=n) method that gets you all
> sets of intervals from the nth order tonality diamond that
approximate
> the same. I think this is more useful and meaningful than the
minimal,
> reduced set of unison vectors. It should be easy to convert them to
> unison vectors as well. All you need is a way of choosing the right
set.

I figured out the syntax for this - scratch my other message.
what is the significance of order=2? Usually, the commas are grouped in
pairs but I see a triplet in 12,19,temper.limit7. What is accomplished
in each grouping? Do I extract the unison vectors from this?

Thanks

🔗Graham Breed <gbreed@gmail.com>

10/26/2005 3:27:27 AM

Me:
>>Note that theres a .getEquivalences(order=n) method that gets you all >>sets of intervals from the nth order tonality diamond that > approximate >>the same. I think this is more useful and meaningful than the > minimal, >>reduced set of unison vectors. It should be easy to convert them to >>unison vectors as well. All you need is a way of choosing the right
> set.

Paul H:
> I figured out the syntax for this - scratch my other message.
> what is the significance of order=2? Usually, the commas are grouped in > pairs but I see a triplet in 12,19,temper.limit7. What is accomplished > in each grouping? Do I extract the unison vectors from this?

The order=2 means that each interval is in the second-order odd-limit. That is, it's made up of up to two intervals within the odd-limit (or exactly two as the unison is included).

Each grouping shows intervals (in JI vector form) that approximate to be identical in the R2 temperament. If you take any two intervals from a group, and do an element-wise subtraction, then you get a unison vector for the temperament.

To answer some of your other questions:

Yes, "primesByMelody" is stringified as "mapping by steps".

CGI is the simplest interface for server-side web applications. I use it on my website with thin wrappers around the temperament library.

Graham

🔗Paul G Hjelmstad <paul_hjelmstad@allianzlife.com>

10/26/2005 6:41:29 AM

--- In tuning-math@yahoogroups.com, Graham Breed <gbreed@g...> wrote:
>
> Me:
> >>Note that theres a .getEquivalences(order=n) method that gets you
all
> >>sets of intervals from the nth order tonality diamond that
> > approximate
> >>the same. I think this is more useful and meaningful than the
> > minimal,
> >>reduced set of unison vectors. It should be easy to convert them
to
> >>unison vectors as well. All you need is a way of choosing the
right
> > set.
>
> Paul H:
> > I figured out the syntax for this - scratch my other message.
> > what is the significance of order=2? Usually, the commas are
grouped in
> > pairs but I see a triplet in 12,19,temper.limit7. What is
accomplished
> > in each grouping? Do I extract the unison vectors from this?
>
> The order=2 means that each interval is in the second-order odd-
limit.
> That is, it's made up of up to two intervals within the odd-limit
(or
> exactly two as the unison is included).

What about the ones with triplets? What are they?

> Each grouping shows intervals (in JI vector form) that approximate
to be
> identical in the R2 temperament. If you take any two intervals
from a
> group, and do an element-wise subtraction, then you get a unison
vector
> for the temperament.

Thanks!

>
> To answer some of your other questions:
>
> Yes, "primesByMelody" is stringified as "mapping by steps".

So what exactly is PrimesByMelody? I've never really understood the
mapping by steps I must confess.

> CGI is the simplest interface for server-side web applications. I
use
> it on my website with thin wrappers around the temperament library.
>
>
> Graham
>

🔗Paul G Hjelmstad <paul_hjelmstad@allianzlife.com>

10/26/2005 9:14:44 AM

--- In tuning-math@yahoogroups.com, Graham Breed <gbreed@g...> wrote:
>
> Graham:
> >>Note that theres a .getEquivalences(order=n) method that gets you
all
> >>sets of intervals from the nth order tonality diamond that
> > approximate
> >>the same. I think this is more useful and meaningful than the
> > minimal,
> >>reduced set of unison vectors. It should be easy to convert them
to
> >>unison vectors as well. All you need is a way of choosing the
right
> > set.
>
> Paul H:
> > I figured out the syntax for this - scratch my other message.
> > what is the significance of order=2? Usually, the commas are
grouped in
> > pairs but I see a triplet in 12,19,temper.limit7. What is
accomplished
> > in each grouping? Do I extract the unison vectors from this?
>

Graham:

> The order=2 means that each interval is in the second-order odd-
limit.
> That is, it's made up of up to two intervals within the odd-limit
(or
> exactly two as the unison is included).

Paul Hj:

Still not real clear. What would order=1, for example, in the 11-
limit mean? Oh, scratch my question about triplets...

🔗Graham Breed <gbreed@gmail.com>

10/26/2005 11:49:45 AM

Paul G Hjelmstad wrote:

> What about the ones with triplets? What are they?

I see you've scrapped this question now, but I've answered it anyway. In the 11-limit, order=1 should give the 11-limit. Try it with a simple temperament like 2&3 or something.

You mean three intervals to a list? It means there are three intervals that all approximate the same. For example, with 12-equal in the 9-limit you'll find 10:9, 9:8 and 8:7 all approximate to the whole tone, and so they'd be listed as a triplet if this worked for equal temperaments. It's easier than listing [9:8, 10:9], [10:9, 8:7] and [9:8, 8:7] separately.

> So what exactly is PrimesByMelody? I've never really understood the > mapping by steps I must confess.

If you create a linear temperament (as the library calls them) from two equal temperaments, it returns the original vals (as we now call them) of those ETs. If you construct the R2 temperament from unison vectors, and include the chromatic unison vector, they're the two vals you would add together to get the right number of notes for the periodicity block. The "steps" are scale steps in this MOS. If you construct the R2 temperament from commatic unison vectors only, they're arbitrary, depending on the chromatic unison vector that gets used internally.

You can also think of the scale steps as alternative generators to the period and octave-equivalent generator. In this sense, it's as valid a mapping as the standard one. It tells you everything you need to know about the temperament. You only need to calculate the period/generator mapping to evaluate the complexity.

Graham

🔗Paul G Hjelmstad <paul_hjelmstad@allianzlife.com>

10/26/2005 12:47:34 PM

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

> In the 11-limit, order=1 should give the 11-limit. Try it with a
simple
> temperament like 2&3 or something.

I'll try it. I can see that order=1 gives a smaller subset than
order=2. I will have to play with this, I still don't really see the
distinction. (between 1 and 2)

> > So what exactly is PrimesByMelody? I've never really understood
the
> > mapping by steps I must confess.
>
> If you create a linear temperament (as the library calls them) from
two
> equal temperaments, it returns the original vals (as we now call
them)
> of those ETs. If you construct the R2 temperament from unison
vectors,
> and include the chromatic unison vector, they're the two vals you
would
> add together to get the right number of notes for the periodicity
block.

So, for example, using 81/80 and 36/35, giving calculated vectors
of 64/63 and 36/35 you get:

[(1, 1), (1, 2), (0, 4), (4, 2)]

What would the chromatic unison vector be? I take it 1x+1y="2" and
1x+2y="3", 0x+4y="5" and 4x+2y="7". What are x and y? I put the
right sides in quotes because I am not sure what we are measuring,
the notes in the periodicity block? Would each prime have a different
periodicity block? Sorry I am so unclear...

> The "steps" are scale steps in this MOS. If you construct the R2
> temperament from commatic unison vectors only, they're arbitrary,
> depending on the chromatic unison vector that gets used internally.
>
> You can also think of the scale steps as alternative generators to
the
> period and octave-equivalent generator. In this sense, it's as
valid a
> mapping as the standard one. It tells you everything you need to
know
> about the temperament. You only need to calculate the
period/generator
> mapping to evaluate the complexity.

I am sure the rest of your explanation will fall in place, once I
figure out the mapping by steps...

🔗Gene Ward Smith <gwsmith@svpal.org>

10/26/2005 1:08:26 PM

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

> You can also think of the scale steps as alternative generators to the
> period and octave-equivalent generator. In this sense, it's as valid a
> mapping as the standard one.

This relationship is also why rank two temperaments come equipped with
scales having two sizes of scale steps. In the same way, rank three
(for example marvel temperment, Graham's 2401/2400 temperament, or
5-limit just intonation) has scales with as few as three sizes of
scale steps.

🔗Paul G Hjelmstad <paul_hjelmstad@allianzlife.com>

10/26/2005 3:05:57 PM

--- In tuning-math@yahoogroups.com, "Paul G Hjelmstad"
<paul_hjelmstad@a...> wrote:
>
> --- In tuning-math@yahoogroups.com, Graham Breed <gbreed@g...>
wrote:

> So, for example, using 81/80 and 36/35, giving calculated vectors
> of 64/63 and 36/35 you get:
>
> [(1, 1), (1, 2), (0, 4), (4, 2)]
>
> What would the chromatic unison vector be? I take it 1x+1y="2" and
> 1x+2y="3", 0x+4y="5" and 4x+2y="7". What are x and y? I put the
> right sides in quotes because I am not sure what we are measuring,
> the notes in the periodicity block? Would each prime have a
different
> periodicity block? Sorry I am so unclear...

(You don't have to answer the above, please see the following)

Well, I can see the 1/2 expression relates to the mapping by steps
for octaves, (as long as the period is also an octave), also, using
4/3 and 3/2 works for chromatic unison vectors in this case. It seems
that I can get this to work with a little bit of rigging. But what
does 4/3 and 3/2 have to do with 64/63 and 36/35? Oh, I just found a
formula that works! Okay.. so it's tied into a chromatic unison
vector =~ the generator. Thanks. Hopefully my brain will work better
tomorrow.

Paul Hjelmstad
(The H is silent like he should be more often)

🔗Paul Erlich <perlich@aya.yale.edu>

10/26/2005 5:03:25 PM

--- In tuning-math@yahoogroups.com, "Paul G Hjelmstad"
<paul_hjelmstad@a...> wrote:
>
> --- In tuning-math@yahoogroups.com, "Paul G Hjelmstad"
> <paul_hjelmstad@a...> wrote:
> >
> > --- In tuning-math@yahoogroups.com, Graham Breed <gbreed@g...>
> wrote:
>
> > So, for example, using 81/80 and 36/35, giving calculated vectors
> > of 64/63 and 36/35 you get:
> >
> > [(1, 1), (1, 2), (0, 4), (4, 2)]
> >
> > What would the chromatic unison vector be? I take it 1x+1y="2" and
> > 1x+2y="3", 0x+4y="5" and 4x+2y="7". What are x and y? I put the
> > right sides in quotes because I am not sure what we are measuring,
> > the notes in the periodicity block? Would each prime have a
> different
> > periodicity block? Sorry I am so unclear...
>
> (You don't have to answer the above, please see the following)
>
> Well, I can see the 1/2 expression relates to the mapping by steps
> for octaves, (as long as the period is also an octave), also, using
> 4/3 and 3/2 works for chromatic unison vectors in this case. It
seems
> that I can get this to work with a little bit of rigging. But what
> does 4/3 and 3/2 have to do with 64/63 and 36/35? Oh, I just found
a
> formula that works! Okay.. so it's tied into a chromatic unison
> vector =~ the generator. Thanks. Hopefully my brain will work
better
> tomorrow.
>
> Paul Hjelmstad
> (The H is silent like he should be more often)

The chromatic unison vector should be a rather small interval, since
it's supposed to represent things like the difference between C and
C# in a diatonic context. A "unison" is the interval between two
notes with the same letter name.

🔗Graham Breed <gbreed@gmail.com>

10/27/2005 5:02:17 AM

Paul G Hjelmstad wrote:

> Well, I can see the 1/2 expression relates to the mapping by steps > for octaves, (as long as the period is also an octave), also, using
> 4/3 and 3/2 works for chromatic unison vectors in this case. It seems > that I can get this to work with a little bit of rigging. But what
> does 4/3 and 3/2 have to do with 64/63 and 36/35? Oh, I just found a > formula that works! Okay.. so it's tied into a chromatic unison > vector =~ the generator. Thanks. Hopefully my brain will work better > tomorrow.

You know how to set the chromatic unison vector then? For the best results it should be a small interval, but not as small as the commas. This gives more sensible results for your example:

temper.temperOut(map(temper.WedgableRatio, [(81,80),(36,35)]), chroma=temper.WedgableRatio(225,224))

My last revision used the smallest interval from the simplest odd-limit for the chromatic UV. I think that's generally too big, and the second-order diamond gives better results. If I remember, I'll upload it when I send this.

Oh, another thing, you can use this incantation to see the bottom half of a second-order tonality diamond:

print ' '.join(['%i:%i' % temper.getRatio(vector) for vector in
temper.uniqueWithinTritone(
temper.limit7.secondOrder())])

I forget how to do the third-order.

Graham

🔗Paul G Hjelmstad <paul_hjelmstad@allianzlife.com>

10/27/2005 6:48:56 AM

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

> You know how to set the chromatic unison vector then? For the best
> results it should be a small interval, but not as small as the
commas.
> This gives more sensible results for your example:
>
> temper.temperOut(map(temper.WedgableRatio, [(81,80),(36,35)]),
> chroma=temper.WedgableRatio(225,224))

Why is the chromatic unison vector smaller then the commas here?

> My last revision used the smallest interval from the simplest odd-
limit
> for the chromatic UV. I think that's generally too big, and the
> second-order diamond gives better results. If I remember, I'll
upload
> it when I send this.

Could you give an example? Either from your last revision, or the
second-order diamond...

>
> Oh, another thing, you can use this incantation to see the bottom
half
> of a second-order tonality diamond:
>
> print ' '.join(['%i:%i' % temper.getRatio(vector) for vector in
> temper.uniqueWithinTritone(
> temper.limit7.secondOrder())])
>
> I forget how to do the third-order.

So I choose the smallest interval from here for the chromatic unison
vector? When you say smallest to you mean smallest ratio?

>
> >

🔗Paul G Hjelmstad <paul_hjelmstad@allianzlife.com>

10/27/2005 2:00:01 PM

--- In tuning-math@yahoogroups.com, "Paul G Hjelmstad"
<paul_hjelmstad@a...> wrote:
>
> --- In tuning-math@yahoogroups.com, Graham Breed <gbreed@g...>
wrote:
>
> > You know how to set the chromatic unison vector then? For the
best
> > results it should be a small interval, but not as small as the
> commas.
> > This gives more sensible results for your example:
> >
> > temper.temperOut(map(temper.WedgableRatio, [(81,80),(36,35)]),
> > chroma=temper.WedgableRatio(225,224))
>
> Why is the chromatic unison vector smaller then the commas here?
>
> > My last revision used the smallest interval from the simplest odd-
> limit
> > for the chromatic UV. I think that's generally too big, and the
> > second-order diamond gives better results. If I remember, I'll
> upload
> > it when I send this.
>
> Could you give an example? Either from your last revision, or the
> second-order diamond...
>
> >
> > Oh, another thing, you can use this incantation to see the bottom
> half
> > of a second-order tonality diamond:
> >
> > print ' '.join(['%i:%i' % temper.getRatio(vector) for vector in
> > temper.uniqueWithinTritone(
> > temper.limit7.secondOrder())])
> >
> > I forget how to do the third-order.
>
> So I choose the smallest interval from here for the chromatic
unison
> vector? When you say smallest to you mean smallest ratio?
>

I finally am making sense of mapping by steps. (Remembering material
from your web page). Still, I don't really see the direct
relationship with the chromatic unison vector. Your example helped
shed light on a mapping by steps that uses step sizes of 1 and 2:
(7*2 + 5*1), etc... gives 19,30,44,54, so I have a baseline to work
from. Neat.

Thanks

paul hj

🔗Graham Breed <gbreed@gmail.com>

10/27/2005 1:51:38 PM

Paul G Hjelmstad wrote:

> Why is the chromatic unison vector smaller then the commas here?

Because that happens to give a good result. It's strange conceptually to have an interval you aren't tempering out smaller than one you are. But meantone is so simple that you need extreme measures to get a lot of notes out, I suppose.

>>My last revision used the smallest interval from the simplest odd-
> limit >>for the chromatic UV. I think that's generally too big, and the >>second-order diamond gives better results. If I remember, I'll > upload >>it when I send this.
> > Could you give an example? Either from your last revision, or the > second-order diamond...

Well, if you get the latest temper.py it will just work.

>>> temper.temperOut(map(temper.WedgableRatio, [(225,224),(2401,2400),(243,242)]))

3/31, 116.7 cent generator

basis:
(1.0, 0.097262995081839498)

mapping by period and generator:
[(1, 0), (1, 6), (3, -7), (3, -2), (2, 15)]

mapping by steps:
[(21, 10), (33, 16), (49, 23), (59, 28), (72, 35)]

highest interval width: 22
complexity measure: 22 (31 for smallest MOS)
highest error: 0.002769 (3.323 cents)
unique

> So I choose the smallest interval from here for the chromatic unison > vector? When you say smallest to you mean smallest ratio?

No, the smallest in terms of cents. At least, the smallest that isn't a unison. And keep trying until you get one that works.

Graham