asigalov61 commited on
Commit
f285af7
·
verified ·
1 Parent(s): 66d8263

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -13
app.py CHANGED
@@ -47,7 +47,7 @@ SOUDFONT_PATH = 'SGM-v2.01-YamahaGrand-Guit-Bass-v2.7.sf2'
47
  #==================================================================================
48
 
49
  print('Loading MIDI Loops Small Dataset...')
50
- print('-' * 70)
51
 
52
  midi_loops_dataset = TMIDIX.Tegridy_Any_Pickle_File_Reader('MIDI-Loops-Dataset-Small-CC-BY-NC-SA.pickle')
53
 
@@ -143,6 +143,8 @@ def Mix_Loops(input_midi,
143
 
144
  #===============================================================================
145
 
 
 
146
  chunk_len = 5
147
  chunk_chords_set = 13
148
 
@@ -160,10 +162,15 @@ def Mix_Loops(input_midi,
160
 
161
  all_chords_chunks = np.array(all_chords_chunks)
162
 
 
 
 
 
 
163
  #==================================================================
164
 
 
165
  print('=' * 70)
166
- print('Generating...')
167
 
168
  max_num_loops = 4
169
  max_tries = 100
@@ -176,7 +183,8 @@ def Mix_Loops(input_midi,
176
  while song_loops_counter < max_num_loops:
177
 
178
  if stries % 25 == 0:
179
- print('Attempt', stries)
 
180
  stries += 1
181
 
182
  midxs = []
@@ -229,8 +237,7 @@ def Mix_Loops(input_midi,
229
  if midx not in rmidxs and midx not in song_midxs:
230
 
231
  song_midxs.append(midx)
232
-
233
-
234
  sidx = int(midx // loops_mult)
235
  song_idxs.append(sidx)
236
 
@@ -241,7 +248,6 @@ def Mix_Loops(input_midi,
241
  song_scores.append(song[2])
242
 
243
  song_loops_counter += 1
244
- #print(song_loops_counter)
245
 
246
  else:
247
  if len(rmidxs) > 1 and rtries < max_tries:
@@ -250,13 +256,11 @@ def Mix_Loops(input_midi,
250
  song_names.pop()
251
  song_chords.pop()
252
  song_scores.pop()
253
- #print('revert')
254
  song_loops_counter -= 1
255
  rtries += 1
256
  rmidxs.append(midx)
257
 
258
  else:
259
- #print('end')
260
  end = True
261
  break
262
 
@@ -269,6 +273,10 @@ def Mix_Loops(input_midi,
269
 
270
  #===============================================================================
271
 
 
 
 
 
272
  final_song = []
273
  last_max_dur = 0
274
  last_dtime = 0
@@ -281,9 +289,9 @@ def Mix_Loops(input_midi,
281
 
282
  score = copy.deepcopy(src_score)
283
 
284
- for j in range(2):
285
 
286
- if j == 1:
287
 
288
  if i > 0:
289
  last_chord = score[[e for e in range(len(score)) if score[e][0] > 0][-1]:]
@@ -301,6 +309,7 @@ def Mix_Loops(input_midi,
301
  rscore = list(reversed(score))
302
 
303
  ccount = 0
 
304
  for r in range(len(rscore)):
305
  if rscore[r][0] > 0:
306
  ccount += 1
@@ -333,16 +342,19 @@ def Mix_Loops(input_midi,
333
 
334
  final_song.extend(extended_score)
335
 
 
 
 
 
 
336
  #===============================================================================
337
 
338
  print('Rendering results...')
339
 
340
  print('=' * 70)
341
- print('Sample MIDI events:', final_song[:3])
342
  print('=' * 70)
343
 
344
- final_song_abs = TMIDIX.delta_score_to_abs_score(final_song)
345
-
346
  output_score, patches, overflow_patches = TMIDIX.patch_enhanced_score_notes(final_song_abs)
347
 
348
  fn1 = "MIDI-Loops-Mixer-Composition"
 
47
  #==================================================================================
48
 
49
  print('Loading MIDI Loops Small Dataset...')
50
+ print('=' * 70)
51
 
52
  midi_loops_dataset = TMIDIX.Tegridy_Any_Pickle_File_Reader('MIDI-Loops-Dataset-Small-CC-BY-NC-SA.pickle')
53
 
 
143
 
144
  #===============================================================================
145
 
146
+ print('Prepping dataset...')
147
+
148
  chunk_len = 5
149
  chunk_chords_set = 13
150
 
 
162
 
163
  all_chords_chunks = np.array(all_chords_chunks)
164
 
165
+ print('Done!')
166
+ print('=' * 70)
167
+ print('Number of chords chunks:', len(all_chords_chunks))
168
+ print('=' * 70)
169
+
170
  #==================================================================
171
 
172
+ print('Mixing loops...')
173
  print('=' * 70)
 
174
 
175
  max_num_loops = 4
176
  max_tries = 100
 
183
  while song_loops_counter < max_num_loops:
184
 
185
  if stries % 25 == 0:
186
+ print('Mixing attempt #', stries)
187
+
188
  stries += 1
189
 
190
  midxs = []
 
237
  if midx not in rmidxs and midx not in song_midxs:
238
 
239
  song_midxs.append(midx)
240
+
 
241
  sidx = int(midx // loops_mult)
242
  song_idxs.append(sidx)
243
 
 
248
  song_scores.append(song[2])
249
 
250
  song_loops_counter += 1
 
251
 
252
  else:
253
  if len(rmidxs) > 1 and rtries < max_tries:
 
256
  song_names.pop()
257
  song_chords.pop()
258
  song_scores.pop()
 
259
  song_loops_counter -= 1
260
  rtries += 1
261
  rmidxs.append(midx)
262
 
263
  else:
 
264
  end = True
265
  break
266
 
 
273
 
274
  #===============================================================================
275
 
276
+ print('Creating final MIDI score...')
277
+
278
+ loops_mult = 2
279
+
280
  final_song = []
281
  last_max_dur = 0
282
  last_dtime = 0
 
289
 
290
  score = copy.deepcopy(src_score)
291
 
292
+ for j in range(loops_mult):
293
 
294
+ if j > 0:
295
 
296
  if i > 0:
297
  last_chord = score[[e for e in range(len(score)) if score[e][0] > 0][-1]:]
 
309
  rscore = list(reversed(score))
310
 
311
  ccount = 0
312
+
313
  for r in range(len(rscore)):
314
  if rscore[r][0] > 0:
315
  ccount += 1
 
342
 
343
  final_song.extend(extended_score)
344
 
345
+ final_song_abs = TMIDIX.delta_score_to_abs_score(final_song)
346
+
347
+ print('Done!')
348
+ print('=' * 70)
349
+
350
  #===============================================================================
351
 
352
  print('Rendering results...')
353
 
354
  print('=' * 70)
355
+ print('Sample MIDI events:', final_song_abs[:3])
356
  print('=' * 70)
357
 
 
 
358
  output_score, patches, overflow_patches = TMIDIX.patch_enhanced_score_notes(final_song_abs)
359
 
360
  fn1 = "MIDI-Loops-Mixer-Composition"