Update app.py
Browse files
app.py
CHANGED
@@ -27,7 +27,7 @@ import matplotlib.pyplot as plt
|
|
27 |
# =================================================================================================
|
28 |
|
29 |
@spaces.GPU
|
30 |
-
def
|
31 |
print('=' * 70)
|
32 |
print('Req start time: {:%Y-%m-%d %H:%M:%S}'.format(datetime.datetime.now(PDT)))
|
33 |
start_time = reqtime.time()
|
@@ -85,9 +85,9 @@ def GenerateAccompaniment(input_midi, input_num_tokens, input_conditioning_type,
|
|
85 |
|
86 |
print('=' * 70)
|
87 |
print('Input file name:', fn)
|
88 |
-
print('
|
|
|
89 |
print('Conditioning type:', input_conditioning_type)
|
90 |
-
print('Strip notes:', input_strip_notes)
|
91 |
print('=' * 70)
|
92 |
|
93 |
#===============================================================================
|
@@ -293,20 +293,22 @@ def GenerateAccompaniment(input_midi, input_num_tokens, input_conditioning_type,
|
|
293 |
|
294 |
output = []
|
295 |
|
296 |
-
|
297 |
-
|
298 |
-
for m in melody_chords2[:num_prime_chords]:
|
299 |
output.extend(m)
|
300 |
|
301 |
-
for ct in tqdm.tqdm(melody_chords2[
|
302 |
-
|
303 |
-
|
304 |
-
|
|
|
|
|
|
|
|
|
305 |
y = 646
|
306 |
|
307 |
while y > 645:
|
308 |
|
309 |
-
x = torch.
|
310 |
|
311 |
with ctx:
|
312 |
out = model.generate(x,
|
@@ -420,10 +422,11 @@ def GenerateAccompaniment(input_midi, input_num_tokens, input_conditioning_type,
|
|
420 |
|
421 |
#========================================================
|
422 |
|
423 |
-
print('
|
424 |
print('Req end time: {:%Y-%m-%d %H:%M:%S}'.format(datetime.datetime.now(PDT)))
|
425 |
-
print('
|
426 |
print('Req execution time:', (reqtime.time() - start_time), 'sec')
|
|
|
427 |
|
428 |
return output_midi_title, output_midi_summary, output_midi, output_audio, output_plot
|
429 |
|
@@ -453,11 +456,11 @@ if __name__ == "__main__":
|
|
453 |
gr.Markdown("## Upload your MIDI or select a sample example MIDI")
|
454 |
|
455 |
input_midi = gr.File(label="Input MIDI", file_types=[".midi", ".mid", ".kar"])
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
|
460 |
-
run_btn = gr.Button("
|
461 |
|
462 |
gr.Markdown("## Generation results")
|
463 |
|
@@ -467,26 +470,26 @@ if __name__ == "__main__":
|
|
467 |
output_plot = gr.Plot(label="Output MIDI score plot")
|
468 |
output_midi = gr.File(label="Output MIDI file", file_types=[".mid"])
|
469 |
|
470 |
-
run_event = run_btn.click(
|
471 |
[output_midi_title, output_midi_summary, output_midi, output_audio, output_plot])
|
472 |
|
473 |
gr.Examples(
|
474 |
-
[["Chords-Progressions-Transformer-Piano-Seed-1.mid", 128, "Chords"
|
475 |
-
["Chords-Progressions-Transformer-Piano-Seed-2.mid", 128, "Chords-Times"
|
476 |
-
["Chords-Progressions-Transformer-Piano-Seed-3.mid", 128, "Chords-Times
|
477 |
-
["Chords-Progressions-Transformer-Piano-Seed-4.mid", 128, "Chords"
|
478 |
-
["Chords-Progressions-Transformer-Piano-Seed-5.mid", 128, "Chords-Times"
|
479 |
-
["Chords-Progressions-Transformer-Piano-Seed-6.mid", 128, "Chords-Times
|
480 |
-
["Chords-Progressions-Transformer-MI-Seed-1.mid", 128, "Chords"
|
481 |
-
["Chords-Progressions-Transformer-MI-Seed-2.mid", 128, "Chords-Times"
|
482 |
-
["Chords-Progressions-Transformer-MI-Seed-3.mid", 128, "Chords-Times
|
483 |
-
["Chords-Progressions-Transformer-MI-Seed-4.mid", 128, "Chords-Times"
|
484 |
-
["Chords-Progressions-Transformer-MI-Seed-5.mid", 128, "Chords"
|
485 |
-
["Chords-Progressions-Transformer-MI-Seed-6.mid", 128, "Chords-Times
|
486 |
],
|
487 |
-
[input_midi,
|
488 |
[output_midi_title, output_midi_summary, output_midi, output_audio, output_plot],
|
489 |
-
|
490 |
cache_examples=False,
|
491 |
)
|
492 |
|
|
|
27 |
# =================================================================================================
|
28 |
|
29 |
@spaces.GPU
|
30 |
+
def Generate_Chords(input_midi, input_num_prime_chords, input_num_gen_chords, input_conditioning_type):
|
31 |
print('=' * 70)
|
32 |
print('Req start time: {:%Y-%m-%d %H:%M:%S}'.format(datetime.datetime.now(PDT)))
|
33 |
start_time = reqtime.time()
|
|
|
85 |
|
86 |
print('=' * 70)
|
87 |
print('Input file name:', fn)
|
88 |
+
print('Num prime chords:', input_num_prime_chords)
|
89 |
+
print('Num gen chords:', input_num_gen_chords)
|
90 |
print('Conditioning type:', input_conditioning_type)
|
|
|
91 |
print('=' * 70)
|
92 |
|
93 |
#===============================================================================
|
|
|
293 |
|
294 |
output = []
|
295 |
|
296 |
+
for m in melody_chords2[:input_num_prime_chords]:
|
|
|
|
|
297 |
output.extend(m)
|
298 |
|
299 |
+
for ct in tqdm.tqdm(melody_chords2[input_num_prime_chords:]):
|
300 |
+
|
301 |
+
if input_conditioning_type == 'Chords':
|
302 |
+
output.extend(ct[:1])
|
303 |
+
|
304 |
+
else:
|
305 |
+
output.extend(ct[:2])
|
306 |
+
|
307 |
y = 646
|
308 |
|
309 |
while y > 645:
|
310 |
|
311 |
+
x = torch.LongTensor(song).to(DEVICE)
|
312 |
|
313 |
with ctx:
|
314 |
out = model.generate(x,
|
|
|
422 |
|
423 |
#========================================================
|
424 |
|
425 |
+
print('=' * 70)
|
426 |
print('Req end time: {:%Y-%m-%d %H:%M:%S}'.format(datetime.datetime.now(PDT)))
|
427 |
+
print('=' * 70)
|
428 |
print('Req execution time:', (reqtime.time() - start_time), 'sec')
|
429 |
+
print('*' * 70)
|
430 |
|
431 |
return output_midi_title, output_midi_summary, output_midi, output_audio, output_plot
|
432 |
|
|
|
456 |
gr.Markdown("## Upload your MIDI or select a sample example MIDI")
|
457 |
|
458 |
input_midi = gr.File(label="Input MIDI", file_types=[".midi", ".mid", ".kar"])
|
459 |
+
input_num_prime_chords = gr.Slider(1, 128, value=1, step=1, label="Number of prime chords")
|
460 |
+
input_num_gen_chords = gr.Slider(4, 128, value=32, step=1, label="Number of composition chords to generate progression for")
|
461 |
+
input_conditioning_type = gr.Radio(["Chords", "Chords-Times"], value="Chords", label="Conditioning type")
|
462 |
|
463 |
+
run_btn = gr.Button("Generate Chords", variant="primary")
|
464 |
|
465 |
gr.Markdown("## Generation results")
|
466 |
|
|
|
470 |
output_plot = gr.Plot(label="Output MIDI score plot")
|
471 |
output_midi = gr.File(label="Output MIDI file", file_types=[".mid"])
|
472 |
|
473 |
+
run_event = run_btn.click(Generate_Chords, [input_midi, input_num_prime_chords, input_num_gen_chords, input_conditioning_type],
|
474 |
[output_midi_title, output_midi_summary, output_midi, output_audio, output_plot])
|
475 |
|
476 |
gr.Examples(
|
477 |
+
[["Chords-Progressions-Transformer-Piano-Seed-1.mid", 16, 128, "Chords"],
|
478 |
+
["Chords-Progressions-Transformer-Piano-Seed-2.mid", 16, 128, "Chords-Times"],
|
479 |
+
["Chords-Progressions-Transformer-Piano-Seed-3.mid", 16, 128, "Chords-Times"],
|
480 |
+
["Chords-Progressions-Transformer-Piano-Seed-4.mid", 16, 128, "Chords"],
|
481 |
+
["Chords-Progressions-Transformer-Piano-Seed-5.mid", 16, 128, "Chords-Times"],
|
482 |
+
["Chords-Progressions-Transformer-Piano-Seed-6.mid", 16, 128, "Chords-Times"],
|
483 |
+
["Chords-Progressions-Transformer-MI-Seed-1.mid", 16, 128, "Chords"],
|
484 |
+
["Chords-Progressions-Transformer-MI-Seed-2.mid", 16, 128, "Chords-Times"],
|
485 |
+
["Chords-Progressions-Transformer-MI-Seed-3.mid", 16, 128, "Chords-Times"],
|
486 |
+
["Chords-Progressions-Transformer-MI-Seed-4.mid", 16, 128, "Chords-Times"],
|
487 |
+
["Chords-Progressions-Transformer-MI-Seed-5.mid", 16, 128, "Chords"],
|
488 |
+
["Chords-Progressions-Transformer-MI-Seed-6.mid", 16, 128, "Chords-Times"]
|
489 |
],
|
490 |
+
[input_midi, input_num_prime_chords, input_num_gen_chords, input_conditioning_type],
|
491 |
[output_midi_title, output_midi_summary, output_midi, output_audio, output_plot],
|
492 |
+
Generate_Chords,
|
493 |
cache_examples=False,
|
494 |
)
|
495 |
|