Spaces:
Build error
Build error
Update main.py
Browse files
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
|