silaseic commited on
Commit
eb9378a
1 Parent(s): ff8f8b3

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +34 -2
main.py CHANGED
@@ -1,9 +1,41 @@
1
  import gradio as gr
2
  import torch
3
  import requests
 
 
4
  from torchvision import transforms
5
-
6
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
 
8
  def predict(inp):
9
  return inp
 
1
  import gradio as gr
2
  import torch
3
  import requests
4
+ import music21
5
+ import subprocess
6
  from torchvision import transforms
7
+ from PIL import Image
8
+
9
+ DEFAULT_FILE_NAME = 'sheet_music'
10
+
11
+
12
+ # converting everything into the key of C major or A minor
13
+ def convert_to_key():
14
+ # major conversions
15
+ majors = dict(
16
+ [("A-", 4), ("A", 3), ("B-", 2), ("B", 1), ("C", 0), ("D-", -1), ("D", -2), ("E-", -3), ("E", -4), ("F", -5),
17
+ ("G-", 6), ("G", 5)])
18
+ minors = dict(
19
+ [("A-", 1), ("A", 0), ("B-", -1), ("B", -2), ("C", -3), ("D-", -4), ("D", -5), ("E-", 6), ("E", 5), ("F", 4),
20
+ ("G-", 3), ("G", 2)])
21
+
22
+ score = music21.converter.parse(f'{DEFAULT_FILE_NAME}.musicxml')
23
+ key = score.analyze('key')
24
+ file_name = 'C_file'
25
+ if key.mode == "major":
26
+ halfSteps = majors[key.tonic.name]
27
+ file_name = 'Am_file'
28
+
29
+ elif key.mode == "minor":
30
+ halfSteps = minors[key.tonic.name]
31
+
32
+ newscore = score.transpose(halfSteps)
33
+ # key = newscore.analyze('key')
34
+ # print(key.tonic.name, key.mode)
35
+ newscore.write('musicxml', f'{file_name}.musicxml')
36
+ # newscore.write('musicxml.pdf', fp="file.pdf")
37
+
38
+ return f'{file_name}.musicxml', f'{file_name}_teaser.png'
39
 
40
  def predict(inp):
41
  return inp