asigalov61 commited on
Commit
3cedcf5
·
verified ·
1 Parent(s): efb4345

Upload TMIDIX.py

Browse files
Files changed (1) hide show
  1. TMIDIX.py +66 -1
TMIDIX.py CHANGED
@@ -51,7 +51,7 @@ r'''############################################################################
51
 
52
  ###################################################################################
53
 
54
- __version__ = "26.4.19"
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! :)')