Daniel Dennett coined the word "thinko" for those.cmloegcmluin wrote: ↑Mon Jun 29, 2020 11:11 amI did that in a couple places, so it was a bit more than a typo... the part of my brain that deals in three-letter-acronyms-starting-with-g subconsciously gravitates toward Google Cloud Platform, it would seem. I've corrected the errors. Thank you for pointing them out.Dave Keenan wrote: ↑Mon Jun 29, 2020 10:39 am And I agree we should call if gpf(). You said "gcp()" in one place. Was that an error?
You make a good case. I read this as, "When you've used a given prime once, the cost of repeating it is less than the cost of the initial use. Sopfr treats repeats as having the same cost as the initial use. Sopf treats repeats as having zero cost.I agree the metric should with little contention represent things composers are likely to make their decisions on. For me, sopf seems pretty reasonable (as reasonable as π did, anyway), because many scales are based on just generators which are iterated repeatedly. Does it not seem reasonable to you that we should give ratios like 625/1 even the littlest bit of a pass for using only 5's? And wouldn't we want to punish e.g. 5.11/7.13 vs. 13.13/5.5?Dave Keenan wrote: ↑Mon Jun 29, 2020 10:39 am What is the argument for why a composer would prefer ratios with lower sopf, as opposed to merely lower sopfr?
I feel like sopfr, sopf, and gpf are each capturing a different aspect of the harmonic content which is important to capture: sopfr the overall harmonic content, sopf the variety of it, and gpf the extremeness of it. My stats vocab is lacking here; perhaps someone else knows better terms for these abstract aspects of data than "variety" and "extremeness".
That all said, I'm not precious about sopf just because I brought it up.
I wonder if it would make sense to instead use a single intermediate function between sopaf() and sopafr() that costed repeats at some fractional power of the repeat number (which is the absolute value of the prime exponent). I suggest, in the interests of keeping it pronounceable, we call it sopafry().