Path-based goodness: Difference between revisions

Hkm (talk | contribs)
No edit summary
Hkm (talk | contribs)
No edit summary
Line 1: Line 1:
Path-based goodness is a metric for judging the accuracy and simplicity of temperaments. To compute path-based goodness, we can apply the following steps:
Path-based goodness is a metric for judging the accuracy and simplicity of temperaments. To compute path-based goodness, we can apply the following steps:


# Choose values for the parameters <code>error_power</code>, <code>complexity_fondness</code>, <code>inaccuracy_fondness</code>, and <code>target_score</code>. The canonical values are:
# Choose values for the parameters <code>error_power</code>, <code>complexity_fondness</code>, <code>inaccuracy_fondness</code>, and target_score. The canonical values are:


::: <code>error_power</code> = 1.5,  
::: <code>error_power</code> = 1.5,  
Line 8: Line 8:
::: <code>target_score</code> = 0.02.
::: <code>target_score</code> = 0.02.


# Let ''g'' be a variable. Assign to every JI interval (except 1/1) n/d with error e (in cents) a score equal to <code>inaccuracy_fondness</code>^(e^<code>error_power</code>) * <code>complexity_fondness</code>^(n+d) / ''g''.
# Let ''g'' be a variable. Assign to every JI interval (except 1/1) n/d with error e (in cents) a score equal to <code>inaccuracy_fondness</code>^(e^<code>error_power</code></code>) * <code>complexity_fondness</code>^(n+d) / ''g''.
# Assign to every ordered list of JI intervals a score equal to the product of the scores of all of its steps.
# Assign to every ordered list of JI intervals a score equal to the product of the scores of all of its steps.
# Assign to every temperament with tuning a score equal to the sum of the scores of all the paths that yield a comma when the intervals are stacked.  
# Assign to every temperament with tuning a score equal to the sum of the scores of all the paths that yield a comma when the intervals are stacked.  
# Assign to every temperament with tuning a ''goodness'' equal to the value ''g'' such that the score is equal to the <code>target_score</code>.
# Assign to every temperament with tuning a ''goodness'' equal to the value ''g'' such that the score is equal to the target_score.
# Assign to every temperament a ''goodness'' equal to the largest goodness of that temperament across all generator tunings. In this way, path-based goodness also provides optimal tunings for temperaments.
# Assign to every temperament a ''goodness'' equal to the largest goodness of that temperament across all generator tunings. In this way, path-based goodness also provides optimal tunings for temperaments.