Spaces:
Running
Running
admin
commited on
Commit
Β·
c74f66c
1
Parent(s):
bf44bd7
sync ms
Browse files
app.py
CHANGED
@@ -62,6 +62,12 @@ def get_args(parser: argparse.ArgumentParser):
|
|
62 |
default=False,
|
63 |
help="whether to show control code",
|
64 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
return parser.parse_args()
|
66 |
|
67 |
|
@@ -115,6 +121,7 @@ def generate_music(
|
|
115 |
temperature = args.temperature
|
116 |
seed = args.seed
|
117 |
show_control_code = args.show_control_code
|
|
|
118 |
print(" Hyper parms ".center(60, "#"), "\n")
|
119 |
args_dict: dict = vars(args)
|
120 |
for arg in args_dict.keys():
|
@@ -123,14 +130,14 @@ def generate_music(
|
|
123 |
print("\n", " Output tunes ".center(60, "#"))
|
124 |
start_time = time.time()
|
125 |
for i in range(num_tunes):
|
126 |
-
title = f"T:{emo} Fragment\n"
|
127 |
artist = f"C:Generated by AI\n"
|
128 |
tune = f"X:{str(i + 1)}\n{title}{artist}{prompt}"
|
129 |
lines = re.split(r"(\n)", tune)
|
130 |
tune = ""
|
131 |
skip = False
|
132 |
for line in lines:
|
133 |
-
if show_control_code or line[:2] not in ["S:", "B:", "E:"]:
|
134 |
if not skip:
|
135 |
print(line, end="")
|
136 |
tune += line
|
@@ -279,7 +286,7 @@ def generate_music(
|
|
279 |
return generate_music(args, emo, weights)
|
280 |
|
281 |
|
282 |
-
def
|
283 |
if os.path.exists(TEMP_DIR):
|
284 |
shutil.rmtree(TEMP_DIR)
|
285 |
|
@@ -296,6 +303,7 @@ def inference(dataset: str, v: str, a: str, add_chord: bool):
|
|
296 |
|
297 |
parser = argparse.ArgumentParser()
|
298 |
args = get_args(parser)
|
|
|
299 |
return generate_music(
|
300 |
args,
|
301 |
emo=emotion,
|
@@ -303,7 +311,7 @@ def inference(dataset: str, v: str, a: str, add_chord: bool):
|
|
303 |
)
|
304 |
|
305 |
|
306 |
-
def
|
307 |
dataset: str,
|
308 |
pitch_std: str,
|
309 |
mode: str,
|
@@ -328,6 +336,7 @@ def infer(
|
|
328 |
|
329 |
parser = argparse.ArgumentParser()
|
330 |
args = get_args(parser)
|
|
|
331 |
return generate_music(
|
332 |
args,
|
333 |
emo=emotion,
|
@@ -405,7 +414,7 @@ if __name__ == "__main__":
|
|
405 |
with gr.Column():
|
406 |
gr.Video(
|
407 |
"./tutorial.mp4",
|
408 |
-
label="
|
409 |
show_download_button=False,
|
410 |
show_share_button=False,
|
411 |
)
|
@@ -433,7 +442,7 @@ if __name__ == "__main__":
|
|
433 |
value="High",
|
434 |
)
|
435 |
chord_check = gr.Checkbox(
|
436 |
-
label="Generate chords (
|
437 |
value=False,
|
438 |
)
|
439 |
gen_btn = gr.Button("Generate")
|
@@ -462,7 +471,7 @@ if __name__ == "__main__":
|
|
462 |
label="Volume (dB)",
|
463 |
)
|
464 |
chord_check_2 = gr.Checkbox(
|
465 |
-
label="Generate chords (
|
466 |
value=False,
|
467 |
)
|
468 |
gen_btn_2 = gr.Button("Generate")
|
@@ -508,7 +517,7 @@ if __name__ == "__main__":
|
|
508 |
)
|
509 |
|
510 |
gen_btn.click(
|
511 |
-
fn=
|
512 |
inputs=[dataset_option, valence_radio, arousal_radio, chord_check],
|
513 |
outputs=[
|
514 |
wav_audio,
|
@@ -522,7 +531,7 @@ if __name__ == "__main__":
|
|
522 |
)
|
523 |
|
524 |
gen_btn_2.click(
|
525 |
-
fn=
|
526 |
inputs=[
|
527 |
dataset_option,
|
528 |
std_option,
|
|
|
62 |
default=False,
|
63 |
help="whether to show control code",
|
64 |
)
|
65 |
+
parser.add_argument(
|
66 |
+
"-template",
|
67 |
+
type=bool,
|
68 |
+
default=True,
|
69 |
+
help="whether to generate by features",
|
70 |
+
)
|
71 |
return parser.parse_args()
|
72 |
|
73 |
|
|
|
121 |
temperature = args.temperature
|
122 |
seed = args.seed
|
123 |
show_control_code = args.show_control_code
|
124 |
+
use_template = args.template
|
125 |
print(" Hyper parms ".center(60, "#"), "\n")
|
126 |
args_dict: dict = vars(args)
|
127 |
for arg in args_dict.keys():
|
|
|
130 |
print("\n", " Output tunes ".center(60, "#"))
|
131 |
start_time = time.time()
|
132 |
for i in range(num_tunes):
|
133 |
+
title = f"T:{emo} Fragment\n" if use_template else "T:Melody Fragment\n"
|
134 |
artist = f"C:Generated by AI\n"
|
135 |
tune = f"X:{str(i + 1)}\n{title}{artist}{prompt}"
|
136 |
lines = re.split(r"(\n)", tune)
|
137 |
tune = ""
|
138 |
skip = False
|
139 |
for line in lines:
|
140 |
+
if show_control_code or line[:2] not in ["S:", "B:", "E:", "D:"]:
|
141 |
if not skip:
|
142 |
print(line, end="")
|
143 |
tune += line
|
|
|
286 |
return generate_music(args, emo, weights)
|
287 |
|
288 |
|
289 |
+
def infer_by_template(dataset: str, v: str, a: str, add_chord: bool):
|
290 |
if os.path.exists(TEMP_DIR):
|
291 |
shutil.rmtree(TEMP_DIR)
|
292 |
|
|
|
303 |
|
304 |
parser = argparse.ArgumentParser()
|
305 |
args = get_args(parser)
|
306 |
+
args.template = True
|
307 |
return generate_music(
|
308 |
args,
|
309 |
emo=emotion,
|
|
|
311 |
)
|
312 |
|
313 |
|
314 |
+
def infer_by_features(
|
315 |
dataset: str,
|
316 |
pitch_std: str,
|
317 |
mode: str,
|
|
|
336 |
|
337 |
parser = argparse.ArgumentParser()
|
338 |
args = get_args(parser)
|
339 |
+
args.template = False
|
340 |
return generate_music(
|
341 |
args,
|
342 |
emo=emotion,
|
|
|
414 |
with gr.Column():
|
415 |
gr.Video(
|
416 |
"./tutorial.mp4",
|
417 |
+
label="Video demo",
|
418 |
show_download_button=False,
|
419 |
show_share_button=False,
|
420 |
)
|
|
|
442 |
value="High",
|
443 |
)
|
444 |
chord_check = gr.Checkbox(
|
445 |
+
label="Generate chords (coming soon)",
|
446 |
value=False,
|
447 |
)
|
448 |
gen_btn = gr.Button("Generate")
|
|
|
471 |
label="Volume (dB)",
|
472 |
)
|
473 |
chord_check_2 = gr.Checkbox(
|
474 |
+
label="Generate chords (coming soon)",
|
475 |
value=False,
|
476 |
)
|
477 |
gen_btn_2 = gr.Button("Generate")
|
|
|
517 |
)
|
518 |
|
519 |
gen_btn.click(
|
520 |
+
fn=infer_by_template,
|
521 |
inputs=[dataset_option, valence_radio, arousal_radio, chord_check],
|
522 |
outputs=[
|
523 |
wav_audio,
|
|
|
531 |
)
|
532 |
|
533 |
gen_btn_2.click(
|
534 |
+
fn=infer_by_features,
|
535 |
inputs=[
|
536 |
dataset_option,
|
537 |
std_option,
|