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