xenharmonic-devs / sonic-weave

The SonicWeave DSL for manipulating musical frequencies, ratios and equal temperaments
MIT License
4 stars 4 forks source link

Maj, maj and min qualities? #298

Closed frostburn closed 1 month ago

frostburn commented 2 months ago

pinkanberry — Today at 9:25 PM

if you allow aug3 and Aug3 for a3 you should def allow Maj3 and maj3 for M3 right? and min and neu/Neu and N d = dim m = min n = neu = Neu = N M = Maj = maj a = aug = Aug = Â

pinkanberry — Today at 9:27 PM

i think we can omit neu and Neu for simplicity and because it's supposed to be a variant of perfect is there any issue with supporting capital N ? in order to hint at perfectness where applicable

osmiumic commented 2 months ago

for minimising the number of alternatives while maintaining internally coherent logic: d = dim m = min n = N M a = aug = Aug = Â P

that should cover everything

osmiumic commented 2 months ago

then the question becomes what to do about semidiminuation/semiaugmentation; while preferring sd as unique makes some sense the question becomes should we also prefer sa as unique, implicating a as the default? however, note that because N is perfect in the cases of N3 and N6 (and their octave-equivalents) that means it makes some sense to phrase the augmentation relative to the perfect interval so where applicable sd = dn (/ dN) and sa = an (/ aN) ; why "where applicable"? because "sd" and "sa" may not necessarily be on a neutral interval; they could also be on an interseptimal/interordinal EG diminuating a P3.5 results in a d3.5 while augmenting a P2.5 results in an a2.5

therefore, with the exception of "M", we achieve a certain symmetry where lowercase refers to (semi-)diminuation/augmentation and non-Perfect neutrals while P and N refer to "perfect" intervals that are equal to an integer number of periods (a half-integer number of octaves) plus or minus up to 3 generators of sqrt(4/3) (whose period-complement is sqrt(3/2))

we can justify the M as the exceptional uppercase case that doesnt correspond to the logic i just described by noting that M corresponds uniquely to the major direction of P5 generators

osmiumic commented 2 months ago

here is the 1-indexed version for reference; hopefully free from error (but if you spot anything tell me and i can correct it)

P1 = 1/1 = 0g A1 = 2187/2048 P1.5 = sqrt(9/8) = 1p - 2g = 1x2 m2 = 256/243 = 10g - 6p n2 = sqrt(32/27) = 3g - 1p M2 = 9/8 = 2p - 4g P2.5 = sqrt(4/3) = 1g = 2x3 m3 = 32/27 = 6g - 4p N3 = sqrt(3/2) = 1p - 1g M3 = 81/64 P3.5 = 3x4 = sqrt(27/16) = sqrt(27/8) / sqrt(2) = 2p - 3g P4 = 4/3 = 2g n4 = sa4 = 11/8 (tempering 243/242) = 4/3 * sqrt(2187/2048) = sqrt(243/128) = 3p - 5g a4 = Aug4 = 729/512 P4.5 = sqrt(2) = 1p = 4x5 d5 = 1024/729 n5 = sd5 = 16/11 (tempering 243/242) = 3/2 / sqrt(2187/2048) = sqrt(512/243) = 5g - 3p P5 = 3/2 = 2p - 2g P5.5 = 5x6 = 2 / sqrt(27/16) = sqrt(64/27) = 3g m6 = 128/81 N6 = 2 / sqrt(3/2) = sqrt(8/3) = 1p + 1g M6 = 27/16 = 4p - 6g P6.5 = 2/sqrt(4/3) = sqrt(3) = 2p - 1g = 6x7 m7 = 16/9 = 4p - 2g n7 = 2 / sqrt(32/27) = sqrt(27/8) = 1p - 3g M7 = 243/128 = 6p - 10g P7.5 = 2 / sqrt(9/8) = sqrt(32/9) = 1p + 2g = 7x8 d8 = 4096/2187 P8 = 2/1 = 2g

i would like to note that i insist on n4 and n5 being legal alternate spellings on sa4 and sd5 for completeness of the neutrals 2 thru 7 ; it also becomes clear when we think about that range in the 0-index as 1 thru 6 that it corresponds to every generic interval class except those equal to the unison and octave (whose direction would be ambiguous)

please feel free to drop the kx(k+1) notation however, although i do think it might be nice to keep it but that also goes contrary to the goal of minimising the amount of synonyms so idk

frostburn commented 1 month ago

Thinking about adding min, (½min, smin), neu, (maj, Maj), (½maj, ½Maj, smaj and sMaj), where parenthesis indicate synonyms. (Vulgar fractions generalize to further splits.) N conflicts with a diamond-MOS pitch and there's complications related to detecting which neutral is the generator of which scale. I wouldn't want N2 or Neu2 to be legal because it's not a generator.