back to list

ultimate generalized diatonic search

🔗Carl Lumma <carl@lumma.org>

1/12/2012 2:05:40 PM

I'm starting to think of a method for a truly definitive
generalized diatonic search.

Actually 3 searches: for triad, tetrad, and pentad-based
diatonics.

I'll write this assuming 2:1 equivalence for now.

1. List all 15-odd-limit chords (triads, tetrads, or pentads).
I think what you do is sort the 15-limit dyads by octave-reduced
size, generate all k-necklaces of them, and then cast out those
with overall odd-limit > 15. That shouldn't produce any pairs
that are circular permutations of each other.

2. For each chord in the set, find the nearest partner in the
set by voice-leading distance (this also has to try all circular
permutations). The resulting list of chord pairs can be trimmed
in various ways, like by throwing out pairs with large voice-
leading distance.

3. For each chord pair, find the comma(s) needed to turn one into
the other. Call these "transform commas". List ETs > 4 and < 16
that temper them all out. We'll want to consider more than just
the patent val for each "ET". (I think there's some limit to how
good a rank 2 temperament can be when one of its vals is crap, so
maybe we just precompute the best 2 vals for each ET.)

4. Find "ETs" > 4 and < 100 for each chord pair that send all its
transform commas to 1.

5. For each chord pair, pair every ET in the step-3 list with
every larger ET in the step-4 list, and cast out such pairs if
the resulting MOS has no Rothenberg-proper tuning.

6. Resort the records by the smaller ET in each ET pair. So now
we have a bunch of (higher-ET chord-pair) records that share a
smaller ET (5-15).

7. For each such record find the rank-2 scale corresponding to
the smaller ET and score it with (k+1-c)(d^2)/(k^3)

8. Report the best five records for each smaller ET.

For nonoctave scales, I would simply repeat the search with 3:1
as the equivalence interval, a no-powers-of-3 limit for chords,
and ED3s with the same number of notes per tritave.

It's a bit messy and I'm sure I've glossed over some things, but
I bet it could work. Maybe there's a faster way to do it with
commas and Fokker blocks, I dunno.

-Carl

🔗Mike Battaglia <battaglia01@gmail.com>

1/15/2012 2:50:18 AM

I think there's one problem with the method where you find two vals
such that <V1|C> = 0 and <V2|C> = 1: it doesn't guarantee that the
chords you want will appear in the relevant MOS of the resulting
temperament. For instance, let's say you want 5/4 and 6/5 to share an
interval class, so that you know right away that one of your unison
vectors is 25/24. Well, if you start with 25/24 and nothing else in
mind, then you might get pairs like 5/4 and 125/96, which also differ
by 25/24. So you also have to prune for temperaments which have higher
than acceptable complexity for your target intervals.

-Mike

On Thu, Jan 12, 2012 at 5:05 PM, Carl Lumma <carl@lumma.org> wrote:
>
> I'm starting to think of a method for a truly definitive
> generalized diatonic search.
>
> Actually 3 searches: for triad, tetrad, and pentad-based
> diatonics.
>
> I'll write this assuming 2:1 equivalence for now.
>
> 1. List all 15-odd-limit chords (triads, tetrads, or pentads).
> I think what you do is sort the 15-limit dyads by octave-reduced
> size, generate all k-necklaces of them, and then cast out those
> with overall odd-limit > 15. That shouldn't produce any pairs
> that are circular permutations of each other.
>
> 2. For each chord in the set, find the nearest partner in the
> set by voice-leading distance (this also has to try all circular
> permutations). The resulting list of chord pairs can be trimmed
> in various ways, like by throwing out pairs with large voice-
> leading distance.
>
> 3. For each chord pair, find the comma(s) needed to turn one into
> the other. Call these "transform commas". List ETs > 4 and < 16
> that temper them all out. We'll want to consider more than just
> the patent val for each "ET". (I think there's some limit to how
> good a rank 2 temperament can be when one of its vals is crap, so
> maybe we just precompute the best 2 vals for each ET.)
>
> 4. Find "ETs" > 4 and < 100 for each chord pair that send all its
> transform commas to 1.
>
> 5. For each chord pair, pair every ET in the step-3 list with
> every larger ET in the step-4 list, and cast out such pairs if
> the resulting MOS has no Rothenberg-proper tuning.
>
> 6. Resort the records by the smaller ET in each ET pair. So now
> we have a bunch of (higher-ET chord-pair) records that share a
> smaller ET (5-15).
>
> 7. For each such record find the rank-2 scale corresponding to
> the smaller ET and score it with (k+1-c)(d^2)/(k^3)
>
> 8. Report the best five records for each smaller ET.
>
> For nonoctave scales, I would simply repeat the search with 3:1
> as the equivalence interval, a no-powers-of-3 limit for chords,
> and ED3s with the same number of notes per tritave.
>
> It's a bit messy and I'm sure I've glossed over some things, but
> I bet it could work. Maybe there's a faster way to do it with
> commas and Fokker blocks, I dunno.
>
> -Carl

🔗gbreed@gmail.com

1/15/2012 5:18:14 AM

I'm not sure what the question is here. I have conjectured that m&n will have an odd limit complexity no larger than the larger of m and n if m and n are both consistent. I think that's relevant but I don't know your badness filter.

Graham

------Original message------
From: Mike Battaglia <battaglia01@gmail.com>
To: <tuning-math@yahoogroups.com>
Date: Sunday, January 15, 2012 5:50:18 AM GMT-0500
Subject: Re: [tuning-math] ultimate generalized diatonic search

I think there's one problem with the method where you find two vals
such that <V1|C> = 0 and <V2|C> = 1: it doesn't guarantee that the
chords you want will appear in the relevant MOS of the resulting
temperament. For instance, let's say you want 5/4 and 6/5 to share an
interval class, so that you know right away that one of your unison
vectors is 25/24. Well, if you start with 25/24 and nothing else in
mind, then you might get pairs like 5/4 and 125/96, which also differ
by 25/24. So you also have to prune for temperaments which have higher
than acceptable complexity for your target intervals.

-Mike

On Thu, Jan 12, 2012 at 5:05 PM, Carl Lumma <carl@lumma.org> wrote:
>
> I'm starting to think of a method for a truly definitive
> generalized diatonic search.
>
> Actually 3 searches: for triad, tetrad, and pentad-based
> diatonics.
>
> I'll write this assuming 2:1 equivalence for now.
>
> 1. List all 15-odd-limit chords (triads, tetrads, or pentads).
> I think what you do is sort the 15-limit dyads by octave-reduced
> size, generate all k-necklaces of them, and then cast out those
> with overall odd-limit > 15. That shouldn't produce any pairs
> that are circular permutations of each other.
>
> 2. For each chord in the set, find the nearest partner in the
> set by voice-leading distance (this also has to try all circular
> permutations). The resulting list of chord pairs can be trimmed
> in various ways, like by throwing out pairs with large voice-
> leading distance.
>
> 3. For each chord pair, find the comma(s) needed to turn one into
> the other. Call these "transform commas". List ETs > 4 and < 16
> that temper them all out. We'll want to consider more than just
> the patent val for each "ET". (I think there's some limit to how
> good a rank 2 temperament can be when one of its vals is crap, so
> maybe we just precompute the best 2 vals for each ET.)
>
> 4. Find "ETs" > 4 and < 100 for each chord pair that send all its
> transform commas to 1.
>
> 5. For each chord pair, pair every ET in the step-3 list with
> every larger ET in the step-4 list, and cast out such pairs if
> the resulting MOS has no Rothenberg-proper tuning.
>
> 6. Resort the records by the smaller ET in each ET pair. So now
> we have a bunch of (higher-ET chord-pair) records that share a
> smaller ET (5-15).
>
> 7. For each such record find the rank-2 scale corresponding to
> the smaller ET and score it with (k+1-c)(d^2)/(k^3)
>
> 8. Report the best five records for each smaller ET.
>
> For nonoctave scales, I would simply repeat the search with 3:1
> as the equivalence interval, a no-powers-of-3 limit for chords,
> and ED3s with the same number of notes per tritave.
>
> It's a bit messy and I'm sure I've glossed over some things, but
> I bet it could work. Maybe there's a faster way to do it with
> commas and Fokker blocks, I dunno.
>
> -Carl

------------------------------------

Yahoo! Groups Links

🔗Carl Lumma <carl@lumma.org>

1/15/2012 11:50:56 AM

Yep, that's a point. I haven't worked out all the details.
Ultimately these cases will be caught by (k+1-c)(d^2)/(k^3)
but there may be a way not to produce them in the first place.

-Carl

At 02:50 AM 1/15/2012, Mike wrote:
>I think there's one problem with the method where you find two vals
>such that <V1|C> = 0 and <V2|C> = 1: it doesn't guarantee that the
>chords you want will appear in the relevant MOS of the resulting
>temperament. For instance, let's say you want 5/4 and 6/5 to share an
>interval class, so that you know right away that one of your unison
>vectors is 25/24. Well, if you start with 25/24 and nothing else in
>mind, then you might get pairs like 5/4 and 125/96, which also differ
>by 25/24. So you also have to prune for temperaments which have higher
>than acceptable complexity for your target intervals.
>
>-Mike
>
>
>On Thu, Jan 12, 2012 at 5:05 PM, Carl Lumma <carl@lumma.org> wrote:
>>
>> I'm starting to think of a method for a truly definitive
>> generalized diatonic search.
>>
>> Actually 3 searches: for triad, tetrad, and pentad-based
>> diatonics.
>>
>> I'll write this assuming 2:1 equivalence for now.
>>
>> 1. List all 15-odd-limit chords (triads, tetrads, or pentads).
>> I think what you do is sort the 15-limit dyads by octave-reduced
>> size, generate all k-necklaces of them, and then cast out those
>> with overall odd-limit > 15. That shouldn't produce any pairs
>> that are circular permutations of each other.
>>
>> 2. For each chord in the set, find the nearest partner in the
>> set by voice-leading distance (this also has to try all circular
>> permutations). The resulting list of chord pairs can be trimmed
>> in various ways, like by throwing out pairs with large voice-
>> leading distance.
>>
>> 3. For each chord pair, find the comma(s) needed to turn one into
>> the other. Call these "transform commas". List ETs > 4 and < 16
>> that temper them all out. We'll want to consider more than just
>> the patent val for each "ET". (I think there's some limit to how
>> good a rank 2 temperament can be when one of its vals is crap, so
>> maybe we just precompute the best 2 vals for each ET.)
>>
>> 4. Find "ETs" > 4 and < 100 for each chord pair that send all its
>> transform commas to 1.
>>
>> 5. For each chord pair, pair every ET in the step-3 list with
>> every larger ET in the step-4 list, and cast out such pairs if
>> the resulting MOS has no Rothenberg-proper tuning.
>>
>> 6. Resort the records by the smaller ET in each ET pair. So now
>> we have a bunch of (higher-ET chord-pair) records that share a
>> smaller ET (5-15).
>>
>> 7. For each such record find the rank-2 scale corresponding to
>> the smaller ET and score it with (k+1-c)(d^2)/(k^3)
>>
>> 8. Report the best five records for each smaller ET.
>>
>> For nonoctave scales, I would simply repeat the search with 3:1
>> as the equivalence interval, a no-powers-of-3 limit for chords,
>> and ED3s with the same number of notes per tritave.
>>
>> It's a bit messy and I'm sure I've glossed over some things, but
>> I bet it could work. Maybe there's a faster way to do it with
>> commas and Fokker blocks, I dunno.
>>
>> -Carl
>
>
>------------------------------------
>
>Yahoo! Groups Links
>
>
>

🔗Mike Battaglia <battaglia01@gmail.com>

2/1/2012 11:57:04 PM

On Sun, Jan 15, 2012 at 2:50 PM, Carl Lumma <carl@lumma.org> wrote:
>
> Yep, that's a point. I haven't worked out all the details.
> Ultimately these cases will be caught by (k+1-c)(d^2)/(k^3)
> but there may be a way not to produce them in the first place.
>
> -Carl

Keenan Pepper figured this out for my 4:6:7 vs 6:9:11 search

http://soundcloud.com/keenanpepper/maqamic-noodling

I saw maqamic[7] before but decided I didn't care. However, this is a
MODMOS, LssLssL, which I like a lot more. A mode of this MODMOS is
LssLLss, which is the one which resembles "Rast." This MODMOS keeps
coming up so many times that it should probably go on "the list,"
along with porcupine.

-Mike