Upload TMIDIX.py
Browse files
TMIDIX.py
CHANGED
|
@@ -51,7 +51,7 @@ r'''############################################################################
|
|
| 51 |
|
| 52 |
###################################################################################
|
| 53 |
|
| 54 |
-
__version__ = "26.4.
|
| 55 |
|
| 56 |
print('=' * 70)
|
| 57 |
print('TMIDIX Python module')
|
|
@@ -18519,6 +18519,71 @@ def transpose_chord_token(chord_token, transpose_value, use_full_chords=False):
|
|
| 18519 |
|
| 18520 |
###################################################################################
|
| 18521 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18522 |
print('Module loaded!')
|
| 18523 |
print('=' * 70)
|
| 18524 |
print('Enjoy! :)')
|
|
|
|
| 51 |
|
| 52 |
###################################################################################
|
| 53 |
|
| 54 |
+
__version__ = "26.4.20"
|
| 55 |
|
| 56 |
print('=' * 70)
|
| 57 |
print('TMIDIX Python module')
|
|
|
|
| 18519 |
|
| 18520 |
###################################################################################
|
| 18521 |
|
| 18522 |
+
ALL_CHORDS_DELTAS = [
|
| 18523 |
+
[2, 2, 2, 2, 2, 2], [2, 2, 2, 2, 4], [2, 2, 2, 3, 3], [2, 2, 2, 6],
|
| 18524 |
+
[2, 2, 3, 5], [2, 2, 4, 4], [2, 2, 8], [2, 3, 3, 4], [2, 3, 7], [2, 4, 6],
|
| 18525 |
+
[2, 5, 5], [2, 10], [3, 3, 3, 3], [3, 3, 6], [3, 4, 5], [3, 9], [4, 4, 4],
|
| 18526 |
+
[4, 8], [5, 7], [6, 6]
|
| 18527 |
+
]
|
| 18528 |
+
|
| 18529 |
+
###################################################################################
|
| 18530 |
+
|
| 18531 |
+
def encode_delta_chord_tok(tones_chord):
|
| 18532 |
+
if len(tones_chord) > 1:
|
| 18533 |
+
return (ALL_CHORDS_DELTAS.index(
|
| 18534 |
+
list(sorted([(12 - tones_chord[-1] + tones_chord[0])] + [b-a
|
| 18535 |
+
for a, b in zip(tones_chord[:-1],
|
| 18536 |
+
tones_chord[1:])
|
| 18537 |
+
]))) * 12) + tones_chord[0]
|
| 18538 |
+
|
| 18539 |
+
else:
|
| 18540 |
+
return (len(ALL_CHORDS_DELTAS) * 12) + tones_chord[0]
|
| 18541 |
+
|
| 18542 |
+
###################################################################################
|
| 18543 |
+
|
| 18544 |
+
def encode_delta_chord_tok_raw(tones_chord):
|
| 18545 |
+
if len(tones_chord) > 1:
|
| 18546 |
+
return ALL_CHORDS_DELTAS.index(
|
| 18547 |
+
list(sorted([(12 - tones_chord[-1] + tones_chord[0])] + [b-a
|
| 18548 |
+
for a, b in zip(tones_chord[:-1],
|
| 18549 |
+
tones_chord[1:])
|
| 18550 |
+
])))
|
| 18551 |
+
|
| 18552 |
+
else:
|
| 18553 |
+
return len(ALL_CHORDS_DELTAS)
|
| 18554 |
+
|
| 18555 |
+
###################################################################################
|
| 18556 |
+
|
| 18557 |
+
def decode_delta_chord_tok(delta_chord_tok):
|
| 18558 |
+
|
| 18559 |
+
cho_tok = delta_chord_tok // 12
|
| 18560 |
+
base_tone = delta_chord_tok % 12
|
| 18561 |
+
|
| 18562 |
+
if cho_tok < len(ALL_CHORDS_DELTAS):
|
| 18563 |
+
delta_cho = ALL_CHORDS_DELTAS[cho_tok]
|
| 18564 |
+
|
| 18565 |
+
tones_chord = [base_tone]
|
| 18566 |
+
|
| 18567 |
+
for d in delta_cho:
|
| 18568 |
+
tones_chord.append((tones_chord[-1]+d) % 12)
|
| 18569 |
+
|
| 18570 |
+
return sorted(set(tones_chord))
|
| 18571 |
+
|
| 18572 |
+
else:
|
| 18573 |
+
return [base_tone]
|
| 18574 |
+
|
| 18575 |
+
###################################################################################
|
| 18576 |
+
|
| 18577 |
+
def decode_delta_chord_tok_raw(delta_chord_tok):
|
| 18578 |
+
|
| 18579 |
+
if delta_chord_tok < len(ALL_CHORDS_DELTAS):
|
| 18580 |
+
return ALL_CHORDS_DELTAS[delta_chord_tok]
|
| 18581 |
+
|
| 18582 |
+
else:
|
| 18583 |
+
return [0]
|
| 18584 |
+
|
| 18585 |
+
###################################################################################
|
| 18586 |
+
|
| 18587 |
print('Module loaded!')
|
| 18588 |
print('=' * 70)
|
| 18589 |
print('Enjoy! :)')
|