Upload TMIDIX.py
Browse files
TMIDIX.py
CHANGED
@@ -51,7 +51,7 @@ r'''############################################################################
|
|
51 |
|
52 |
###################################################################################
|
53 |
|
54 |
-
__version__ = "25.9.
|
55 |
|
56 |
print('=' * 70)
|
57 |
print('TMIDIX Python module')
|
@@ -14900,7 +14900,7 @@ def add_smooth_melody_to_enhanced_score_notes(escore_notes,
|
|
14900 |
melody_patch=40,
|
14901 |
melody_start_chord=0,
|
14902 |
min_notes_gap=0,
|
14903 |
-
exclude_durs=[1
|
14904 |
adv_flattening=True,
|
14905 |
extend_durs=True,
|
14906 |
max_mel_vels=127,
|
@@ -14959,6 +14959,74 @@ def add_smooth_melody_to_enhanced_score_notes(escore_notes,
|
|
14959 |
|
14960 |
###################################################################################
|
14961 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14962 |
print('Module loaded!')
|
14963 |
print('=' * 70)
|
14964 |
print('Enjoy! :)')
|
|
|
51 |
|
52 |
###################################################################################
|
53 |
|
54 |
+
__version__ = "25.9.22"
|
55 |
|
56 |
print('=' * 70)
|
57 |
print('TMIDIX Python module')
|
|
|
14900 |
melody_patch=40,
|
14901 |
melody_start_chord=0,
|
14902 |
min_notes_gap=0,
|
14903 |
+
exclude_durs=[1],
|
14904 |
adv_flattening=True,
|
14905 |
extend_durs=True,
|
14906 |
max_mel_vels=127,
|
|
|
14959 |
|
14960 |
###################################################################################
|
14961 |
|
14962 |
+
def sorted_chords_to_full_chords(chords):
|
14963 |
+
|
14964 |
+
cchords = []
|
14965 |
+
|
14966 |
+
for c in chords:
|
14967 |
+
tones_chord = ALL_CHORDS_SORTED[c]
|
14968 |
+
|
14969 |
+
if tones_chord not in ALL_CHORDS_FULL:
|
14970 |
+
tones_chord = check_and_fix_tones_chord(tones_chord)
|
14971 |
+
|
14972 |
+
cchords.append(ALL_CHORDS_FULL.index(tones_chord))
|
14973 |
+
|
14974 |
+
return cchords
|
14975 |
+
|
14976 |
+
###################################################################################
|
14977 |
+
|
14978 |
+
def full_chords_to_sorted_chords(chords):
|
14979 |
+
|
14980 |
+
cchords = []
|
14981 |
+
|
14982 |
+
for c in chords:
|
14983 |
+
tones_chord = ALL_CHORDS_FULL[c]
|
14984 |
+
|
14985 |
+
if tones_chord not in ALL_CHORDS_SORTED:
|
14986 |
+
tones_chord = check_and_fix_tones_chord(tones_chord, use_full_chords=False)
|
14987 |
+
|
14988 |
+
cchords.append(ALL_CHORDS_SORTED.index(tones_chord))
|
14989 |
+
|
14990 |
+
return cchords
|
14991 |
+
|
14992 |
+
###################################################################################
|
14993 |
+
|
14994 |
+
def chords_to_escore_notes(chords,
|
14995 |
+
use_full_chords=False,
|
14996 |
+
chords_dtime=500,
|
14997 |
+
add_melody=True,
|
14998 |
+
add_texture=True,
|
14999 |
+
):
|
15000 |
+
|
15001 |
+
if use_full_chords:
|
15002 |
+
CHORDS = ALL_CHORDS_FULL
|
15003 |
+
|
15004 |
+
else:
|
15005 |
+
CHORDS = ALL_CHORDS_SORTED
|
15006 |
+
|
15007 |
+
score = []
|
15008 |
+
|
15009 |
+
dtime = 0
|
15010 |
+
|
15011 |
+
dur = chords_dtime
|
15012 |
+
|
15013 |
+
for c in chords:
|
15014 |
+
|
15015 |
+
if add_melody:
|
15016 |
+
score.append(['note', dtime, dur, 3, CHORDS[c][0]+72, 115+CHORDS[c][0], 40])
|
15017 |
+
|
15018 |
+
for cc in CHORDS[c]:
|
15019 |
+
score.append(['note', dtime, dur, 0, cc+48, 30+cc+48, 0])
|
15020 |
+
|
15021 |
+
if random.randint(0, 1) and add_texture:
|
15022 |
+
score.append(['note', dtime, dur, 0, cc+60, 20+cc+60, 0])
|
15023 |
+
|
15024 |
+
dtime += chords_dtime
|
15025 |
+
|
15026 |
+
return score
|
15027 |
+
|
15028 |
+
###################################################################################
|
15029 |
+
|
15030 |
print('Module loaded!')
|
15031 |
print('=' * 70)
|
15032 |
print('Enjoy! :)')
|