Upload TMIDIX.py
Browse files
TMIDIX.py
CHANGED
@@ -7101,13 +7101,25 @@ def escore_notes_averages(escore_notes,
|
|
7101 |
else:
|
7102 |
durs = [e[durs_index] for e in escore_notes if e[chans_index] != 9]
|
7103 |
|
|
|
|
|
|
|
|
|
|
|
|
|
7104 |
if return_ptcs_and_vels:
|
7105 |
if average_drums:
|
7106 |
ptcs = [e[ptcs_index] for e in escore_notes]
|
7107 |
vels = [e[vels_index] for e in escore_notes]
|
7108 |
else:
|
7109 |
ptcs = [e[ptcs_index] for e in escore_notes if e[chans_index] != 9]
|
7110 |
-
vels = [e[vels_index] for e in escore_notes if e[chans_index] != 9]
|
|
|
|
|
|
|
|
|
|
|
|
|
7111 |
|
7112 |
return [sum(times) / len(times), sum(durs) / len(durs), sum(ptcs) / len(ptcs), sum(vels) / len(vels)]
|
7113 |
|
@@ -9567,13 +9579,13 @@ def escore_notes_to_text_description(escore_notes, song_name='', artist_name='')
|
|
9567 |
|
9568 |
if len(escore_times) > 0:
|
9569 |
if len(escore_times) == len(set(escore_times)):
|
9570 |
-
comp_type = 'melody
|
9571 |
|
9572 |
elif len(escore_times) >= len(set(escore_times)) and 1 in Counter(escore_times).values():
|
9573 |
comp_type = 'melody and accompaniment'
|
9574 |
|
9575 |
elif len(escore_times) >= len(set(escore_times)) and 1 not in Counter(escore_times).values():
|
9576 |
-
comp_type = 'accompaniment
|
9577 |
|
9578 |
else:
|
9579 |
comp_type = 'drums only'
|
@@ -9592,7 +9604,7 @@ def escore_notes_to_text_description(escore_notes, song_name='', artist_name='')
|
|
9592 |
|
9593 |
drums_pitches = [e[4] for e in escore_notes if e[3] == 9]
|
9594 |
|
9595 |
-
most_common_drums = [alpha_str(Notenum2percussion[p[0]]) for p in Counter(drums_pitches).most_common(3)]
|
9596 |
|
9597 |
#==============================================================================
|
9598 |
|
@@ -9691,7 +9703,7 @@ def escore_notes_to_text_description(escore_notes, song_name='', artist_name='')
|
|
9691 |
|
9692 |
description += comp_type + ' composition'
|
9693 |
|
9694 |
-
if comp_type != '
|
9695 |
|
9696 |
if drums_present:
|
9697 |
description += ' with drums'
|
@@ -9723,12 +9735,12 @@ def escore_notes_to_text_description(escore_notes, song_name='', artist_name='')
|
|
9723 |
description += 'is played on a solo ' + instruments[0] + '.'
|
9724 |
|
9725 |
else:
|
9726 |
-
description += 'features ' + NUMERALS[len(instruments)-1] + ' instruments: '
|
9727 |
description += ', '.join(instruments[:-1]) + ' and ' + instruments[-1] + '.'
|
9728 |
|
9729 |
description += '\n'
|
9730 |
|
9731 |
-
if drums_present:
|
9732 |
description += 'The drum track has predominant '
|
9733 |
description += ', '.join(most_common_drums[:-1]) + ' and ' + most_common_drums[-1] + '.'
|
9734 |
|
|
|
7101 |
else:
|
7102 |
durs = [e[durs_index] for e in escore_notes if e[chans_index] != 9]
|
7103 |
|
7104 |
+
if len(times) == 0:
|
7105 |
+
times = [0]
|
7106 |
+
|
7107 |
+
if len(durs) == 0:
|
7108 |
+
durs = [0]
|
7109 |
+
|
7110 |
if return_ptcs_and_vels:
|
7111 |
if average_drums:
|
7112 |
ptcs = [e[ptcs_index] for e in escore_notes]
|
7113 |
vels = [e[vels_index] for e in escore_notes]
|
7114 |
else:
|
7115 |
ptcs = [e[ptcs_index] for e in escore_notes if e[chans_index] != 9]
|
7116 |
+
vels = [e[vels_index] for e in escore_notes if e[chans_index] != 9]
|
7117 |
+
|
7118 |
+
if len(ptcs) == 0:
|
7119 |
+
ptcs = [0]
|
7120 |
+
|
7121 |
+
if len(vels) == 0:
|
7122 |
+
vels = [0]
|
7123 |
|
7124 |
return [sum(times) / len(times), sum(durs) / len(durs), sum(ptcs) / len(ptcs), sum(vels) / len(vels)]
|
7125 |
|
|
|
9579 |
|
9580 |
if len(escore_times) > 0:
|
9581 |
if len(escore_times) == len(set(escore_times)):
|
9582 |
+
comp_type = 'monophonic melody'
|
9583 |
|
9584 |
elif len(escore_times) >= len(set(escore_times)) and 1 in Counter(escore_times).values():
|
9585 |
comp_type = 'melody and accompaniment'
|
9586 |
|
9587 |
elif len(escore_times) >= len(set(escore_times)) and 1 not in Counter(escore_times).values():
|
9588 |
+
comp_type = 'accompaniment'
|
9589 |
|
9590 |
else:
|
9591 |
comp_type = 'drums only'
|
|
|
9604 |
|
9605 |
drums_pitches = [e[4] for e in escore_notes if e[3] == 9]
|
9606 |
|
9607 |
+
most_common_drums = [alpha_str(Notenum2percussion[p[0]]) for p in Counter(drums_pitches).most_common(3) if p[0] in Notenum2percussion]
|
9608 |
|
9609 |
#==============================================================================
|
9610 |
|
|
|
9703 |
|
9704 |
description += comp_type + ' composition'
|
9705 |
|
9706 |
+
if comp_type != 'drum track':
|
9707 |
|
9708 |
if drums_present:
|
9709 |
description += ' with drums'
|
|
|
9735 |
description += 'is played on a solo ' + instruments[0] + '.'
|
9736 |
|
9737 |
else:
|
9738 |
+
description += 'features ' + NUMERALS[max(0, min(15, len(instruments)-1))] + ' instruments: '
|
9739 |
description += ', '.join(instruments[:-1]) + ' and ' + instruments[-1] + '.'
|
9740 |
|
9741 |
description += '\n'
|
9742 |
|
9743 |
+
if drums_present and most_common_drums:
|
9744 |
description += 'The drum track has predominant '
|
9745 |
description += ', '.join(most_common_drums[:-1]) + ' and ' + most_common_drums[-1] + '.'
|
9746 |
|