admin commited on
Commit
c74f66c
Β·
1 Parent(s): bf44bd7
Files changed (1) hide show
  1. app.py +18 -9
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 inference(dataset: str, v: str, a: str, add_chord: bool):
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 infer(
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="Tutorial",
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 (Coming soon)",
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 (Coming soon)",
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=inference,
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=infer,
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,