User:Xenwolf/Python

From Xenharmonic Wiki
Revision as of 16:32, 11 June 2021 by Xenwolf (talk | contribs) (expanded)
Jump to navigation Jump to search

... 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:

  • EDO: equiv = 2 (octave)
  • EDF: equiv = 3/2 (fifth)
  • EDT: equiv = 3 (tritave)

Output of above script:

1\271 EDT ---  7.01828
1\100 EDF ---  7.01955
1\171 EDO ---  7.01754