back to list

Auto-detection of > 12 pitch classes

🔗John A. deLaubenfels <jdl@adaptune.com>

9/5/2001 9:19:20 AM

Improving my leisure retuning program to recognize more than 12 pitch
classes has been a long-time goal, and an elusive one. MIDI files have
no direct way to differentiate enharmonics, and my early attempts to
work through a sequence and map it to 31-tET failed miserably. Finally
I hit upon a really simple idea, which works as follows:

. Set up and relax the spring matrix as usual.

. Look at the RMS deviation of the grounding springs. If the pitch
class with the greatest RMS deviation exceeds some input preset,
then split that pitch class into two.

. Relax the matrix again, and repeat the process till no pitch class
shows RMS grounding deviation greater than the input preset.

Splitting a pitch class into two parts is easy: any grounding springs
with a negative deviation from ideal go into the lower group; any with
positive deviation go into the higher group.

As I write, I'm listening to the Mozart piano sonata, K.280 in the key
of F major. It ends up with 16 pitch classes, Cb through G#, grounded
as follows:

Grounding: nSpring Strength Pain RMS deviation
---------- ------- -------- ---- -------------
Cb 1.304 246 422.121 9524.829 6.718 cent
Gb 8.838 105 217.748 4259.669 6.255 cent
Db 15.329 446 873.004 4466.374 3.199 cent
Ab 13.466 707 1292.093 4130.726 2.529 cent
Eb 7.860 667 1221.033 18339.461 5.481 cent
Bb 5.339 1999 3074.025 30686.609 4.468 cent
F 1.814 3284 5350.446 44520.685 4.079 cent
C 1.211 3089 4699.095 21532.910 3.027 cent
G -1.338 2581 3974.560 48562.932 4.943 cent
D -6.272 1534 2207.339 23647.283 4.629 cent
A -8.731 1915 2680.421 26462.545 4.444 cent
E -9.744 1768 2523.981 37421.151 5.445 cent
B -14.036 383 503.273 2448.940 3.120 cent
F# -10.280 152 220.298 4814.505 6.611 cent
C# -5.559 405 669.537 22367.478 8.174 cent
G# -1.996 345 683.538 18940.109 7.444 cent

The high RMS deviation of the notes at the edges of this chain of
fifths, and their retreat from the normal meantone pattern, indicate
that there is remaining ambiguity as to their role.

One thing I have not yet done is disconnect horizontal springs across
enharmonics belonging to the same original (set of 12) pitch class. In
practice, this may not make a huge difference, since an enharmonic shift
might be expected to take place across a fair distance of time, which
weakens the horizontal spring formed, but it probably should be done.

JdL

🔗Paul Erlich <paul@stretch-music.com>

9/5/2001 2:45:48 PM

--- In tuning@y..., "John A. deLaubenfels" <jdl@a...> wrote:
> Improving my leisure retuning program to recognize more than 12
pitch
> classes has been a long-time goal, and an elusive one. MIDI files
have
> no direct way to differentiate enharmonics, and my early attempts to
> work through a sequence and map it to 31-tET failed miserably.
Finally
> I hit upon a really simple idea, which works as follows:
>
> . Set up and relax the spring matrix as usual.
>
> . Look at the RMS deviation of the grounding springs. If the
pitch
> class with the greatest RMS deviation exceeds some input
preset,
> then split that pitch class into two.
>
> . Relax the matrix again,

This time to a COFT with more than 12 notes, I'm assuming . . . yes?

and repeat the process till no pitch class
> shows RMS grounding deviation greater than the input preset.
>
> Splitting a pitch class into two parts is easy: any grounding
springs
> with a negative deviation from ideal go into the lower group; any
with
> positive deviation go into the higher group.
>
> As I write, I'm listening to the Mozart piano sonata, K.280 in the
key
> of F major. It ends up with 16 pitch classes, Cb through G#,
grounded
> as follows:
>
> Grounding: nSpring Strength Pain RMS deviation
> ---------- ------- -------- ---- -------------
> Cb 1.304 246 422.121 9524.829 6.718 cent
> Gb 8.838 105 217.748 4259.669 6.255 cent
> Db 15.329 446 873.004 4466.374 3.199 cent
> Ab 13.466 707 1292.093 4130.726 2.529 cent
> Eb 7.860 667 1221.033 18339.461 5.481 cent
> Bb 5.339 1999 3074.025 30686.609 4.468 cent
> F 1.814 3284 5350.446 44520.685 4.079 cent
> C 1.211 3089 4699.095 21532.910 3.027 cent
> G -1.338 2581 3974.560 48562.932 4.943 cent
> D -6.272 1534 2207.339 23647.283 4.629 cent
> A -8.731 1915 2680.421 26462.545 4.444 cent
> E -9.744 1768 2523.981 37421.151 5.445 cent
> B -14.036 383 503.273 2448.940 3.120 cent
> F# -10.280 152 220.298 4814.505 6.611 cent
> C# -5.559 405 669.537 22367.478 8.174 cent
> G# -1.996 345 683.538 18940.109 7.444 cent
>
> The high RMS deviation of the notes at the edges of this chain of
> fifths, and their retreat from the normal meantone pattern, indicate
> that there is remaining ambiguity as to their role.
>
> One thing I have not yet done is disconnect horizontal springs
across
> enharmonics belonging to the same original (set of 12) pitch
class. In
> practice, this may not make a huge difference, since an enharmonic
shift
> might be expected to take place across a fair distance of time,
which
> weakens the horizontal spring formed, but it probably should be
done.
>
> JdL

How does the pain look if you use a 16-tone meantone chain as your
fixed tuning to which you ground?

🔗John A. deLaubenfels <jdl@adaptune.com>

9/5/2001 3:20:06 PM

[Paul E wrote:]
>How does the pain look if you use a 16-tone meantone chain as your
>fixed tuning to which you ground?

Don't know. But why ground to something that deviates from what the
music asks for?

JdL

🔗Paul Erlich <paul@stretch-music.com>

9/5/2001 3:41:19 PM

--- In tuning@y..., "John A. deLaubenfels" <jdl@a...> wrote:
> [Paul E wrote:]
> >How does the pain look if you use a 16-tone meantone chain as your
> >fixed tuning to which you ground?
>
> Don't know. But why ground to something that deviates from what the
> music asks for?

Well, I'm wondering if your abrupt rule for distinguishing
enharmonically equivalent pitches, when deriving your 16-tone COFT,
is noticeably sub-optimal.

Also, isn't this a comparison you normally do? Well, OK, slightly
different, but you do often compare various meantone chains . . .

What causes the ambiguity? Augmented triads?

🔗John A. deLaubenfels <jdl@adaptune.com>

9/6/2001 8:49:15 AM

[Paul E wrote:]
>Well, I'm wondering if your abrupt rule for distinguishing
>enharmonically equivalent pitches, when deriving your 16-tone COFT,
>is noticeably sub-optimal.

It needs refinement for certain cases, in which a particular pitch class
needs to be split, but at some particular point, a continuously sounding
note crosses from slightly negative to slightly positive deviation from
ideal grounding (or the reverse): the existing code will split the
grounding right across the sounding note, NOT a good thing! I haven't
hit this yet on the sequences I've tuned (only a handful, since the
feature came online only yesterday), but I know they're out there. The
fix will involve establishing a horizontal range of time during which
the interpretation of a given pitch class must be consistent.

You realize that when we say "16-tone COFT", we're already past the true
COFT calculation, yes? This kind of splitting can only be done on the
big matrix. Of course, the 16 tones _could_ be retrofitted to a true
16-tone COFT, though I don't have code yet to do that.

>Also, isn't this a comparison you normally do? Well, OK, slightly
>different, but you do often compare various meantone chains . . .

I force the sequence into various 12-note meantone chains and evaluate
the vertical pain. So this is a little more, requiring new code.

This new trick may not always lead to grounding splits along a
consistent chain of fifths. If, for example, pitch class 6 (F#/Gb) and
pitch class 3 (D#/Eb) are the only two split, then mapping the result
to a chain of fifths is not possible. The program could of course
force the intervening pitch classes (1 and 8 in this example) to split
as well. With "old" works (Mozart and earlier), it's not surprising
when a particular piece does have splits consistent with a chain of
fifths. I got 15 consistent pitch classes, Ab thru A#, on the
Bach/Busoni, one of the few others I've tried so far.

>What causes the ambiguity? Augmented triads?

I'm not sure; to answer that I need to add code that seeks out the worst
deviations and identifies them for analysis. I suspect that chains of
minor thirds are the most common culprit: when they form a full
diminished tetrad they're pushed to around 300 cents each (depending
upon relative volume), but when there are only two in a chain, the
tritone is forced very far from 600 cents, as you know. Augmented
triads are much less common, but they would also cause disruption in
grounding.

JdL

🔗Paul Erlich <paul@stretch-music.com>

9/6/2001 2:09:21 PM

--- In tuning@y..., "John A. deLaubenfels" <jdl@a...> wrote:

> You realize that when we say "16-tone COFT", we're already past the
true
> COFT calculation, yes?

No, I didn't realize this.

> This kind of splitting can only be done on the
> big matrix.

Only?

> Of course, the 16 tones _could_ be retrofitted to a true
> 16-tone COFT, though I don't have code yet to do that.

If you did that, would that contradict your "only" assertion above?

🔗John A. deLaubenfels <jdl@adaptune.com>

9/6/2001 3:06:40 PM

[I wrote:]
>>You realize that when we say "16-tone COFT", we're already past the
>>true COFT calculation, yes?

[Paul E:]
>No, I didn't realize this.

The tiny COFT matrix can only be formed with knowledge of the number of
pitch classes; it is a distillation across time.

>>This kind of splitting can only be done on the big matrix.

>Only?

Yes, unless the sequence somehow comes in with knowledge of > 12 pitch
classes. For auto-detection, each slice of time must be considered on
its own; only the big matrix has this information.

>>Of course, the 16 tones _could_ be retrofitted to a true
>>16-tone COFT, though I don't have code yet to do that.

>If you did that, would that contradict your "only" assertion above?

No. Is it not clear why pitch class splitting can only be done on the
big matrix?

JdL

🔗Paul Erlich <paul@stretch-music.com>

9/6/2001 3:25:23 PM

--- In tuning@y..., "John A. deLaubenfels" <jdl@a...> wrote:
> [I wrote:]
> >>You realize that when we say "16-tone COFT", we're already past
the
> >>true COFT calculation, yes?
>
> [Paul E:]
> >No, I didn't realize this.
>
> The tiny COFT matrix can only be formed with knowledge of the
number of
> pitch classes; it is a distillation across time.
>
> >>This kind of splitting can only be done on the big matrix.
>
> >Only?
>
> Yes, unless the sequence somehow comes in with knowledge of > 12
pitch
> classes. For auto-detection, each slice of time must be considered
on
> its own; only the big matrix has this information.
>
> >>Of course, the 16 tones _could_ be retrofitted to a true
> >>16-tone COFT, though I don't have code yet to do that.
>
> >If you did that, would that contradict your "only" assertion above?
>
> No. Is it not clear why pitch class splitting can only be done on
the
> big matrix?

I think that's clear . . . what I'm not clear on is the difference
between using a true 16-tone COFT, which you suggest is possible and
is what I thought you were doing (you didn't contradict me when I
said I was assuming that), and what you are actually doing.

🔗John A. deLaubenfels <jdl@adaptune.com>

9/7/2001 2:54:14 AM

[Paul E wrote:]
>what I'm not clear on is the difference
>between using a true 16-tone COFT, which you suggest is possible and
>is what I thought you were doing (you didn't contradict me when I
>said I was assuming that), and what you are actually doing.

I think the confusion goes back to the distinction between true COFT
(calculated optimum _fixed_ tuning) and the 12 values used for grounding
an adaptively tuned piece (COGT?), which are ever so slightly different.
What I've now got is 16-tone COGT, and the hard part, deciding which
notes to split and which to put high and low, is already semi-working.
(I think I _did_ hit the case where a sounding note is pulled both high
and low yesterday, and I need to be smarter about not allowing that!).

I've always done the 12-note COFT calculation before beginning to relax
the big matrix, but the >12-note COFT can only be done _after_ the big
matrix has been relaxed, split, re-relaxed, etc.

JdL

🔗Paul Erlich <paul@stretch-music.com>

9/7/2001 11:48:25 AM

--- In tuning@y..., "John A. deLaubenfels" <jdl@a...> wrote:
> [Paul E wrote:]
> >what I'm not clear on is the difference
> >between using a true 16-tone COFT, which you suggest is possible
and
> >is what I thought you were doing (you didn't contradict me when I
> >said I was assuming that), and what you are actually doing.
>
> I think the confusion goes back to the distinction between true COFT
> (calculated optimum _fixed_ tuning) and the 12 values used for
grounding
> an adaptively tuned piece (COGT?), which are ever so slightly
different.
> What I've now got is 16-tone COGT, and the hard part, deciding which
> notes to split and which to put high and low, is already semi-
working.
> (I think I _did_ hit the case where a sounding note is pulled both
high
> and low yesterday, and I need to be smarter about not allowing
that!).
>
> I've always done the 12-note COFT calculation before beginning to
relax
> the big matrix, but the >12-note COFT can only be done _after_ the
big
> matrix has been relaxed, split, re-relaxed, etc.
>
> JdL

Can you conceive of a way to do a 16-note COFT calculation _at the
beginning_? Or perhaps a 19-note one, which should suffice for most
purposes? Or is this too "non-linear"?

🔗John A. deLaubenfels <jdl@adaptune.com>

9/7/2001 12:26:36 PM

[Paul E wrote:]
>Can you conceive of a way to do a 16-note COFT calculation _at the
>beginning_? Or perhaps a 19-note one, which should suffice for most
>purposes? Or is this too "non-linear"?

Well... the method I'm using is weaker than I'd like it to be, and/but
anything moved upstream would be even weaker. I guess I don't
understand what would be a compelling reason to move the calculation to
the beginning.

It'd be easy enough to allow an input value for the number of pitch
classes, and keep splitting till that number is achieved. My current
methods result in a different number of pitch classes for each sequence,
since they are based upon RMS grounding spring deviation.

JdL

🔗Paul Erlich <paul@stretch-music.com>

9/7/2001 12:34:26 PM

--- In tuning@y..., "John A. deLaubenfels" <jdl@a...> wrote:
> [Paul E wrote:]
> >Can you conceive of a way to do a 16-note COFT calculation _at the
> >beginning_? Or perhaps a 19-note one, which should suffice for
most
> >purposes? Or is this too "non-linear"?
>
> Well... the method I'm using is weaker than I'd like it to be,
and/but
> anything moved upstream would be even weaker. I guess I don't
> understand what would be a compelling reason to move the
calculation to
> the beginning.

None that I can think of now. But, do we really know that our binary
choices for the assignment of members of an enharmonically equivalent
pair are optimal? Perhaps doing it up front can help us be more sure
of that?
>
> It'd be easy enough to allow an input value for the number of pitch
> classes, and keep splitting till that number is achieved. My
current
> methods result in a different number of pitch classes for each
sequence,
> since they are based upon RMS grounding spring deviation.

And if that exceeds a certain amount, you split? Hmm . . .

🔗John A. deLaubenfels <jdl@adaptune.com>

9/8/2001 8:51:35 AM

[I wrote:]
>>I guess I don't understand what would be a compelling reason to move
>>the calculation to the beginning.

[Paul E:]
>None that I can think of now. But, do we really know that our binary
>choices for the assignment of members of an enharmonically equivalent
>pair are optimal?

No, this is just a shot in the dark, if you will. Not a real bad shot,
I think, but likely far from "optimal". One problem, of course, is that
the precise definition of "optimal" is elusive, is it not?

If a piece is scored with >12 notes, AND a MIDI file has tuning
reflecting the distinction, AND I add the new feature that Robert
Walker, Herman Miller & I have discussed, that knowledge will come
directly in. In the absence of these, the exact distribution of a
sequence into >12 notes will probably always be partly a matter of
taste.

>Perhaps doing it up front can help us be more sure of that?

Maybe. As I say, I've taken a stab at up-front analysis, without
success so far. David Keenan also has code for chain-of-fifths
analysis, but I think he has stated that it doesn't always work well.
He may have the best to date; I haven't analyzed his methods.

[JdL:]
>>It'd be easy enough to allow an input value for the number of pitch
>>classes, and keep splitting till that number is achieved. My current
>>methods result in a different number of pitch classes for each
>>sequence, since they are based upon RMS grounding spring deviation.

[Paul:]
>And if that exceeds a certain amount, you split? Hmm . . .

That's it. I split one pitch class at a time, re-relaxing the matrix
before deciding on another. IMHO, a high grounding spring RMS deviation
_is_ a compelling reason to split the pitch class. I'm trying it now
with various 7-limit tunings, where as you might expect note splitting
occurs quite a bit, and on most of the sequences I can't tell any
strangeness as a result. Individual chords of course become purer as
a result (I'm using "nominal", fairly rigid, vertical springs).

JdL

🔗Latchezar Dimitrov <latchezar_d@yahoo.com>

9/9/2001 6:49:29 AM

Why dont you never discuss the musical application of
any tunning ?
You allways take into account the mathematical
formulae...
My ear does not tolerate the things I hear in yours
uploads...

Dimitrov

--- "John A. deLaubenfels" <jdl@adaptune.com> a
�crit�: > [I wrote:]
> >>I guess I don't understand what would be a
> compelling reason to move
> >>the calculation to the beginning.
>
> [Paul E:]
> >None that I can think of now. But, do we really
> know that our binary
> >choices for the assignment of members of an
> enharmonically equivalent
> >pair are optimal?
>
> No, this is just a shot in the dark, if you will.
> Not a real bad shot,
> I think, but likely far from "optimal". One
> problem, of course, is that
> the precise definition of "optimal" is elusive, is
> it not?
>
> If a piece is scored with >12 notes, AND a MIDI file
> has tuning
> reflecting the distinction, AND I add the new
> feature that Robert
> Walker, Herman Miller & I have discussed, that
> knowledge will come
> directly in. In the absence of these, the exact
> distribution of a
> sequence into >12 notes will probably always be
> partly a matter of
> taste.
>
> >Perhaps doing it up front can help us be more sure
> of that?
>
> Maybe. As I say, I've taken a stab at up-front
> analysis, without
> success so far. David Keenan also has code for
> chain-of-fifths
> analysis, but I think he has stated that it doesn't
> always work well.
> He may have the best to date; I haven't analyzed his
> methods.
>
> [JdL:]
> >>It'd be easy enough to allow an input value for
> the number of pitch
> >>classes, and keep splitting till that number is
> achieved. My current
> >>methods result in a different number of pitch
> classes for each
> >>sequence, since they are based upon RMS grounding
> spring deviation.
>
> [Paul:]
> >And if that exceeds a certain amount, you split?
> Hmm . . .
>
> That's it. I split one pitch class at a time,
> re-relaxing the matrix
> before deciding on another. IMHO, a high grounding
> spring RMS deviation
> _is_ a compelling reason to split the pitch class.
> I'm trying it now
> with various 7-limit tunings, where as you might
> expect note splitting
> occurs quite a bit, and on most of the sequences I
> can't tell any
> strangeness as a result. Individual chords of
> course become purer as
> a result (I'm using "nominal", fairly rigid,
> vertical springs).
>
> JdL
>
>

___________________________________________________________
Do You Yahoo!? -- Un e-mail gratuit @yahoo.fr !
Yahoo! Courrier : http://fr.mail.yahoo.com

🔗Paul Erlich <paul@stretch-music.com>

9/10/2001 1:52:35 PM

--- In tuning@y..., Latchezar Dimitrov <latchezar_d@y...> wrote:

> Why dont you never discuss the musical application of
> any tunning ?
> You allways take into account the mathematical
> formulae...
> My ear does not tolerate the things I hear in yours
> uploads...
>
> Dimitrov

Which uploads in particular? I like many of John's retunings, while
others make me cringe. No one is expected to like all of them --
that's why there are many variations for each piece.

Rest assured, the "musical application" is paramount for all of us;
the mathematical formulae are only tools.

🔗Latchezar Dimitrov <latchezar_d@yahoo.com>

9/11/2001 5:47:03 AM

Sorry, Paul

Not especialy yours uploads but ALL there...
No one musical quality... Do you use Morpheus soft?
If yes, try to found the music named "The Red violin"
and you will understanding why I mean...No, I dont
like only Mozart or Bach, I like every good music, it
is not my fault if all music I like is not result of
use a special temperament...
12 or other division ? Equal or not ? What do you
prefer? I play in the symphonic orchestra
before...more 40 years and I have play many things
there:)) My best time was never when we had play any
contemporar music...Excuse-me, but it's so !

--- Paul Erlich <paul@stretch-music.com> a �crit�: >
--- In tuning@y..., Latchezar Dimitrov
> <latchezar_d@y...> wrote:
>
> > Why dont you never discuss the musical
> application of
> > any tunning ?
> > You allways take into account the mathematical
> > formulae...
> > My ear does not tolerate the things I hear in
> yours
> > uploads...
> >
> > Dimitrov
>
> Which uploads in particular? I like many of John's
> retunings, while
> others make me cringe. No one is expected to like
> all of them --
> that's why there are many variations for each piece.
>
> Rest assured, the "musical application" is paramount
> for all of us;
> the mathematical formulae are only tools.
>
>

___________________________________________________________
Do You Yahoo!? -- Un e-mail gratuit @yahoo.fr !
Yahoo! Courrier : http://fr.mail.yahoo.com