User:Xenwolf/Python: Difference between revisions
Jump to navigation
Jump to search
Created page with "... just snippets ... <syntaxhighlight lang="python"> import math # formatted output integrated, default (5) is for step size def interval_size(steps, division, equave, digi..." |
m expanded |
||
| Line 1: | Line 1: | ||
... just snippets ... | ... just snippets ... | ||
== Calculate ED step size == | |||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
import math | import math | ||
# formatted | # formatted size string | ||
def | def ed_interval_size(steps, division=12, equiv=2, digits=0): | ||
return f'{math.log( | return f'{math.log(equiv, 2)/division*steps * 1200:.{digits}f}' | ||
# some examples | |||
print('1\\271 EDT --- ', ed_interval_size(1, 271, 3, 5)) | |||
print('1\\100 EDF --- ', ed_interval_size(1, 100, 3/2, 5)) | |||
print('1\\171 EDO --- ', ed_interval_size(1, 171, 2, 5)) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
The equivalence intervals are: | |||
* [[EDO]]: <code>equiv = 2</code> (octave) | |||
* [[EDF]]: <code>equiv = 3/2</code> (fifth) | |||
* [[EDT]]: <code>equiv = 3</code> (tritave) | |||
Output of above script: | |||
<pre> | |||
1\271 EDT --- 7.01828 | |||
1\100 EDF --- 7.01955 | |||
1\171 EDO --- 7.01754 | |||
</pre> | |||
Revision as of 16:32, 11 June 2021
... just snippets ...
Calculate ED step size
import math
# formatted size string
def ed_interval_size(steps, division=12, equiv=2, digits=0):
return f'{math.log(equiv, 2)/division*steps * 1200:.{digits}f}'
# some examples
print('1\\271 EDT --- ', ed_interval_size(1, 271, 3, 5))
print('1\\100 EDF --- ', ed_interval_size(1, 100, 3/2, 5))
print('1\\171 EDO --- ', ed_interval_size(1, 171, 2, 5))
The equivalence intervals are:
Output of above script:
1\271 EDT --- 7.01828 1\100 EDF --- 7.01955 1\171 EDO --- 7.01754