About this archive This is an opt in archive. To add your posts click here and send e-mail: tuning_archive@rcwalker.freeserve.co.uk.
S 2

First Previous Next Last

4000 4050 4100 4150 4200 4250 4300 4350 4400 4450 4500 4550 4600 4650 4700 4750 4800 4850 4900 4950 5000 5050 5100 5150 5200 5250 5300 5350 5400 5450 5500 5550 5600 5650 5700 5750 5800 5850 5900 5950 6000 6050 6100 6150 6200 6250 6300 6350 6400 6450 6500 6550

5250 - 5275 -


top of page bottom of page down

Message: 5250

Date: Thu, 6 Dec 2001 19:03 +00

Subject: Wedge products

From: graham@xxxxxxxxxx.xx.xx

Okay, let's go right back to the beginning.  I already have a tutorial 
online for matrix algebra.  See 
<Matrix tutorial *>.  If you take the basic 
equivalence there, that

5x + 3y + z

is the same as

(5 3 1)(x)
       (y)
       (z)

you can similarly write any row vector (a b c) as

(a b c)(e1)
       (e2)
       (e3)

or

a*e1 + b*e2 + c*e3

where * is a normal multiplication and ei simply means the ith element of 
the basis.  You can then multiply two vectors (a b) and (c d) to get

(a*e1 + b*e2) * (c*e1 + d*e2)

which comes out as

a*c*e1*e1 + a*d*e1*e2 + b*c*e2*e1 + b*d*e2*e2

The music matrices I usually talk about have a basis H, where each entry 
is a number.  So a normal multiplication really does work

(a b)H * (c d)H

 = (a*log(2) + b*log(3)) * (c*log(2) + d*log(3))

 = a*c*log(2)*log(2) + a*d*log(2)*log(3)
   + b*c*log(3)*log(2) + b*d*log(3)*log(3)

 = a*c*log(2)**2 + (a*d + b*c)*log(2)*log(3) + b*d*log(3)**2

But in general you can't do that, because there isn't a rule for 
multiplying elements of a basis.  The wedge product is a specific rule 
for multipying bases.  NOW PAY ATTENTION!

ei^ej = - ej^ei

According to Gene, that's the full definition of a wedge product.  So, as 
long as you paid attention when I told you you can ignore the rest.  You 
know what a wedge product is.  It follows that

ei^ei = -ei^ei

ei^ei + ei^ei = 0

2*(ei^ei) = 0

ei^ei = 0


So the wedge product of (a b) and (c d) is

(a b)^(c d)
= (a*e1 + b*e2) ^ (c*e1 + d*e2)
= a*c*e1^e1 + a*d*e1^e2 + b*c*e2^e1 + b*d*e2^e2
= a*d*e1^e2 - b*c*e2^e1
= (a*d - b*c)

the same as the determinant

|a b|
|c d|


It gets more complicated in three dimensions

A^B
= (a1*e1 + a2*e2 + a3*e3)^(b1*e1 + b2*e2 + b3*e3)
= a1*b1*e1^e1 + a1*b2*e1^e2 + a1*b3*e1^e3
  + a2*b1*e2^e1 + a2*b2*e2^e2 + a2*b3*e2^e3
  + a3*b1*e3^e1 + a3*b2*e3^e2 + a3*b3*e3^e3

= a1*b2*e1^e2 + a1*b3*e1^e3
  - a2*b1*e1^e2 + a2*b3*e2^e3
  - a3*b1*e1^e3 - a3*b2*e2^e3

= (a1*b2 - a2*b1)*e1^e2 + (a1*b3 - a3*b1)*e1^e3
  + (a2*b3 - a3*b2)*e2^e3

which is the same as the determinant

|e2^e3 e3^e1 e1^e2|
|  a1   a2    a3  |
|  b1   b2    b3  |

That's analogous to the cross product of vectors, where AxB is

|x  y   z|
|a1 a2 a3|
|b1 b2 b3|

and, if A and B are octave-specific 5-limit unison vectors, it happens 
that AxB gives the number of steps to each prime consonance.  Or, if A and 
B are octave-equivalent 7-limit commatic unison vectors, AxB is the 
generator mapping.

I can't be bothered to work out the triple wedge product, but you'll find 
it's all in terms of e1^e2^e3.  So it's something like the determinant

|a1 a2 a3|
|b1 b2 b3|
|c1 c2 c3|

And the right number of wedge products in the right number of dimensions 
will always give a determinant.

As determinants and cross products are already useful in dealing with 
unison vectors, it shouldn't be such a surprise that wedge products in 
general are also useful.  I still don't know how they're useful, but Gene 
assures us that they are.

What is this "wedge invariant" he keeps using, and how do you go from it 
to get a list of unison vectors?


I'm not sure how to implement these things in Python.  I could implement 
vectors like dictionaries, so

A = {e1:a1, e2:a2, e3:a3}
B = {e1:b1, e2:b2, e3:b3}

then (A^B)[ei^ej] = A[ei]*B[ej] - A[ej]*B[ei]

so the next problem is what data type ei and ej should be.  Probably 
something like tuples:

A = {(1,):a1, (2,):a2, (3,):a3}
B = {(1,):b1, (2,):b2, (3,):b3}

that makes them look a bit like lists, so instead of A[1]=a1, we have 
A[1,]=a1.  Then, (A^B)[1, 2] = A[1,]*B[2,] + A[2,]*B[1,].

So this is making some sense, but I still haven't worked out all the 
details needed to write the code.


                    Graham


top of page bottom of page up down Message: 5252 Date: Thu, 06 Dec 2001 00:57:16 Subject: Re: The slippery six From: paulerlich --- In tuning-math@y..., "ideaofgod" <genewardsmith@j...> wrote: > --- In tuning-math@y..., "paulerlich" <paul@s...> wrote: > > > > (6) [-2,4,-30,-81,42,11] ets: 46,80 > > > > > > [ 0 2] > > > [-1 4] > > > [ 2 3] > > > [-15 18] > > > > > > a = 33.01588032 / 80 (~4/3); b = 1/2 > > > measure 26079 > > > > So this _isn't_ 46+34?? > > It is, but it won't show up as the *sum* of ets, only as the > difference. This is because the 34-et map in question is > h80 - h46, and that isn't h34 in the 7-limit, since h34(7)=95 and > (h80-h46)(7)=96. Maybe adding in a list of differences would be a > good idea. Hmm . . . you keep avoiding my whining about consistency (most recently with regard to 21), and this would seem to be a good place to bring it up again. You told Graham that something like 46+34 to you would be _defined_ so that the 80 would come out right, not necessarily the individual ETs. Now you seem to be contradicting yourself. What gives? > The consequence of being 46+34 of course is that this system is a > hell of a lot better in the 5-limit than it is in the 7-limit; the > 5-limit comma I get from the wedgie is 2048/2025--the diaschisma. > Graham devotes a web page to the diaschismic temperament as a 5- limit > temperament, where it makes a lot of sense. And you brought up 80 when we were discussing ways of extending diaschismic to 11-limit, if you recall . . . probably this same mapping through the 7-limit.
top of page bottom of page up down Message: 5255 Date: Thu, 06 Dec 2001 01:22:04 Subject: Re: The grooviest linear temperaments for 7-limit music From: dkeenanuqnetau --- In tuning-math@y..., "paulerlich" <paul@s...> wrote: > --- In tuning-math@y..., David C Keenan <d.keenan@u...> wrote: > > Yes. Once the deviation goes past about 20 cents it's irrelevant > > how big it is, > > That's not true -- you're ignoring both adaptive tuning and adaptive > timbring. You can adaptively tune or timbre just about anything, so it seems like we _should_ ignore it. > >and a 0.1 cent deviation does not sound 10 times better than a 1.0 > >cent deviation, it sounds about the same. > > In my own musical endeavors, this is true, but with all the strict-JI > obsessed people out there, a 0.1 cent deviation may end up being 10 > times more interesting than a 1.0 cent deviation. A strict JI obsessed person will not be the slightest bit interested in linear temperaments, or at least that has been my experience. If they are at all interested then think they will be quite happy to have a 1c error rather than a 0.1c one if it lets them halve (actually divide by 10^(1/3)) the number of notes in the scale. Given that 1c is way below the typical accuracy of non-electronic instruments. > > I suggest this figure-of->demerit. > > > > step^2 [...] > > Again, what on earth does step^2 tell you about how composers and > performers would rate a temperament? OK, step^2 is the number of > possible dyads in the typical scale. Step^3 is the number of possible > triads. Why is the former so much more "human-perception-or-cognition- > based" to you than the latter? Ok. Maybe I don't have good argument for that. Try step^3 * exp((cents/k)^2) > As for the other part, the dissonance measure . . . by doing it > Gene's way, we're going to end up with all the most interesting > temperaments for a wide variety of different ranges, from "you'll > never hear a beat" to "wafso-just" to "quasi-just" to "tempered" > to "needing adaptive tuning/timbring". Thus our top 30 or whatever > will have much of interest to all different schools of microtonal > composers. I think it has some extreme cases that are of interest to no one. This can be fixed.
top of page bottom of page up down Message: 5256 Date: Thu, 06 Dec 2001 01:33:09 Subject: Re: The grooviest linear temperaments for 7-limit music From: paulerlich --- In tuning-math@y..., "dkeenanuqnetau" <d.keenan@u...> wrote: > > > Yes. Once the deviation goes past about 20 cents it's irrelevant > > > how big it is, > > > > That's not true -- you're ignoring both adaptive tuning and adaptive > > timbring. > > You can adaptively tune or timbre just about anything, Not true -- in adaptive tuning, you don't want the horizontal shifts to be too big, or you lose the melodic coherence of the scale; and in adaptive timbring, you don't want the partials to deviate too far from a harmonic series, or you'll lose the sense that each note has a definite pitch. > A strict JI obsessed person will not be the slightest bit interested > in linear temperaments, or at least that has been my experience. If > they are at all interested then think they will be quite happy to have > a 1c error rather than a 0.1c one if it lets them halve (actually > divide by 10^(1/3)) the number of notes in the scale. You don't know that for sure. But look, I myself was trying to get Gene to adopt some exponential, rather than polynomial, function of the number of notes in the scale. He resisted . . . > Given that 1c is > way below the typical accuracy of non-electronic instruments. Hey, it won't be the first time a feature of tuning that is highly removed from most musicians' possible realm of experience has gotten published! > > > > I suggest this figure-of->demerit. > > > > > > step^2 [...] > > > > Again, what on earth does step^2 tell you about how composers and > > performers would rate a temperament? OK, step^2 is the number of > > possible dyads in the typical scale. Step^3 is the number of > possible > > triads. Why is the former so much more > "human-perception-or-cognition- > > based" to you than the latter? > > Ok. Maybe I don't have good argument for that. Try > > step^3 * exp((cents/k)^2) That's the _last_ conclusion I wanted you to reach! > I think it has some extreme cases that are of interest to no one. This > can be fixed. I tried to argue this point to Gene, but he seems to really like Ennealimmal. Hey, if we're getting mathematical elegance with this criterion, and all our favorite systems are showing up (I'm still waiting for double-diatonic ~26), shouldn't we be willing to pay the price of letting the guy who's doing all the work get his favorite system in too?
top of page bottom of page up down Message: 5258 Date: Thu, 06 Dec 2001 01:56:20 Subject: Re: The grooviest linear temperaments for 7-limit music From: paulerlich --- In tuning-math@y..., "D.Stearns" <STEARNS@C...> wrote: > Personally I'd feel much better if everyone could somehow agree what > was the overall most sensible measure regardless of the results! Fat chance :) > In Gene's case, I would hope that it would be some elegant internal > consistency that ties the whole deal together. I'd personally settle > for that even if the results were a tad exotic. I feel the same way. > Of course it might help if I understood it all a bit better too! I > feel like I'm getting there though, I just wish Gene were a little bit > more generous with the narrative--either that or someone else besides > him were saying the same things slightly differently... that helps me > sometimes too. I think he's the only one who understands abstract algebra around here, so in a lot of cases, that isn't really possible, unfortunately . . . of course, I should study up on it, but I should also make more music, and get more sleep, and . . .
top of page bottom of page up down Message: 5262 Date: Thu, 06 Dec 2001 02:59:36 Subject: Re: The grooviest linear temperaments for 7-limit music From: paulerlich --- In tuning-math@y..., "genewardsmith" <genewardsmith@j...> wrote: > You wanted to have exponential growth for the "step" factor, and Dave > for the "cents" factor, I think you misunderstood Dave -- he wanted the *goodness* for the cents factor to be a Gaussian.
top of page bottom of page up down Message: 5263 Date: Thu, 06 Dec 2001 03:00:40 Subject: Re: The grooviest linear temperaments for 7-limit music From: paulerlich --- In tuning-math@y..., "genewardsmith" <genewardsmith@j...> wrote: > --- In tuning-math@y..., "D.Stearns" <STEARNS@C...> wrote: > > > In Gene's case, I would hope that it would be some elegant internal > > consistency that ties the whole deal together. I'd personally settle > > for that even if the results were a tad exotic. > > Elegant internal consistency suggests to me steps^2 cents as a > measure, but that would need an upper cut-off. We do it for ets, > however, so I don't see that as a bif deal myself. Who's we? > > > Of course it might help if I understood it all a bit better too! I > > feel like I'm getting there though, I just wish Gene were a little > bit > > more generous with the narrative--either that or someone else > besides > > him were saying the same things slightly differently... that helps > me > > sometimes too. > > I'm hoping Paul will absorb it all and start coming out with his own > interpretations, but I can't get him to compute a wedge product. :) I'll take a look at it again when I get a chance.
top of page bottom of page up down Message: 5264 Date: Fri, 07 Dec 2001 06:00:40 Subject: Re: The grooviest linear temperaments for 7-limit music From: dkeenanuqnetau --- In tuning-math@y..., "paulerlich" <paul@s...> wrote: > --- In tuning-math@y..., "dkeenanuqnetau" <d.keenan@u...> wrote: > > --- In tuning-math@y..., "paulerlich" <paul@s...> wrote: > > > Well, I think Gene is saying that step^2 cents is clearly the > right > > > measure of "remarkability". > > > > Huh? "Remarkability" sounds like a kind of goodness. Step^2 * cents > is > > obviously a form of badness. > > Right, but it's the _objective_ kind. Not the kind that has anything > to do with any particular musician's desiderata. Paul! You seem to have ignored the most of the rest of my message. What the heck is _objective_ about deciding that a doubling of the number of generators is twice as bad as a doubling of the error. It's completely arbitrary. > It's the only > measure that doesn't favor a certain range of acceptable values for > error or for complexity. It only favors the best examples within each > range. What _objective_ reason is there, to choose it over gens^3 * cents or gens^2.3785 * cents?
top of page bottom of page up down Message: 5265 Date: Fri, 07 Dec 2001 08:03:05 Subject: Re: The grooviest linear temperaments for 7-limit music From: paulerlich --- In tuning-math@y..., "dkeenanuqnetau" <d.keenan@u...> wrote: > --- In tuning-math@y..., "paulerlich" <paul@s...> wrote: > > --- In tuning-math@y..., "dkeenanuqnetau" <d.keenan@u...> wrote: > > > Huh? Obviously any badness metric _must_ slope down towards (0,0) > > on > > > the (cents,gens) plain. > > > > The badness metric does, but the results don't. The results have a > > similar distribution everywhere on the plane, but only when gens^2 > > cents is the badness metric. > > You're not making any sense. The results are all just discrete points > in the badness surface with respect to gens and cents, so they have > exactly the same slope. The results have a similar distribution of > what? Everywhere on what plane? I see Gene is, at this very moment, doing a good job explaining these issues to you; meanwhile, my brain is toast.
top of page bottom of page up down Message: 5267 Date: Fri, 07 Dec 2001 06:23:45 Subject: Re: The grooviest linear temperaments for 7-limit music From: paulerlich --- In tuning-math@y..., "dkeenanuqnetau" <d.keenan@u...> wrote: > Paul! You seem to have ignored the most of the rest of my message. Not at all. > > It's the only > > measure that doesn't favor a certain range of acceptable values for > > error or for complexity. It only favors the best examples within > each > > range. > > What _objective_ reason is there, to choose it over gens^3 * cents or > gens^2.3785 * cents? Because those measures give an overall "slope" to the results, in analogy to what the Farey series seeding does to harmonic entropy.
top of page bottom of page up down Message: 5269 Date: Fri, 7 Dec 2001 21:14 +00 Subject: Re: Wedge products From: graham@xxxxxxxxxx.xx.xx genewardsmith@xxxx.xxx (genewardsmith) wrote: > First you order the basis so that a wedge product taken from two ets > or two unison vectors will correspond: > > Yahoo groups: /tuning-math/message/1553 * I think I've done that. All comes down to bubblesort -- one in the eye for those who say it's of no practical use! > Then you put the wedge product into a standard form, by > > (1) Dividing through by the gcd of the coefficients, and Okay, that's easy enough. > (2) Changing sign if need be, so that the 5-limit comma (or unison) > 2^w[6] * 3^(-w[2])*5^w[1] where w is the wedgie, is greater than 1. > If it equals 1, go on to the next invariant comma, which leaves out > 5, and if that is 1 also to the one which leaves out 3. See > > Yahoo groups: /tuning-math/message/1555 * > > for the invariant commas. The result of this standardization is the > wedge invariant, or wedgie, which uniquely determins the temperament. I'll need to study that a bit more. > > I'm not sure how to impleme > nt these things in Python. > > The above should do for the 7-limit; in general is another matter. Oh, it needs to be done in general. And it's almost working now. I still need to get my wedge invariants to look like yours. Also to divide through by common factors, but I've done that before. To check: >>> wedge.wedgeProduct(h12,h22) {(2, 3): 2, (0, 1): 2, (1, 3): -12, (0, 3): -4, (0, 2): -4, (1, 2): -11} That's numbering from 0 as the 2-direction, 1 as the 5-direction, etc. Then for the commas >>> for i in range(4): print wedge.interval( reduce( wedge.wedgeProduct, ((zeros[:i]+(1,)+zeros[i+1:]), h12, h22))) [0, -2, -12, 11] [2, 0, 4, -4] [12, -4, 0, -2] [-11, 4, 2, 0] which looks right. I'll look at it some more tomorrow. I'm still don't know how to do the generator mapping. Here's the library code: def wedgeProduct(a, b): result = {} for base1, value1 in makewedgable(a).items(): for base2, value2 in makewedgable(b).items(): value = value1*value2 for element in base1: if element in base2: break else: base, value = wedgeEquivalent(base1+base2, value) result[base] = result.get(base, 0)+value return result def interval(wedgie): result = [] bases = wedgie.keys() for i in range(len(wedgie)): for base in bases: if i not in base: if i%2: result.append(-wedgie[base]) else: result.append(wedgie[base]) return result def wedgeEquivalent(base, value): workingBase = list(base) for i in range(len(base)): for j in range(i,0,-1): if workingBase[j]<workingBase[j-1]: workingBase[j-1:j+1] = [ workingBase[j], workingBase[j-1]] value = -value return tuple(workingBase), value def addWedges(a, b): x = makewedgable(a) y = makewedgable(b) result = {} for element in x.keys()+y.keys(): result[element]=0 for key in x.keys(): result[key] = result[key] + x[key] for key in y.keys(): result[key] = result[key] + y[key] return result def makewedgable(thing): if isinstance(thing, type({})): return thing else: result = {} for i in range(len(thing)): result[i,]=thing[i] return result
top of page bottom of page up down Message: 5271 Date: Fri, 07 Dec 2001 08:20:04 Subject: Re: The grooviest linear temperaments for 7-limit music From: paulerlich --- In tuning-math@y..., "genewardsmith" <genewardsmith@j...> wrote: > --- In tuning-math@y..., "paulerlich" <paul@s...> wrote: > > --- In tuning-math@y..., "genewardsmith" <genewardsmith@j...> > > > (78732/78125)^a (32805/32768)^b (2109375/2097152)^c also gives > the > > > 5-limit, but is better for finding much smaller commas, to take a > > > more or less random example. > > > > Once a, b, and c are big enough, the original choice of commas will > > do little to induce any tendency of smallness or largeness in the > > result, correct? > > (78732/78125)^53 (32805/32768)^(-84) (2109375/2097152)^65 = 2 > > I wouldn't search that far myself. How do you know you wouldn't be missing any good ones?
top of page bottom of page up down Message: 5272 Date: Fri, 7 Dec 2001 21:14 +00 Subject: Re: More lists From: graham@xxxxxxxxxx.xx.xx Dave Keenan wrote: > I note that Graham is using maximum width and (optimised) maximum > error where Gene is using rms width and (optimised) rms error. It will > be interesting to see if this alone makes much difference to the > rankings. I doubt it. I've implemented RMS error now. It's actually faster than the minimax, so I've made it the default. I've uploaded new copies of the .txt and .gauss files. There are also other changes to the code to make it more efficient. As it stands, the ET matching is broken. I've fixed that, but not uploaded. You could implement the RMS width easily enough, but I expect it'll slow down execution, so you can do it on your own time. > So I see that while the gaussian with std error of 17 cents seems to > do the right thing in eliminating temperaments with tiny errors but > huge numbers of generators, it is too hard on those with larger > errors. Notice that Ennealimmal is still in the 7-limit list (about > number 22). The problem is that Paultone isn't there at all! It has > 17.5 c error with 6 gens per tetrad. I'm dividing the 17 cents by 3 in this case, to give a figure more like what you asked for. > Those lists don't contain any temperament with errors greater than 10 > cents. The 5-limit 163 cent neutral second temperament has the largest > at 9.8 cents, with 5 generators per triad. > > So I have to agree with Paul that > badness = num_gens^2 / gaussian(error/17c) > doesn't work. It works fine. You asked for errors of around 6 cents, so why should you expect errors greater than 10 cents? Graham
top of page bottom of page up

First Previous Next Last

4000 4050 4100 4150 4200 4250 4300 4350 4400 4450 4500 4550 4600 4650 4700 4750 4800 4850 4900 4950 5000 5050 5100 5150 5200 5250 5300 5350 5400 5450 5500 5550 5600 5650 5700 5750 5800 5850 5900 5950 6000 6050 6100 6150 6200 6250 6300 6350 6400 6450 6500 6550

5250 - 5275 -

top of page