asigalov61 commited on
Commit
e2f25e4
1 Parent(s): d34cdb3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -56
app.py CHANGED
@@ -19,13 +19,22 @@ in_space = os.getenv("SYSTEM") == "spaces"
19
  #=================================================================================================
20
 
21
  def generate(
22
- start_tokens,
23
- seq_len,
24
- max_seq_len = 2048,
25
- temperature = 0.9,
26
- verbose=False,
27
- return_prime=False,
28
- progress=gr.Progress()):
 
 
 
 
 
 
 
 
 
29
 
30
  out = torch.LongTensor([start_tokens])
31
 
@@ -41,7 +50,7 @@ def generate(
41
  try:
42
 
43
  x = out[:, -max_seq_len:]
44
-
45
  torch_in = x.tolist()[0]
46
 
47
  logits = torch.FloatTensor(session.run(None, {'input': [torch_in]})[0])[:, -1]
@@ -60,16 +69,7 @@ def generate(
60
 
61
  else:
62
  return out[:, st:]
63
-
64
- #=================================================================================================
65
-
66
- def create_msg(name, data):
67
- return {"name": name, "data": data}
68
 
69
- def GenerateMIDI():
70
-
71
- melody_chords_f = generate([3087, 3073+1, 3075+1], 512)
72
-
73
  melody_chords_f = melody_chords_f.tolist()[0]
74
 
75
  print('=' * 70)
@@ -141,7 +141,7 @@ def GenerateMIDI():
141
 
142
  audio = synthesis(TMIDIX.score2opus(output), 'SGM-v2.01-YamahaGrand-Guit-Bass-v2.7.sf2')
143
 
144
- yield output, "Allegro-Music-Transformer-Music-Composition.mid", (44100, audio), [create_msg("visualizer_end", None)]
145
 
146
  #=================================================================================================
147
 
@@ -151,38 +151,7 @@ def cancel_run(output_midi_seq):
151
  with open(f"Allegro-Music-Transformer-Music-Composition.mid", 'wb') as f:
152
  f.write(TMIDIX.score2midi(output_midi_seq))
153
  audio = synthesis(TMIDIX.score2opus(output_midi_seq), 'SGM-v2.01-YamahaGrand-Guit-Bass-v2.7.sf2')
154
- return "Allegro-Music-Transformer-Music-Composition.mid", (44100, audio), [create_msg("visualizer_end", None)]
155
-
156
- def load_javascript(dir="javascript"):
157
- scripts_list = glob.glob(f"app.js")
158
- javascript = ""
159
- for path in scripts_list:
160
- with open(path, "r", encoding="utf8") as jsfile:
161
- javascript += f"\n<!-- {path} --><script>{jsfile.read()}</script>"
162
- template_response_ori = gr.routes.templates.TemplateResponse
163
-
164
- def template_response(*args, **kwargs):
165
- res = template_response_ori(*args, **kwargs)
166
- res.body = res.body.replace(
167
- b'</head>', f'{javascript}</head>'.encode("utf8"))
168
- res.init_headers()
169
- return res
170
-
171
- gr.routes.templates.TemplateResponse = template_response
172
-
173
-
174
- class JSMsgReceiver(gr.HTML):
175
-
176
- def __init__(self, **kwargs):
177
- super().__init__(elem_id="msg_receiver", visible=False, **kwargs)
178
-
179
- def postprocess(self, y):
180
- if y:
181
- y = f"<p>{json.dumps(y)}</p>"
182
- return super().postprocess(y)
183
-
184
- def get_block_name(self) -> str:
185
- return "html"
186
 
187
  #=================================================================================================
188
 
@@ -197,7 +166,6 @@ if __name__ == "__main__":
197
  session = rt.InferenceSession('Allegro_Music_Transformer_Small_Trained_Model_56000_steps_0.9399_loss_0.7374_acc.onnx', providers=['CUDAExecutionProvider'])
198
  print('Done!')
199
 
200
- #load_javascript()
201
  app = gr.Blocks()
202
  with app:
203
  gr.Markdown("<h1 style='text-align: center; margin-bottom: 1rem'>Allegro Music Transformer</h1>")
@@ -208,9 +176,7 @@ if __name__ == "__main__":
208
  "(https://colab.research.google.com/github/asigalov61/Allegro-Music-Transformer/blob/main/Allegro_Music_Transformer_Composer.ipynb)"
209
  " for faster execution and endless generation"
210
  )
211
-
212
- js_msg = JSMsgReceiver()
213
-
214
  run_btn = gr.Button("generate", variant="primary")
215
  stop_btn = gr.Button("stop and output")
216
 
@@ -218,7 +184,7 @@ if __name__ == "__main__":
218
  output_midi_visualizer = gr.HTML(elem_id="midi_visualizer_container")
219
  output_audio = gr.Audio(label="output audio", format="mp3", elem_id="midi_audio")
220
  output_midi = gr.File(label="output midi", file_types=[".mid"])
221
- run_event = run_btn.click(GenerateMIDI, [], [output_midi_seq, output_midi, output_audio, js_msg])
222
- stop_btn.click(cancel_run, output_midi_seq, [output_midi, output_audio, js_msg], cancels=run_event, queue=False)
223
 
224
  app.queue(2).launch(server_port=opt.port, share=opt.share, inbrowser=True)
 
19
  #=================================================================================================
20
 
21
  def generate(
22
+
23
+
24
+ #=================================================================================================
25
+
26
+ def create_msg(name, data):
27
+ return {"name": name, "data": data}
28
+
29
+ def GenerateMIDI():
30
+
31
+ start_tokens = [3087, 3073+1, 3075+1]
32
+ seq_len = 512
33
+ max_seq_len = 2048,
34
+ temperature = 0.9,
35
+ verbose=False,
36
+ return_prime=False,
37
+ progress=gr.Progress()
38
 
39
  out = torch.LongTensor([start_tokens])
40
 
 
50
  try:
51
 
52
  x = out[:, -max_seq_len:]
53
+
54
  torch_in = x.tolist()[0]
55
 
56
  logits = torch.FloatTensor(session.run(None, {'input': [torch_in]})[0])[:, -1]
 
69
 
70
  else:
71
  return out[:, st:]
 
 
 
 
 
72
 
 
 
 
 
73
  melody_chords_f = melody_chords_f.tolist()[0]
74
 
75
  print('=' * 70)
 
141
 
142
  audio = synthesis(TMIDIX.score2opus(output), 'SGM-v2.01-YamahaGrand-Guit-Bass-v2.7.sf2')
143
 
144
+ yield output, "Allegro-Music-Transformer-Music-Composition.mid", (44100, audio)
145
 
146
  #=================================================================================================
147
 
 
151
  with open(f"Allegro-Music-Transformer-Music-Composition.mid", 'wb') as f:
152
  f.write(TMIDIX.score2midi(output_midi_seq))
153
  audio = synthesis(TMIDIX.score2opus(output_midi_seq), 'SGM-v2.01-YamahaGrand-Guit-Bass-v2.7.sf2')
154
+ return "Allegro-Music-Transformer-Music-Composition.mid", (44100, audio)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
155
 
156
  #=================================================================================================
157
 
 
166
  session = rt.InferenceSession('Allegro_Music_Transformer_Small_Trained_Model_56000_steps_0.9399_loss_0.7374_acc.onnx', providers=['CUDAExecutionProvider'])
167
  print('Done!')
168
 
 
169
  app = gr.Blocks()
170
  with app:
171
  gr.Markdown("<h1 style='text-align: center; margin-bottom: 1rem'>Allegro Music Transformer</h1>")
 
176
  "(https://colab.research.google.com/github/asigalov61/Allegro-Music-Transformer/blob/main/Allegro_Music_Transformer_Composer.ipynb)"
177
  " for faster execution and endless generation"
178
  )
179
+
 
 
180
  run_btn = gr.Button("generate", variant="primary")
181
  stop_btn = gr.Button("stop and output")
182
 
 
184
  output_midi_visualizer = gr.HTML(elem_id="midi_visualizer_container")
185
  output_audio = gr.Audio(label="output audio", format="mp3", elem_id="midi_audio")
186
  output_midi = gr.File(label="output midi", file_types=[".mid"])
187
+ run_event = run_btn.click(GenerateMIDI, [], [output_midi_seq, output_midi, output_audio])
188
+ stop_btn.click(cancel_run, output_midi_seq, [output_midi, output_audio], cancels=run_event, queue=False)
189
 
190
  app.queue(2).launch(server_port=opt.port, share=opt.share, inbrowser=True)