back to list

Small temperament finder request

🔗Mike Battaglia <battaglia01@...>

10/20/2011 9:05:19 PM

I've had my eye on 91/90 for a while, because it turns 1/(6:7:9) into
10:13:15, and 10:13:15 is roughly equal in complexity to 10:12:15.

When I search in the temperament finder's 2.3.7.13/5 subgroup, I end
up getting different results for error and complexity than if I search
the 2.3.7.13/10 subgroup, and different than if I search the
2.3.7.208/5 subgroup. We talked about this before and I think you said
it was because it weights the interval something like
log(2)/log(13/10) instead of weighting it like
sqrt((log2(2)/log(13))^2 + (log2(2)/log(10))^2).

So I was wondering if it would be too much trouble to change that. I
guess it'll depend on whether or not Python has a primitive type for
rationals. If there's any way to do it though, I'd really appreciate
it, it would be very useful in sorting out biome temperament.

-Mike

🔗Graham Breed <gbreed@...>

10/22/2011 3:59:59 AM

Mike Battaglia <battaglia01@...> wrote:
> I've had my eye on 91/90 for a while, because it turns
> 1/(6:7:9) into 10:13:15, and 10:13:15 is roughly equal in
> complexity to 10:12:15.
>
> When I search in the temperament finder's 2.3.7.13/5
> subgroup, I end up getting different results for error
> and complexity than if I search the 2.3.7.13/10 subgroup,
> and different than if I search the 2.3.7.208/5 subgroup.
> We talked about this before and I think you said it was
> because it weights the interval something like
> log(2)/log(13/10) instead of weighting it like
> sqrt((log2(2)/log(13))^2 + (log2(2)/log(10))^2).
>
> So I was wondering if it would be too much trouble to
> change that. I guess it'll depend on whether or not
> Python has a primitive type for rationals. If there's any
> way to do it though, I'd really appreciate it, it would
> be very useful in sorting out biome temperament.

I don't think it'd be easy to change. Partly because you
haven't specified what you want to change it to.

Rationals have nothing to do with it. I can write
2.3.7.13/5 as a subgroup of 2.3.5.7.13 with the mapping

[<1, 0, 0, 0, 0],
<0, 1, 0, 0, 0],
<0, 0, 0, 1, 0],
<0, 0, -1, 0, 1]>

Then I could use that mapping to define an inner product.
The result would be the same as defining a temperament
class with this mapping as far as I can see. You can try
it if you like. It comes from tempering out 65:1. It
doesn't make much sense because that leads to a huge error,
but I don't know where else to go.

Custom weightings would complicate the interface. If you
want them, you can use Pari/GP.

Graham

🔗Mike Battaglia <battaglia01@...>

10/30/2011 3:40:48 PM

On Sat, Oct 22, 2011 at 6:59 AM, Graham Breed <gbreed@...> wrote:
>
> I don't think it'd be easy to change. Partly because you
> haven't specified what you want to change it to.

Sorry, I completely missed this response. You worked it out a while ago here

/tuning-math/message/19195

For 13/5, you said the correct weighting would be
sqrt((log(2)/log(5))^2 +(log(2)/log(13))^2). So, for any rational a/b,
I assume the correct weighting would instead be sqrt((log(2)/log(a))^2
+ (log(2)/log(b))^2).

I think that right now, it's treating it as sqrt((log(2)/log(a/b))^2,
or something like that, so subgroup entries like 13/10 or 7/6 end up
getting enormous weights.

To code sqrt((log(2)/log(a))^2 + (log(2)/log(b))^2) naively would run
into problems with something like 13/1, because you'd end up with a
log(2)/log(1) term, which is infinity. But, I assume if you're going
to handle 2.3.7.13/5 internally as a projection matrix down from
2.3.5.7.13, then there won't be a problem unless you try to create a
1-axis to project things onto.

> Then I could use that mapping to define an inner product.
> The result would be the same as defining a temperament
> class with this mapping as far as I can see. You can try
> it if you like. It comes from tempering out 65:1. It
> doesn't make much sense because that leads to a huge error,
> but I don't know where else to go.

The error would be huge for the 2.3.5.7.13 65/1 temperament because
you're going to calculate it relative to primes 5 and 13. If those
primes don't exist, then there won't be such a huge error for the
2.3.7.13/5 subgroup, no?

But if you're talking about auto-generating a temperament for
2.3.7.13/5 from 2.3.5.7.13, it seems like the problem would arise if
you kept using the mapping matrix for 2.3.5.7.13 - you'd have to
autogenerate the right mapping matrix as well. Perhaps you could
cleverly devise a matrix such that the huge error for 13, and the huge
error for 5, cancel out so as to yield the proper error for 13/5.

But perhaps even that's too complicated - what if you just did this:

1) Read the limit from the URL.
2) Turn each entry into a vector v(i), similarly to how you did above.
3) Weight each vector as RMS_i log(2)/log(i).

It seems like you're already doing something like the above, except
step #3 is replaced by weighting each vector as log(2)/log(entry). I
think what I suggested above is the same thing you suggested with
calculating the Gram matrix of the weighted mapping matrix and taking
the square root and so on.

-Mike

🔗Graham Breed <gbreed@...>

11/6/2011 6:05:24 AM

Mike Battaglia <battaglia01@...> wrote:

> But perhaps even that's too complicated - what if you
> just did this:
>
> 1) Read the limit from the URL.
> 2) Turn each entry into a vector v(i), similarly to how
> you did above. 3) Weight each vector as RMS_i
> log(2)/log(i).

Given that a bug came up in the ambiguity calculation, it
shows how much of the code assumes Tenney weighting and
will break if the errors are calculated wrongly. There is
some code for arbitrary weighting matrices but only for
searches. Moving the whole site over to it won't be
simple. You could work with the Python code, or develop
your own code with this in mind.

Graham

🔗clamengh <clamengh@...>

11/7/2011 6:52:01 AM

http://youtu. be/Pw3YHqd8nbA
Hi all,
I am pleased to propose you Pachelbel's Canon and Gigue, rendered in four different tunings:
01 - Just intonation, 2 layers of pythagorean fifths at a distance of a natural third, plus septimal C;
02 - 31 equal;
03 - Fokker's 31 just scale centered on D;
04 - Septimal meantone.
Natural C's at the end of the canon have been rendered as septimal notes in all examples; ambiguous notes arising in the Gigue in example 01 have been resolved by syntactic considerations.
Played at midi organ. Tuned with Scala. Implemented with Timidity++
Soundfont: English Chamber Organ (EngChamberOrgan. SF2).
Tempo: close to Jordi Savall's performance.
Best wishes!
Claudi