back to list

Yet another sonance scoring thread

🔗Daniel Nielsen <nielsed@...>

3/29/2011 9:51:32 AM

Okay, hopefully the subject line will serve as an acceptable disclaimer. I
would have replied to an existing line of emails, but none of the recent
ones had a title appropriate to the subject.

I've been brute-forcing through some hundreds of formulas of a certain form
with the idea that at least one might be close to something very usable.
What I'm lacking, though, is a good culling mechanism. I don't want to put
up a file with tons of "off" results. I know we've talked a lot about this
subject and that, as Carl mentions in his FAQ, the topic was talked to death
long before I came to the list, and before any of us were born. I'm asking,
however, for a sort of consensus summary as a culling heuristic to determine
which results should be kept for further investigation.

Probably the best way to do this would be to state under what conditions
results should be thrown out.

A little bit more about the particular implementation I am using:

Along with the interval ratio, the cents, and the dissonance score, a list
of 12-EDO note names is generated based on closest values in cents assuming
C is tonic. These are uppercase unless the note is 25+ cents off, then they
are lowercase; e.g. 730 cents is "g". Whether it is called sharp or flat is
not dependent on the particular cents, but instead by which appears sooner
in the minimal usual key signature convention; e.g. Eb not D#, since Bb,Eb
is shorter than F#,C#,G#,D#. Also, Ab is assumed instead of G#.

So, for example, a simple heuristic would be that the first 12 intervals
should be near Tenney height such that the 12-EDO note names are "C C G F A
E bb Eb F# Ab eb Bb". It would be unusual that any function I would use
would match those note names and not match the Tenney height intervals
themselves, so this can be thought of as an approximate shorthand. Of
course, the first two intervals might be (2/1,1/1) or (1/1/,2/1), but this
is not of too much concern to me since they are octave equivalent. (For now
I'm only testing intervals in the standard octave, btw).

There is no need to restrict the culling mechanism to note names only,
however.

Also, if you suspect that there is a function I should include in the
combinations that is not as complicated as HE or serious matrix
computations, then please let me know. My plan was to make a call for
suggested functions after posting initial results along with functions
included. Btw, I'm already using Tenney-Euclidean-lb distance as one
function in the array of input functions to be combined, as well as Tenney
height, Mann height, and several others.

🔗Carl Lumma <carl@...>

3/29/2011 1:49:18 PM

Hi Daniel,

I feel like I'm missing something here. You talk about "culling"
and so on... what are you actually trying to do? Produce a list
of... ?

What's the point of the 12-ET note names?

Are you looking for formula to try? If so, please let me suggest
instead conducting a listening experiment, and then creating a
formula to explain the results.

Are you familiar with Dave Keenan's spreadsheet, which
summarizes the 'rule of thumb' work here from the late '90s?

/tuning/files/Keenan/HarmonicComplexity.zip

(See also his Sethares dissonance spreadsheet)
/tuning/files/Keenan/SetharesDissonance.zip

-Carl

--- In tuning@yahoogroups.com, Daniel Nielsen <nielsed@...> wrote:
>
> Okay, hopefully the subject line will serve as an acceptable
> disclaimer. I would have replied to an existing line of emails,
> but none of the recent ones had a title appropriate to the subject.
[snip]

🔗Daniel Nielsen <nielsed@...>

3/29/2011 5:10:19 PM

>
> I feel like I'm missing something here. You talk about "culling"
> and so on... what are you actually trying to do? Produce a list
> of... ?
>
...functions that might be suitable for rating harmonicity of intervals in a
way similar to Tenney height, but with slight differences that might be
defensible as important and valid. This of course assumes that Tenney height
might be improved by a simple extension.

My model is running on the assumption that there is something like a
"signal" that needs to be extracted from some "noise". For instance, Gene
pointed to wider intervals by some accounts being perceived as less
dissonant. We might consider, then, some inharmonicity metric to be the
"signal", and some measure of interval distance to be the "noise". As the
noise increases, the inharmonicity able to be meaningfully perceived
decreases, in a sense similar to the Weber law. That may be making too
specific of an analogy, though. Basically what I'm getting at is that one
might expect a meaningful ordering of results to derive from a ratio of
functions F(a,b)=S(a,b)/N(a,b) for some reduced ratio a/b.

The measuring scales of the numerator and the denominator might not be in
correct alignment for these purposes; some might be cubes, some might be
square-roots, etc. For that reason I check over powers as well using

F(a,b) = ( S(a,b) )^m / ( N(a,b) )^n, for some domain of positive integers m
and n

That way there is little need to, say, define sqrrt(a*b) or cubrt(a*b) as
well as a*b in the array of searchable functions, since squaring the
numerator is equivalent to square-rooting the denominator when it is only a
monotonic ordering one is concerned with (similar to using square-distance
instead of distance).

Culling is important because it defines what is counted as "meaningful". For
instance, if I were to say that the first ratios of a possibly meaningful
ordering must approximate 12-EDO's "C C G F A E bb", and that is the only
necessary condition, then F(a,b)=b works just as well as F(a,b)=a*b. This
would result in an overwhelming deluge of data that is considered
"meaningful".

I do want to cull these somehow, so I was hoping to get opinions on how to
rate the resultant orderings.

What's the point of the 12-ET note names?
>
That was just intended to make things a little easier to write and test, but
it is not directly connected in any meaningful way and likely didn't need
the mention.

> Are you looking for formula to try? If so, please let me suggest
> instead conducting a listening experiment, and then creating a
> formula to explain the results.
>
Okay, do you mean possibly a listening experiment on the list? I would be
happy to. Perhaps that will define the conditions that everyone is working
under, even if somewhat arbitrarily.

> Are you familiar with Dave Keenan's spreadsheet, which
> summarizes the 'rule of thumb' work here from the late '90s?
>
>
> /tuning/files/Keenan/HarmonicComplexity.zip
>
> (See also his Sethares dissonance spreadsheet)
>
> /tuning/files/Keenan/SetharesDissonance.zip
>
I am not, although I think I had seen mention of it on-list. Much thanks!
For some reason I am not able to access the group members area on the
computer I am using at the moment.

🔗Carl Lumma <carl@...>

3/29/2011 7:25:22 PM

--- Daniel Nielsen <nielsed@...> wrote:

> My model is running on the assumption that there is something
> like a "signal" that needs to be extracted from some "noise".
> For instance, Gene pointed to wider intervals by some accounts
> being perceived as less dissonant. We might consider, then,
> some inharmonicity metric to be the "signal", and some measure
> of interval distance to be the "noise".

This is known as the SPAN effect. It's pretty straightforward
and I don't think anyone's ever tried to model it. Graham has
pointed out that Tenney height seems to be working against it
(is 5/1 more concordant than 5/4?) which is a valid criticism.

> For that reason I check over powers as well using
> F(a,b) = ( S(a,b) )^m / ( N(a,b) )^n, for some domain of
> positive integers m and n

What are you checking them against?

> Culling is important because it defines what is counted as
> "meaningful". For instance, if I were to say that the first
> ratios of a possibly meaningful ordering must approximate
> 12-EDO's "C C G F A E bb", and that is the only necessary
> condition, then F(a,b)=b works just as well as F(a,b)=a*b.
> This would result in an overwhelming deluge of data that is
> considered "meaningful".

You've lost me here. I'm not sure the significance of
"C C G F A E bb". Whatever ordering you're looking to create,
there are only about 150 rationals to order.

> Okay, do you mean possibly a listening experiment on the list?
> I would be happy to. Perhaps that will define the conditions
> that everyone is working under, even if somewhat arbitrarily.

Data are sorely needed. I'm conducting a small experiment at
the moment - write me offlist if you'd like to participate.

-Carl

🔗Daniel Nielsen <nielsed@...>

3/30/2011 7:45:25 AM

>
> This is known as the SPAN effect. It's pretty straightforward
> and I don't think anyone's ever tried to model it. Graham has
> pointed out that Tenney height seems to be working against it
> (is 5/1 more concordant than 5/4?) which is a valid criticism.
>

Yes, I'd suppose one of those situations with many possible states but
constrained ability to physically or physiologically/mentally select between
them. It seems to me that TE distance offers a possibility to make some kind
of correction for it possibly easily.

For a/b,
( tedist(a,b) )^2 = ((na2-nb2) * lb 2)^2 + ((na3-nb3) * lb 3)^2 + ((na5-nb5)
* lb 5)^2 + ..

It appears that modifying these (lb X)^2 coefficients might offer a lot of
control, since (naX-nbX)^2 represents larger absolute intervals (whether up
or down) as X increases. Anyway, this is just a notion; if something
seemingly worthwhile comes of it, I'll post results.

> > For that reason I check over powers as well using
> > F(a,b) = ( S(a,b) )^m / ( N(a,b) )^n, for some domain of
> > positive integers m and n
>
> What are you checking them against?
>

Ratios are ordered least to greatest by score, and then the list of results
evaluated by some heuristic. If it's good, the list is saved, otherwise
thrown out.

> You've lost me here. I'm not sure the significance of
> "C C G F A E bb". Whatever ordering you're looking to create,
> there are only about 150 rationals to order.
>

Right, sorry I keep using that dumb shorthand here. I've just been using it
because it's so easy to parse on a computer.

🔗Carl Lumma <carl@...>

3/30/2011 1:37:38 PM

Hi Daniel,

> Yes, I'd suppose one of those situations with many possible
> states but constrained ability to physically or
> physiologically/mentally select between them. It seems to me
> that TE distance offers a possibility to make some kind
> of correction for it possibly easily.

It is known that TE distance gives inferior results to
L1 Tenney distance, and is only used to make various tuning
optimizations easier. And L1 Tenney distance is equal
to log2(Tenney height). This is explained on the xenwiki
here: http://xenharmonic.wikispaces.com/Monzos+and+Interval+Space

> > What are you checking them against?
>
> Ratios are ordered least to greatest by score, and then the
> list of results evaluated by some heuristic. If it's good,
> the list is saved, otherwise thrown out.

I mean, how do you know if it's good?

-Carl

🔗Daniel Nielsen <nielsed@...>

3/31/2011 12:04:15 AM

I think I see now that the formula John uses for melodic intervals is
something of an approximation for the SPAN effect. I looked back through the
old archives to get a sense of opinion and read one statement describing the
effect as both consonance and dissonance seeming to become less powerful as
interval distance increases widely.

If we divide Tenney height inharmonicity by the interval distance a/b and
call it I^2, we can say
I^2 = a*b / (a/b) = b^2
i.e.
I=b

Likewise, we can call the harmonicity H^2 the inverse of Tenney height, and
also divide it by the interval distance, so
H^2 = (1/ab) / (a/b) = 1/a^2
i.e.
H=1/a

Notionally defining consonance C by

C = sqrrt(H^2 + I^-2) = sqrrt((1/a)^2 + (1/b)^2)

and 1/a+1/b would be the related Manhattan distance.

Dissonance D would not be defined by 1/C, but instead by

D = sqrrt(H^-2 + I^2) = sqrrt(a^2 + b^2)

and the Mann height is the related L1.

Results comparing Tenney height to 1/C seemed to fall pretty well in line.

LEFT SIDE IS 1/C = 1 / sqrrt((1/a)^2+(1/b)^2)
RIGHT SIDE IS a*b

1/1 0 0.707107 1/1 0
1
2/1 1200 0.894427 2/1 1200
0.728396
3/2 701.955 1.6641 3/2 701.955
0.412447
4/3 498.045 2.4 4/3 498.045
0.290169
5/3 884.359 2.57248 5/3 884.359
0.262416
5/4 386.314 3.12348 5/4 386.314
0.224303
7/4 968.826 3.47297 7/4 968.826
0.192687
6/5 315.641 3.84111 6/5 315.641
0.182954
7/5 582.512 4.06867 7/5 582.512
0.170228
8/5 813.686 4.23999 8/5 813.686
0.160299
9/5 1017.6 4.37079 7/6 266.871
0.154533
7/6 266.871 4.55554 9/5 1017.6
0.152296
11/6 1049.36 5.26737 8/7 231.174
0.13378
8/7 231.174 5.26804 9/7 435.084
0.126486
9/7 435.084 5.52547 11/6 1049.36
0.125924
10/7 617.488 5.73462 10/7 617.488
0.120474
11/7 782.492 5.90563 9/8 203.91
0.117953
9/8 203.91 5.97927 11/7 782.492
0.115417
12/7 933.129 6.04645 12/7 933.129
0.111093
13/7 1071.7 6.1633 11/8 551.318
0.107276
11/8 551.318 6.46989 10/9 182.404
0.105482
10/9 182.404 6.68965 13/7 1071.7
0.107344
13/8 840.528 6.81327 11/9 347.408
0.100757
11/9 347.408 6.96562 13/8 840.528
0.0995045
15/8 1088.27 7.05882 11/10 165.004
0.0954004
11/10 165.004 7.3994 13/9 636.618
0.0932319
13/9 636.618 7.39973 15/8 1088.27
0.0935464
14/9 764.916 7.57061 14/9 764.916
0.0901752
16/9 996.09 7.84418 13/10 454.214
0.0880833
13/10 454.214 7.92624 12/11 150.637
0.08708
17/9 1101.05 7.95409 13/11 289.21
0.0837701
12/11 150.637 8.1087 16/9 996.09
0.0850606
13/11 289.21 8.39725 17/9 1101.05
0.0828935
17/10 918.642 8.61934 14/11 417.508
0.0808753
14/11 417.508 8.6495 13/12 138.573
0.0800961
13/12 138.573 8.81764 15/11 536.951
0.0783182
19/10 1111.2 8.84918 17/10 918.642
0.0780482
15/11 536.951 8.87045 16/11 648.682
0.0760397
16/11 648.682 9.06446 14/13 128.298
0.0741504
17/11 753.637 9.23527 17/11 753.637
0.0739942
18/11 852.592 9.3861 19/10 1111.2
0.0744198
19/11 946.195 9.51969 15/13 247.741
0.0717032
14/13 128.298 9.52632 18/11 852.592
0.0721456
20/11 1035 9.63837 17/12 603
0.0705452
21/11 1119.46 9.74415 16/13 359.472
0.0695244
17/12 603 9.80361 19/11 946.195
0.0704649
15/13 247.741 9.82396 15/14 119.443
0.0690271
16/13 359.472 10.0895 20/11 1035
0.0689289

🔗Daniel Nielsen <nielsed@...>

3/31/2011 12:00:38 PM

If anyone read my last reply, you might notice that the rightmost column is
of course not Tenney height - mea culpa - accidentally printed out the wrong
values, but the ordering is correct anyhow.

🔗Daniel Nielsen <nielsed@...>

4/12/2011 10:13:37 PM

Today I was messing around a little with the consonance metric mentioned in
the previous message, and found something that was interesting to me. As
cruel as it is to write this in email text form, I'm noting it here from the
beginning:

Assume ratio a / b is reduced.

Call the interval distance max( a/b,b/a ); in this way, the interval
distance for both 1/3 and 3/1 is 3.

In an attempt to account for the SPAN effect, we will divide Tenney height
inharmonicity by the interval distance a/b and call the result I^2, saying
I^2 = a b / max( a/b,b/a ).
This means (depending on the denominator)
I = b, a.

In a similar manner, let us divide harmonicity by the interval distance and
call the result H^2, so
H^2 = ( 1 / a b ) / max( a/b,b/a ),
meaning
H = 1/a, 1/b.

Let us define dissonance D by
D = sqrrt( I^2 + H^-2 ).
In either case, whether a>=b or a<b,
D = sqrrt( a^2 + b^2 ).

Likewise, define consonance C by
C = sqrrt( I^-2 + H^2 ).
In either case, whether a>=b or a<b,
C = sqrrt( (1/a)^2 + (1/b)^2 ).

DEFINITION: I am calling D and C the "absolute dissonance" and "absolute
consonance" respectively at this point. D/C and C/D are here being called
the "relative dissonance" and "relative consonance". If you prefer D/(C+D)
or C/(C+D), this conversion is easily made, since A/(A+B)=1/(1+B/A).

NOTE: At this point, the ordering of interval ratios produced by Tenney
height (a b) and the relative dissonance (D/C) is, I believe, identical,
although the proof is not given here. The order given by the absolute
dissonance (D) is not the same, however. As concerns the intervals that have
been discussed recently onlist, absolute dissonance gives 9/5 before (less
dissonant than) 7/6, 11/6 before 9/7, 11/7 before 9/8, and 13/7 before 11/8
and 15/8.

Define complex variables y = a + i b and z = (1/a) + i (1/b).

Then
D/C
= sqrrt( a^2 + b^2 ) / sqrrt( (1/a)^2 + (1/b)^2 )
= sqrrt( ( a^2 + b^2 ) / ( (1/a)^2 + (1/b)^2 ) )
= sqrrt( y y* / z z* )
= sqrrt( (y/z) (y/z)* )

y/z
= y z* / z z*
= (a + i b) ( (1/a) - i (1/b) ) / z z*
= 2 + i (b/a - a/b) / z z*
= 2 ( 1 - i (a^2 - b^2) / 2 a b ) / z z*
= 2 ( 1 - i Re(y^2) / Im(y^2) ) / z z*
= 2 ( 1 - i cot(arg(y^2)) ) / z z*

Now we can say
D/C
= (2 / z z*) sqrrt( (1 + i cot(arg(y^2))) (1 - i cot(arg(y^2))) )
= (2 / z z*) sqrrt( 1 + (cot(arg(y^2)))^2 )

If we define the angle tta = arg(y), then 2 tta = arg(y^2). Using this,

D^2
= ( 4 / C^2 ) ( 1 + (cot(2 tta))^2 )
= ( 4 / C^2 ) (csc(2 tta))^2
= 1 / (C sin(tta) cos(tta))^2

Finally, what this all boils down to is that

D = |y|
C = 1 / D sin(tta) cos(tta)

I haven't checked the results, but this at least superficially seems to me
like a possible step toward a complex analysis method for sonance.

🔗Carl Lumma <carl@...>

4/13/2011 2:00:17 AM

--- Daniel Nielsen <nielsed@...> wrote:

> Assume ratio a / b is reduced.
>
> Call the interval distance max( a/b,b/a ); in this way, the
> interval distance for both 1/3 and 3/1 is 3.

The usual convention is to always measure from the lower
pitch, so that the rational is always > 1.

> In an attempt to account for the SPAN effect, we will divide
> Tenney height inharmonicity by the interval distance a/b and
> call the result I^2, saying
> I^2 = a b / max( a/b,b/a ).
> This means (depending on the denominator)
> I = b, a.

...so your I is always equal to the denominator. This isn't
a bad rule of thumb - we tried it. But it lacks expressiveness
(e.g. can't rank 7/4 vs 5/4).

> In a similar manner, let us divide harmonicity by the interval
> distance and call the result H^2, so
> H^2 = ( 1 / a b ) / max( a/b,b/a ),
> meaning
> H = 1/a, 1/b.

Always 1/a with the convention.

> Let us define dissonance D by
> D = sqrrt( I^2 + H^-2 ).
> In either case, whether a>=b or a<b,
> D = sqrrt( a^2 + b^2 ).
> Likewise, define consonance C by
> C = sqrrt( I^-2 + H^2 ).
> In either case, whether a>=b or a<b,
> C = sqrrt( (1/a)^2 + (1/b)^2 ).
[snip]
> NOTE: At this point, the ordering of interval ratios produced
> by Tenney height (a b) and the relative dissonance (D/C) is,
> I believe, identical, although the proof is not given here.

You bet; D/C simplifies to a*b.

-Carl

🔗Daniel Nielsen <nielsed@...>

4/13/2011 7:37:31 AM

>
> Carl: The usual convention is to always measure from the lower
> pitch, so that the rational is always > 1.

Ah, okay. One nice thing about using both approaches here was that they
reduced to the same formulas when evaluating D and C, as might be expected
(assuming invariance to pitch register).

> NOTE: At this point, the ordering of interval ratios produced
> > by Tenney height (a b) and the relative dissonance (D/C) is,
> > I believe, identical, although the proof is not given here.
>
> You bet; D/C simplifies to a*b.
>
> -Carl
>

Hm, that's easy enough to see using L1 norms, since it would be

D_1 / C_1 = (a+b) / (1/a+1/b) = a b,

but it doesn't seem as obvious to me right now using L2 norms, although it
probably does produce the same ordering.

🔗Daniel Nielsen <nielsed@...>

4/14/2011 5:51:58 PM

>
> > NOTE: At this point, the ordering of interval ratios produced
>> > by Tenney height (a b) and the relative dissonance (D/C) is,
>> > I believe, identical, although the proof is not given here.
>>
>> You bet; D/C simplifies to a*b.
>>
>> -Carl
>>
>
> Hm, that's easy enough to see using L1 norms, since it would be
>
> D_1 / C_1 = (a+b) / (1/a+1/b) = a b,
>
> but it doesn't seem as obvious to me right now using L2 norms, although it
> probably does produce the same ordering.
>
>
You're right, had a "duh" moment there. Of course, since
D = |y|
C = 1 / D sin(tta) cos(tta)
then
D/C
= |y| cos(tta) |y| sin(tta)
= a b

This invariance of D/C to norm degree seems surprising to me. I'll have to
see if it extends to other norm degrees..

🔗Daniel Nielsen <nielsed@...>

4/14/2011 7:48:19 PM

>
> This invariance of D/C to norm degree seems surprising to me. I'll have to
> see if it extends to other norm degrees..
>

Okay, duh again, of course it does. Sorry, better to be stupid (I'll blame
the distractions of life) now publicly than to live in ignorance forever.

🔗Carl Lumma <carl@...>

4/14/2011 8:36:25 PM

--- Daniel Nielsen <nielsed@...> wrote:

> > This invariance of D/C to norm degree seems surprising to me.
> > I'll have to see if it extends to other norm degrees..
>
> Okay, duh again, of course it does. Sorry, better to be stupid
> (I'll blame the distractions of life) now publicly than to live
> in ignorance forever.

I'm not sure what you were doing with the norms. I got the
result through an elementary alegbraic simplification by
assuming positive roots. When you mentioned norms I began to
think I'd done something horribly wrong. :) -Carl

🔗Daniel Nielsen <nielsed@...>

4/14/2011 8:53:39 PM

On Thu, Apr 14, 2011 at 10:36 PM, Carl Lumma <carl@...> wrote:

>
>
> --- Daniel Nielsen <nielsed@...> wrote:
>
> > > This invariance of D/C to norm degree seems surprising to me.
> > > I'll have to see if it extends to other norm degrees..
> >
> > Okay, duh again, of course it does. Sorry, better to be stupid
> > (I'll blame the distractions of life) now publicly than to live
> > in ignorance forever.
>
> I'm not sure what you were doing with the norms. I got the
> result through an elementary alegbraic simplification by
> assuming positive roots. When you mentioned norms I began to
> think I'd done something horribly wrong. :) -Carl
>

I don't know, but for some reason I had at least failed to realize that the
same simple argument I made in the case of the 1-norm holds for any p-norm:

D_p / C_p

= ( a^p + b^p )^1/p / (1/a^p + 1/b^p)^1/p

= [ ( a^p + b^p ) / (1/a^p + 1/b^p) ]^1/p

= [ ( a^p + b^p ) / ( ( a^p + b^p )^p / (a b)^p ) ]^1/p

= a b

🔗Daniel Nielsen <nielsed@...>

4/14/2011 8:58:27 PM

OBLIGATORY CORRECTION:
..

> = [ ( a^p + b^p ) / ( ( a^p + b^p ) / (a b)^p ) ]^1/p
>
> = a b
>