asigalov61 commited on
Commit
fa306c1
·
verified ·
1 Parent(s): 4d34e84

Upload TMIDIX.py

Browse files
Files changed (1) hide show
  1. TMIDIX.py +19 -7
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 only'
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 only'
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 != 'drums only':
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