Talk:Marvel: Difference between revisions

From Xenharmonic Wiki
Jump to navigation Jump to search
Godtone (talk | contribs)
add reasonings based on decreasing error of odd-limits rather than consistency
Godtone (talk | contribs)
corrections (missed odd 27 due to manual/non-algorithmic traversal)
Line 61: Line 61:


<syntaxhighlight lang="python">
<syntaxhighlight lang="python">
>>> [k for k in range(15,125,2) if len(fact_int(k))<=4]
>>> odds = [k for k in range(1,125,2) if len(fact_int(k))<=4]
[15, 21, 25, 27, 35, 45, 49, 63, 75, 81, 105]
>>> odds
>>> optimal_edo_sequence({1,3,5,7,9},[edo for edo in range(1,312) if pval(S(15),ed(edo))==0])
[1, 3, 5, 7, 9, 15, 21, 25, 27, 35, 45, 49, 63, 75, 81, 105]
[2, 9, 10, 12, 19, 31, 41, 53, 72, 125, 166]
>>> for i in range(3,len(odds)): # 0th odd is 1, 1st odd is 3, 2nd odd is 5, 3rd odd is 7
>>> optimal_edo_sequence({1,3,5,7,9,15},[edo for edo in range(1,312) if pval(S(15),ed(edo))==0])
...  print('7-limited '+str(odds[i])+'-odd-limit:',optimal_edo_sequence(odds[:i+1],[edo for edo in range(1,312) if pval(S(15),ed(edo))==0]))
[2, 9, 10, 12, 19, 22, 31, 41, 53, 72, 125, 166]
...
>>> optimal_edo_sequence({1,3,5,7,9,15,21},[edo for edo in range(1,312) if pval(S(15),ed(edo))==0])
7-limited 7-odd-limit: [2, 9, 10, 12, 19, 22, 31, 72, 103, 175, 228]
[2, 9, 10, 12, 19, 22, 29, 31, 41, 72, 113, 125, 166, 197]
7-limited 9-odd-limit: [2, 9, 10, 12, 19, 31, 41, 53, 72, 125, 166]
>>> optimal_edo_sequence({1,3,5,7,9,15,21,25},[edo for edo in range(1,312) if pval(S(15),ed(edo))==0])
7-limited 15-odd-limit: [2, 9, 10, 12, 19, 22, 31, 41, 53, 72, 125, 166]
[2, 9, 10, 12, 19, 31, 53, 72, 84, 156, 240]
7-limited 21-odd-limit: [2, 9, 10, 12, 19, 22, 29, 31, 41, 72, 113, 125, 166, 197]
>>> optimal_edo_sequence({1,3,5,7,9,15,21,25,35},[edo for edo in range(1,312) if pval(S(15),ed(edo))==0])
7-limited 25-odd-limit: [2, 9, 10, 12, 19, 31, 53, 72, 84, 156, 240]
[2, 9, 10, 12, 19, 22, 31, 53, 72, 84, 103, 156]
7-limited 27-odd-limit: [2, 9, 10, 12, 19, 31, 41, 53, 72, 125, 197, 281]
>>> optimal_edo_sequence({1,3,5,7,9,15,21,25,35,45},[edo for edo in range(1,312) if pval(S(15),ed(edo))==0])
7-limited 35-odd-limit: [2, 9, 10, 12, 19, 31, 41, 53, 72, 125]
[2, 9, 10, 12, 19, 22, 31, 53, 72, 84, 125, 156, 281]
7-limited 45-odd-limit: [2, 9, 10, 12, 19, 31, 41, 53, 72, 125]
>>> optimal_edo_sequence({1,3,5,7,9,15,21,25,35,45,49},[edo for edo in range(1,312) if pval(S(15),ed(edo))==0])
7-limited 49-odd-limit: [2, 9, 10, 12, 19, 22, 31, 41, 72, 197]
[2, 9, 10, 19, 22, 31, 72, 103, 175, 228] # 49 is bad in 53
7-limited 63-odd-limit: [2, 9, 10, 12, 19, 22, 31, 41, 72, 197]
>>> optimal_edo_sequence({1,3,5,7,9,15,21,25,35,45,49,63},[edo for edo in range(1,312) if pval(S(15),ed(edo))==0])
7-limited 75-odd-limit: [2, 9, 10, 12, 19, 22, 31, 41, 72, 197]
[2, 9, 10, 12, 19, 22, 31, 41, 72, 156, 197] # 63 is not much better
7-limited 81-odd-limit: [2, 9, 10, 12, 19, 31, 41, 53, 72, 113, 166]
>>> optimal_edo_sequence({1,3,5,7,9,15,21,25,35,45,49,63,75},[edo for edo in range(1,312) if pval(S(15),ed(edo))==0])
7-limited 105-odd-limit: [2, 9, 10, 12, 19, 22, 31, 41, 53, 72, 113, 125, 166]
[2, 9, 10, 12, 19, 22, 29, 31, 41, 72, 156, 197, 228] # 75 is okay in 53 so it starts to recover
>>> optimal_edo_sequence({1,3,5,7,9,15,21,25,35,45,49,63,75,81},[edo for edo in range(1,312) if pval(S(15),ed(edo))==0])
[2, 9, 10, 12, 19, 31, 41, 53, 72, 113, 166] # 81 is very good in 53, so it recovers fully here
>>> optimal_edo_sequence({1,3,5,7,9,15,21,25,35,45,49,63,75,81,105},[edo for edo in range(1,312) if pval(S(15),ed(edo))==0])
[2, 9, 10, 12, 19, 22, 31, 41, 53, 72, 113, 125, 166]
</syntaxhighlight>
</syntaxhighlight>
Notice that we haven't put any constraints on over- or undertempering and 53edo still shows up everywhere except the 7-limited 49-, 63- and 75-odd-limit. 31 shows up everywhere simply by absence of good enough smaller competitors. 41edo takes a big enough hit from the overflat 25 that it doesn't recover until the 7-limited 63-odd-limit. By comparison, 125edo recovers faster from the hit from the flat 25. I also want to point out that 240edo is not only obviously way too many notes for marvel but also only appears a single time! I really doubt that 240edo is optimal in any meaningful sense. 197edo at least appears more frequently but still pretty rarely. By contrast, [[156edo]] is apparently overlooked as a large edo marvel tuning, apppearing 5 times (7-limited odd-limits 25 thru 75 except for 49). 125edo and 166edo at least seem to agree with however you derived them being optimal. 84edo isn't so bad either because we know it satisfies the strict requirements, and it appears in the 7-limited 25- thru 45- odd-limits (and more generally, it appears in the <code>optimal_edo_sequence</code> for all full odd-limits 23 thru 51 and appears in the <code>strict_optimal_edo_sequence</code> (meaning identical except instead based on relative error instead of absolute, so that the list is a strict subset) for a lot of those too.
Notice that we haven't put any constraints on tempering or consistency (other than tempering out 225/224 by patent val) and 53edo still shows up everywhere except the 7-limited 49-, 63- and 75-odd-limit. 31 shows up everywhere simply by absence of good enough smaller competitors; same with 41edo though it disappears from the 7-limited 25-odd-limit due to the overflat 25. 72edo is very good as it appears everywhere. I also want to point out that 240edo is not only arguably too many notes for marvel but also only appears a single time! I really doubt that 240edo is optimal in any meaningful sense (except being a nice composite number of notes I guess) because it has 4 inconsistent interval pairs in the 9-odd-limit already (which is almost half of all interval pairs of the 9-odd-limit). By contrast, 166edo and 197edo both appear 5 times so appear to be well justified in terms of absolute error at least. 125edo is even better and interestingly disappears in practically the same places that 53 disappears: in the 49- to 75- 7-limited odd-limits (though 53edo reappears in the 81-odd-limit while 125 appears one later in the 105-odd-limit). 84edo only appears once but it appears in a theoretically notable odd-limit for marvel: the 25-odd-limit, which is notable for being challenging because of marvel's inclination to temper 5 significantly flat (and this is also where 41edo disappears), so IMO isn't so bad either because we know it satisfies the strict requirements and because it appears in the <code>optimal_edo_sequence</code> for all full odd-limits 23 thru 51 and appears in the <code>strict_optimal_edo_sequence</code> (meaning identical except instead based on relative error instead of absolute, so that the list is a strict subset) for a lot of those too, so that it's a natural tuning to consider for high-limit marvel.
--[[User:Godtone|Godtone]] ([[User talk:Godtone|talk]]) 22:30, 15 January 2025 (UTC)
 
--[[User:Godtone|Godtone]] ([[User talk:Godtone|talk]]) 22:52, 15 January 2025 (UTC)

Revision as of 22:52, 15 January 2025

Subheadings for scales

I suggest this although I realize that an extensive table of contents has a certain repellent effect on some readers. What do you think? --Xenwolf (talk) 09:42, 1 June 2021 (UTC)

They don't look quite different to me in this specific page. FloraC (talk) 13:43, 1 June 2021 (UTC)
In that case I'd consider it as a structural improvement. Thanks for stopping by to take a look. --Xenwolf (talk) 14:24, 1 June 2021 (UTC)

Challenge on optimality of 53edo for FloraC

53edo is consistent in the 7-limited 105-odd-limit except for two interval pairs (50/49 and 75/49 and their octave-complements). Can any other edo tuning of marvel even come close to this faithful of a representation of the 7-limit lattice? 72edo does better with only one inconsistent interval pair in the 125-odd-limit (128/125 and its octave-complement, unsurprisingly), but it's optimized for different things than just pure marvel. Similarly 41edo does even better in terms of consistency but it's clearly more overtempered than 72edo. I also don't believe that the inconsistency of 50/49 and 75/49 are particularly important, except for the damage on 7/5 and 10/7 which as far as I can tell is the only real flaw of 53edo's marvel.

Here is how every edo up to and including 240 which tempers out 225/224 with a consistent 9-odd-limit performs in the 105-odd-limit, which seems the largest 7-limited odd-limit that is reasonable to consider because 125 is obviously gonna cause inconsistencies in most tunings as 5 is the most tempered prime in marvel cuz of 32/25 = 9/7 and 7/6 = 75/64 among others.

>>> for edo in range(1,241): # using https://en.xen.wiki/w/User:Godtone#My_Python_3_code
...   if inconsistent_ivs_by_val(odd_lim(9),val(lim(7),ed(edo)))==[] and pval(S(15),ed(edo))==0:
...     print(edo,'EDO:',', '.join([ striv(x) for x in inconsistent_ivs_by_val( odd_lim(9,[],[15,21,25,27,35,45,49,63,75,81,105]), val(lim(7),ed(edo)) ) ])+'\n')
... 
12 EDO: 49/48, 49/45, 54/49, 81/70, 98/81, 60/49, 35/27, 64/49, 49/36, 72/49, 49/32, 54/35, 49/30, 81/49, 140/81, 49/27, 90/49, 96/49

19 EDO: 64/63, 49/48, 128/105, 49/40, 64/49, 49/32, 80/49, 105/64, 96/49, 63/32

22 EDO: 81/80, 50/49, 27/25, 25/21, 49/40, 100/81, 63/50, 81/64, 80/63, 98/75, 75/49, 63/40, 128/81, 100/63, 81/50, 80/49, 42/25, 50/27, 49/25, 160/81

29 EDO: 49/48, 36/35, 28/27, 25/24, 27/25, 49/45, 35/32, 54/49, 81/70, 75/64, 98/81, 128/105, 60/49, 100/81, 32/25, 35/27, 64/49, 49/36, 48/35, 112/81, 25/18, 36/25, 81/56, 35/24, 72/49, 49/32, 54/35, 25/16, 81/50, 49/30, 105/64, 81/49, 128/75, 140/81, 49/27, 64/35, 90/49, 50/27, 48/25, 27/14, 35/18, 96/49

31 EDO: 81/80, 81/70, 100/81, 81/64, 112/81, 81/56, 128/81, 81/50, 140/81, 160/81

41 EDO: 

50 EDO: 81/80, 64/63, 50/49, 21/20, 27/25, 81/70, 32/27, 128/105, 49/40, 100/81, 63/50, 81/64, 80/63, 64/49, 21/16, 27/20, 112/81, 45/32, 64/45, 81/56, 40/27, 32/21, 49/32, 63/40, 128/81, 100/63, 81/50, 80/49, 105/64, 27/16, 140/81, 50/27, 40/21, 49/25, 63/32, 160/81

53 EDO: 50/49, 98/75, 75/49, 49/25

60 EDO: 64/63, 49/48, 36/35, 25/24, 35/32, 54/49, 75/64, 128/105, 49/40, 32/25, 64/49, 21/16, 49/36, 48/35, 45/32, 64/45, 35/24, 72/49, 32/21, 49/32, 25/16, 80/49, 105/64, 128/75, 49/27, 64/35, 48/25, 35/18, 96/49, 63/32

72 EDO: 

82 EDO: 81/80, 36/35, 25/24, 27/25, 35/32, 54/49, 28/25, 81/70, 75/64, 25/21, 98/81, 128/105, 100/81, 63/50, 32/25, 35/27, 75/56, 48/35, 25/18, 36/25, 35/24, 112/75, 54/35, 25/16, 100/63, 81/50, 105/64, 81/49, 42/25, 128/75, 140/81, 25/14, 49/27, 64/35, 50/27, 48/25, 35/18, 160/81

84 EDO: 81/80, 49/48, 28/27, 49/45, 54/49, 81/70, 98/81, 60/49, 81/64, 35/27, 98/75, 49/36, 112/81, 81/56, 72/49, 75/49, 54/35, 128/81, 49/30, 81/49, 140/81, 49/27, 90/49, 27/14, 96/49, 160/81

91 EDO: 81/80, 64/63, 49/48, 16/15, 35/32, 75/64, 32/27, 128/105, 49/40, 81/64, 80/63, 32/25, 64/49, 21/16, 48/35, 45/32, 64/45, 35/24, 32/21, 49/32, 25/16, 63/40, 128/81, 80/49, 105/64, 27/16, 128/75, 64/35, 15/8, 96/49, 63/32, 160/81

94 EDO: 50/49, 25/24, 27/25, 28/25, 75/64, 25/21, 100/81, 63/50, 32/25, 98/75, 75/56, 25/18, 36/25, 112/75, 75/49, 25/16, 100/63, 81/50, 42/25, 128/75, 25/14, 50/27, 48/25, 49/25

113 EDO: 25/24, 35/32, 28/25, 75/64, 128/105, 32/25, 75/56, 48/35, 25/18, 45/32, 64/45, 36/25, 35/24, 112/75, 25/16, 105/64, 128/75, 25/14, 64/35, 48/25

125 EDO: 50/49, 49/45, 54/49, 28/25, 75/64, 98/81, 60/49, 56/45, 98/75, 75/56, 112/81, 81/56, 112/75, 75/49, 45/28, 49/30, 81/49, 128/75, 25/14, 49/27, 90/49, 49/25

144 EDO: 81/80, 64/63, 16/15, 35/32, 75/64, 32/27, 128/105, 56/45, 81/64, 32/25, 64/49, 75/56, 112/81, 45/32, 64/45, 81/56, 112/75, 49/32, 25/16, 128/81, 45/28, 105/64, 27/16, 128/75, 64/35, 15/8, 63/32, 160/81

166 EDO: 50/49, 25/24, 16/15, 15/14, 27/25, 49/45, 28/25, 75/64, 25/21, 128/105, 60/49, 56/45, 63/50, 32/25, 98/75, 75/56, 25/18, 45/32, 64/45, 36/25, 112/75, 75/49, 25/16, 100/63, 45/28, 49/30, 105/64, 42/25, 128/75, 25/14, 90/49, 50/27, 28/15, 15/8, 48/25, 49/25

197 EDO: 81/80, 64/63, 50/49, 28/27, 25/24, 16/15, 15/14, 49/45, 54/49, 28/25, 75/64, 32/27, 25/21, 98/81, 128/105, 60/49, 56/45, 81/64, 32/25, 98/75, 75/56, 112/81, 45/32, 64/45, 81/56, 112/75, 75/49, 25/16, 128/81, 45/28, 49/30, 105/64, 81/49, 42/25, 27/16, 128/75, 25/14, 49/27, 90/49, 28/15, 15/8, 48/25, 27/14, 49/25, 63/32, 160/81

--Godtone (talk) 21:57, 15 January 2025 (UTC)

Because the consistency argument may not be sufficiently convincing, here is optimal_edo_sequences (minimising the mean square cent error on the tonality diamond, with cent error deviations weighted by the square-root of the odd-limit of each interval, which is the most forgiving tuning fidelity that can be reasonable) for edos tempering out S15:

>>> odds = [k for k in range(1,125,2) if len(fact_int(k))<=4]
>>> odds
[1, 3, 5, 7, 9, 15, 21, 25, 27, 35, 45, 49, 63, 75, 81, 105]
>>> for i in range(3,len(odds)): # 0th odd is 1, 1st odd is 3, 2nd odd is 5, 3rd odd is 7
...   print('7-limited '+str(odds[i])+'-odd-limit:',optimal_edo_sequence(odds[:i+1],[edo for edo in range(1,312) if pval(S(15),ed(edo))==0]))
... 
7-limited 7-odd-limit: [2, 9, 10, 12, 19, 22, 31, 72, 103, 175, 228]
7-limited 9-odd-limit: [2, 9, 10, 12, 19, 31, 41, 53, 72, 125, 166]
7-limited 15-odd-limit: [2, 9, 10, 12, 19, 22, 31, 41, 53, 72, 125, 166]
7-limited 21-odd-limit: [2, 9, 10, 12, 19, 22, 29, 31, 41, 72, 113, 125, 166, 197]
7-limited 25-odd-limit: [2, 9, 10, 12, 19, 31, 53, 72, 84, 156, 240]
7-limited 27-odd-limit: [2, 9, 10, 12, 19, 31, 41, 53, 72, 125, 197, 281]
7-limited 35-odd-limit: [2, 9, 10, 12, 19, 31, 41, 53, 72, 125]
7-limited 45-odd-limit: [2, 9, 10, 12, 19, 31, 41, 53, 72, 125]
7-limited 49-odd-limit: [2, 9, 10, 12, 19, 22, 31, 41, 72, 197]
7-limited 63-odd-limit: [2, 9, 10, 12, 19, 22, 31, 41, 72, 197]
7-limited 75-odd-limit: [2, 9, 10, 12, 19, 22, 31, 41, 72, 197]
7-limited 81-odd-limit: [2, 9, 10, 12, 19, 31, 41, 53, 72, 113, 166]
7-limited 105-odd-limit: [2, 9, 10, 12, 19, 22, 31, 41, 53, 72, 113, 125, 166]

Notice that we haven't put any constraints on tempering or consistency (other than tempering out 225/224 by patent val) and 53edo still shows up everywhere except the 7-limited 49-, 63- and 75-odd-limit. 31 shows up everywhere simply by absence of good enough smaller competitors; same with 41edo though it disappears from the 7-limited 25-odd-limit due to the overflat 25. 72edo is very good as it appears everywhere. I also want to point out that 240edo is not only arguably too many notes for marvel but also only appears a single time! I really doubt that 240edo is optimal in any meaningful sense (except being a nice composite number of notes I guess) because it has 4 inconsistent interval pairs in the 9-odd-limit already (which is almost half of all interval pairs of the 9-odd-limit). By contrast, 166edo and 197edo both appear 5 times so appear to be well justified in terms of absolute error at least. 125edo is even better and interestingly disappears in practically the same places that 53 disappears: in the 49- to 75- 7-limited odd-limits (though 53edo reappears in the 81-odd-limit while 125 appears one later in the 105-odd-limit). 84edo only appears once but it appears in a theoretically notable odd-limit for marvel: the 25-odd-limit, which is notable for being challenging because of marvel's inclination to temper 5 significantly flat (and this is also where 41edo disappears), so IMO isn't so bad either because we know it satisfies the strict requirements and because it appears in the optimal_edo_sequence for all full odd-limits 23 thru 51 and appears in the strict_optimal_edo_sequence (meaning identical except instead based on relative error instead of absolute, so that the list is a strict subset) for a lot of those too, so that it's a natural tuning to consider for high-limit marvel.

--Godtone (talk) 22:52, 15 January 2025 (UTC)