back to list

Online temperament finder update

🔗Graham Breed <gbreed@gmail.com>

4/28/2011 7:24:58 AM

My head's swimming in a sea of code now. What I did was
try and fix the but Mike found with certain temperaments.
That was caused by information being lost between the page
that found the temperaments and the one that displayed
them. In cases where more than one equal temperament with
a given number of steps to the octave was consistent with
the mapping, it could be chosen wrongly so that the set of
equal temperaments were linearly dependent. That's fixed
now, and old links should work. The starting page is here:

http://x31eq.com/temper/

What I then did was overhaul the way links are written so
that they use my twist on Herman's equal temperament
names. This has the advantage that the mapping matrix is
uniquely specified in a short space. But for that to work,
I had to improve the names so that they worked for
third-best approximations to primes, and so on.

The way to calculate the name is:

1) For each interval, calculate the absolute error relative
to step size (relative error).

2) Round this error down, multiply by 2, and call it f.

3) If the fractional part is greater than half, add 1 to f.

4) Add f times the corresponding letter to the name.

The point about comparing to half is that if it's the
best approximation, the relative error will be less than a
half. If the relative error rounds down to zero, but is
more than a half, it must be the second best approximation,
and so it gets a single wart.

To convert from a name to mapping, what you do is:

1) For each prime, take the nearest approximation (giving
the patent val).

2) If the approximation is flat of JI, set s=1. Otherwise,
set s=-1.

3) Count the number of relevant letters in the name, and
call it f.

4) If f is odd, add s*(f+1)/2 to the mapping of this prime.

5) If f is even, subtract s*f/2 from the mapping of this
prime.

After I got that working, I discovered that the octave
sizes were supposed to be relative to the 2:1, not the
first prime interval. I thought it was the latter, and
that explains some other reports that I didn't understand
at the time. So I changed it to always use 2:1. That is
correct (it means the names are consistent over subgroups)
but it's harder to get right. It almost is now.

The big problem is that sometimes you'll define a mapping
based on a given number of steps to the octave, list it
without the octaves first, and the octave mapping ends up
not being the nearest approximation. So, say you choose
13z where z is an unlikely wart that doesn't make this look
like a real example. The equivalence interval is
something else, and 13z has 17 steps to this interval. The
patent val for 17 steps to the equivalence interval has 14
steps to the octave. The name then becomes 14axy to show
that it's being defined according to 14 steps to the octave
but the octave doesn't take its optimal value, and because
the coordinates have shifted, other primes don't take their
ideal values. And that's a problem because the algorithms
I outlined above aren't reversible when the error is
exactly half a scale step.

The solution is to make sure octaves, when present, are
always identified correctly. The first way to do that is
calculate approximations according to the optimal scale
stretch rather than the equivalence interval. But even
that can go wrong, so I added a check to see if there's
something close to an octave in the subgroup, and if there
is use it.

At this point I'm not sure if I covered all cases or not.
But it's working pretty well, so if you find anything that
does break you can tell me.

A side effect of this is that the naming of non-prime
harmonics (or non-prime prime intervals :-S) has changed,
so any old links will have to be updated. I also note that
I haven't defined the naming scheme anywhere, and am not
linking to a definition that exists somewhere else.

Along the way, I found other bugs that had always been
there, and fixed them. I'm hoping that these outnumber
whatever bugs I introduced by changing the links, so the
site as a whole has fewer bugs than ever before.

I've updated it with the Magic names I proposed as well.
The lesser rank 3 temperaments look completely useless set
against the background of the rank 3 universe, but I kept
them in anyway. If anybody's decided on names I don't have
for something, either tell me, or (preferably) list them
on a page I can scrape.

As I mentioned in another message, I have my own list of
names now:

http://x31eq.com/catalog2.html

I produced it by generating a load of temperaments, and
checking the mappings to see if they were in the
database. Along the way I found some examples that could
have originated in different subgroups. That's because I
only index by the mapping matrix and not the primes.
Here's my disambiguation lookup, including the comments to
say that what I think is the correct subgroup is not
actually the best:

"Semaphore":(2,3,5),
"Supersharp":(2,3,5),
"Dominant":(2,3,7),
"Compton":(2,3,5),
"Blackwood":(2,3,5),
"Catler":(2,3,5,7), # ? simpler in 2.3.5.11
"Penta":(2,3,5,7), # ? better in 2.3.5.11
"Jamesbond":(2,3,5,7), # also simpler 2.3.5.11
"Father":(2,3,5),
"Meantone":(2,3,5),
"Mavila":(2,3,5),
"Dicot":(2,3,5),
'Bug':(2,3,5),
'Vicentino':(2,3,5),
'Injera':(2,3,5),
# Rank 3
'Supermagic':(2,3,5,7),
'Starling':(2,3,5,7),
'breed':(2,3,5,7),
'Ennealimmic':(2,3,5,7,11), #? better 2.3.5.7.13
'Erato':(2,3,5,7,11), #? better 2.3.5.7.13
'Supernatural':(2,3,5,7,11), # better 2.3.5.7.13
'Hemifamity':(2,3,5,7),
'Octagari':(2,3,5,7),

Along with these, there are mappings in the database that I
couldn't reconcile with notable temperaments. I mentioned
them in another message.

Finally, let's hear it for Atomic. After much head
scratching, I tracked it down as being the 5-limit
12p&12bccccccccccccc. I don't know how it got to be like
that.

Graham

🔗Herman Miller <hmiller@IO.COM>

4/28/2011 6:33:36 PM

On 4/28/2011 10:24 AM, Graham Breed wrote:

> Finally, let's hear it for Atomic. After much head
> scratching, I tracked it down as being the 5-limit
> 12p&12bccccccccccccc. I don't know how it got to be like
> that.

I have atomic as 12&576.

🔗Mike Battaglia <battaglia01@gmail.com>

4/28/2011 7:25:36 PM

On Thu, Apr 28, 2011 at 10:24 AM, Graham Breed <gbreed@gmail.com> wrote:
>
> My head's swimming in a sea of code now. What I did was
> try and fix the but Mike found with certain temperaments.
> That was caused by information being lost between the page
> that found the temperaments and the one that displayed
> them. In cases where more than one equal temperament with
> a given number of steps to the octave was consistent with
> the mapping, it could be chosen wrongly so that the set of
> equal temperaments were linearly dependent. That's fixed
> now, and old links should work. The starting page is here:

Thanks for working this out. I had noted a bug before with the POTE
generator in which sometimes the two scala files you produce for "pure
octaves" turn out to yield different results, but I see it's fixed.

As a side note, is there any way to work out the POTE generator for a
temperament without just clicking on the Scala file and hunting around
for generators? For rank 2 temperaments this is usually easy, but gets
harder if the ETs involved are large and/or you're higher than rank 2.
For example

http://x31eq.com/cgi-bin/rt.cgi?ets=32+27+46&limit=2.3.7.13%2F5

I'm pretty sure this is the rank 3 91/90 temperament, which I'm trying
to explore as a higher limit subgroup alternative to the 5-limit JI
lattice. I wanted to figure out what the canonical tuning for this
temperament should be, so POTE optimizing seemed like a way to go. I
have yet to program my own POTE algorithm (although I think I
understand it now) so I decided to click on the 46-note POTE scala
file and hunt around for generators... Yikes.

> Finally, let's hear it for Atomic. After much head
> scratching, I tracked it down as being the 5-limit
> 12p&12bccccccccccccc. I don't know how it got to be like
> that.

That's quite an accomplishment. So c is 7/1? What, exactly, is the
18th best approximation to 7/1 in 12-equal?

-Mike

🔗Mike Battaglia <battaglia01@gmail.com>

4/28/2011 8:22:53 PM

On Thu, Apr 28, 2011 at 10:24 AM, Graham Breed <gbreed@gmail.com> wrote:
>
> A side effect of this is that the naming of non-prime
> harmonics (or non-prime prime intervals :-S) has changed,
> so any old links will have to be updated. I also note that
> I haven't defined the naming scheme anywhere, and am not
> linking to a definition that exists somewhere else.

So a new bug - subgroups seem to be broken and spit out vals with torsion.

http://x31eq.com/cgi-bin/rt.cgi?ets=7+12&limit=2.5.7

The generator is 4/3, but there's no 4/3. And also

http://x31eq.com/cgi-bin/rt.cgi?ets=7+12&limit=2.5.9

I haven't seen evidence of this jumping to full-prime limits yet so
far, just subgroups.

-Mike

🔗Graham Breed <gbreed@gmail.com>

4/28/2011 9:27:27 PM

Mike Battaglia <battaglia01@gmail.com> wrote:

> So a new bug - subgroups seem to be broken and spit out
> vals with torsion.
>
> http://x31eq.com/cgi-bin/rt.cgi?ets=7+12&limit=2.5.7
>
> The generator is 4/3, but there's no 4/3. And also
>
> http://x31eq.com/cgi-bin/rt.cgi?ets=7+12&limit=2.5.9

Those are correct. They're what you asked for. The
mappings may change in different subgroups but there
shouldn't be violent changes in generator size.

> I haven't seen evidence of this jumping to full-prime
> limits yet so far, just subgroups.

It is possible to get contorsion in consecutive prime
limits.

http://x31eq.com/cgi-bin/rt.cgi?ets=7+31&limit=5

Graham

🔗Mike Battaglia <battaglia01@gmail.com>

4/28/2011 9:33:40 PM

On Fri, Apr 29, 2011 at 12:27 AM, Graham Breed <gbreed@gmail.com> wrote:
>
> Those are correct. They're what you asked for. The
> mappings may change in different subgroups but there
> shouldn't be violent changes in generator size.

So certain combinations of equal temperament val themselves define a
torsion block?

> > I haven't seen evidence of this jumping to full-prime
> > limits yet so far, just subgroups.
>
> It is possible to get contorsion in consecutive prime
> limits.
>
> http://x31eq.com/cgi-bin/rt.cgi?ets=7+31&limit=5

Would this be an example of torsion or contortion? I actually took the
time to calculate the GCF of the minors of the val matrix, and since
the GCF wasn't 1, I assumed that meant torsion. Is it actually
contortion?

-Mike

🔗Graham Breed <gbreed@gmail.com>

4/28/2011 9:45:39 PM

Mike Battaglia <battaglia01@gmail.com> wrote:

> Thanks for working this out. I had noted a bug before
> with the POTE generator in which sometimes the two scala
> files you produce for "pure octaves" turn out to yield
> different results, but I see it's fixed.

That's likely still broken somewhere because Scala files
are still using the old link format.

> As a side note, is there any way to work out the POTE
> generator for a temperament without just clicking on the
> Scala file and hunting around for generators? For rank 2
> temperaments this is usually easy, but gets harder if the
> ETs involved are large and/or you're higher than rank 2.
> For example
>
> http://x31eq.com/cgi-bin/rt.cgi?ets=32+27+46&limit=2.3.7.13%2F5
>
> I'm pretty sure this is the rank 3 91/90 temperament,
> which I'm trying to explore as a higher limit subgroup
> alternative to the 5-limit JI lattice. I wanted to figure
> out what the canonical tuning for this temperament should
> be, so POTE optimizing seemed like a way to go. I have
> yet to program my own POTE algorithm (although I think I
> understand it now) so I decided to click on the 46-note
> POTE scala file and hunt around for generators... Yikes.

You look at the tuning map. The octave's 1200.918 cents
and you want 1200.000. So multiply by
1200/1200.918=0.9992356. That gives a 3:1 generator of
1906.569*0.9992356=1905.112 cents and a 7:1 generator of
3361.588*0.9992356=3359.018.

For 27&32&46, the Scala file's giving 4:3 instead of 3:2.
2400-1905.112=494.889. There's an interval of 494.888
cents in the file, which is correct to within the rounding
error. 8:7 is 3600-3359.018=240.982 cents. I don't see
that or 959.018 in the file so I don't know what the Fokker
block's doing.

Graham

🔗Graham Breed <gbreed@gmail.com>

4/29/2011 5:25:14 AM

Mike Battaglia <battaglia01@gmail.com> wrote:

> So certain combinations of equal temperament val
> themselves define a torsion block?

If you allow them to. Sometimes, yes, it naturally happens
that only half (or even a third) of the intervals
correspond to approximations of ratios. You could remove
the torsion but I don't. The complexity is calculated so
that contorsion brings a big penalty but if something
contorted gets into the lists, so be it.

> > http://x31eq.com/cgi-bin/rt.cgi?ets=7+31&limit=5
>
> Would this be an example of torsion or contortion? I
> actually took the time to calculate the GCF of the minors
> of the val matrix, and since the GCF wasn't 1, I assumed
> that meant torsion. Is it actually contortion?

It's contorsion because it manifests itself in a regular
temperament, not a periodicity block. I don't know if that
means it isn't torsion as well.

Graham

🔗genewardsmith <genewardsmith@sbcglobal.net>

4/30/2011 11:01:24 AM

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

> http://x31eq.com/catalog2.html

Great list, but all the names are upper case except for "breed".