Spaces:
Running
on
Zero
Running
on
Zero
Update app.py
Browse files
app.py
CHANGED
@@ -391,79 +391,6 @@ def generate_callback_wrapper(input_midi,
|
|
391 |
|
392 |
#==================================================================================
|
393 |
|
394 |
-
def add_batch(batch_number, final_composition, generated_batches, block_lines, model_state=[]):
|
395 |
-
|
396 |
-
if generated_batches:
|
397 |
-
final_composition.extend(generated_batches[batch_number])
|
398 |
-
|
399 |
-
# Save MIDI to a temporary file
|
400 |
-
midi_score = save_midi(final_composition, model_selector=model_state[2])
|
401 |
-
|
402 |
-
block_lines.append(midi_score[-1][1] / 1000)
|
403 |
-
|
404 |
-
# MIDI plot
|
405 |
-
midi_plot = TMIDIX.plot_ms_SONG(midi_score,
|
406 |
-
plot_title='Guided Accompaniment Transformer Composition',
|
407 |
-
block_lines_times_list=block_lines[:-1],
|
408 |
-
return_plt=True)
|
409 |
-
|
410 |
-
# File name
|
411 |
-
fname = 'Guided-Accompaniment-Transformer-Music-Composition'
|
412 |
-
|
413 |
-
# Save audio to a temporary file
|
414 |
-
midi_audio = midi_to_colab_audio(fname + '.mid',
|
415 |
-
soundfont_path=SOUDFONT_PATH,
|
416 |
-
sample_rate=16000,
|
417 |
-
output_for_gradio=True
|
418 |
-
)
|
419 |
-
|
420 |
-
print('Added batch #', batch_number)
|
421 |
-
print('=' * 70)
|
422 |
-
|
423 |
-
return (16000, midi_audio), midi_plot, fname+'.mid', final_composition, generated_batches, block_lines
|
424 |
-
|
425 |
-
else:
|
426 |
-
return None, None, None, [], [], []
|
427 |
-
|
428 |
-
#==================================================================================
|
429 |
-
|
430 |
-
def remove_batch(batch_number, num_tokens, final_composition, generated_batches, block_lines, model_state=[]):
|
431 |
-
|
432 |
-
if final_composition:
|
433 |
-
|
434 |
-
if len(final_composition) > num_tokens:
|
435 |
-
final_composition = final_composition[:-num_tokens]
|
436 |
-
block_lines.pop()
|
437 |
-
|
438 |
-
# Save MIDI to a temporary file
|
439 |
-
midi_score = save_midi(final_composition, model_selector=model_state[2])
|
440 |
-
|
441 |
-
# MIDI plot
|
442 |
-
midi_plot = TMIDIX.plot_ms_SONG(midi_score,
|
443 |
-
plot_title='Guided Accompaniment Transformer Composition',
|
444 |
-
block_lines_times_list=block_lines[:-1],
|
445 |
-
return_plt=True)
|
446 |
-
|
447 |
-
# File name
|
448 |
-
fname = 'Guided-Accompaniment-Transformer-Music-Composition'
|
449 |
-
|
450 |
-
# Save audio to a temporary file
|
451 |
-
midi_audio = midi_to_colab_audio(fname + '.mid',
|
452 |
-
soundfont_path=SOUDFONT_PATH,
|
453 |
-
sample_rate=16000,
|
454 |
-
output_for_gradio=True
|
455 |
-
)
|
456 |
-
|
457 |
-
print('Removed batch #', batch_number)
|
458 |
-
print('=' * 70)
|
459 |
-
|
460 |
-
return (16000, midi_audio), midi_plot, fname+'.mid', final_composition, generated_batches, block_lines
|
461 |
-
|
462 |
-
else:
|
463 |
-
return None, None, None, [], [], []
|
464 |
-
|
465 |
-
#==================================================================================
|
466 |
-
|
467 |
def reset(final_composition=[], generated_batches=[], block_lines=[], model_state=[]):
|
468 |
|
469 |
final_composition = []
|
@@ -579,27 +506,6 @@ with gr.Blocks() as demo:
|
|
579 |
outputs
|
580 |
)
|
581 |
|
582 |
-
gr.Markdown("## Add/Remove batch")
|
583 |
-
|
584 |
-
batch_number = gr.Slider(0, NUM_OUT_BATCHES-1, value=0, step=1, label="Batch number to add/remove")
|
585 |
-
|
586 |
-
add_btn = gr.Button("Add batch", variant="primary")
|
587 |
-
remove_btn = gr.Button("Remove batch", variant="stop")
|
588 |
-
|
589 |
-
final_audio_output = gr.Audio(label="Final MIDI audio", format="mp3", elem_id="midi_audio")
|
590 |
-
final_plot_output = gr.Plot(label="Final MIDI plot")
|
591 |
-
final_file_output = gr.File(label="Final MIDI file")
|
592 |
-
|
593 |
-
#==================================================================================
|
594 |
-
|
595 |
-
add_btn.click(add_batch, [batch_number, final_composition, generated_batches, block_lines, model_state],
|
596 |
-
[final_audio_output, final_plot_output, final_file_output, final_composition, generated_batches, block_lines])
|
597 |
-
|
598 |
-
#==================================================================================
|
599 |
-
|
600 |
-
remove_btn.click(remove_batch, [batch_number, num_gen_tokens, final_composition, generated_batches, block_lines, model_state],
|
601 |
-
[final_audio_output, final_plot_output, final_file_output, final_composition, generated_batches, block_lines])
|
602 |
-
|
603 |
#==================================================================================
|
604 |
|
605 |
demo.unload(reset_demo)
|
|
|
391 |
|
392 |
#==================================================================================
|
393 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
394 |
def reset(final_composition=[], generated_batches=[], block_lines=[], model_state=[]):
|
395 |
|
396 |
final_composition = []
|
|
|
506 |
outputs
|
507 |
)
|
508 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
509 |
#==================================================================================
|
510 |
|
511 |
demo.unload(reset_demo)
|