Open wjlee0908 opened 5 years ago
note_defs = {
-4 : ("g5", 79),
-3 : ("f5", 77),
-2 : ("e5", 76),
-1 : ("d5", 74),
0 : ("c5", 72),
1 : ("b4", 71),
2 : ("a4", 69),
3 : ("g4", 67),
4 : ("f4", 65),
5 : ("e4", 64),
6 : ("d4", 62),
7 : ("c4", 60),
8 : ("b3", 59),
9 : ("a3", 57),
10 : ("g3", 55),
11 : ("f3", 53),
12 : ("e3", 52),
13 : ("d3", 50),
14 : ("c3", 48),
15 : ("b2", 47),
16 : ("a2", 45),
17 : ("f2", 53),
}
self.note = note_def[0] # 음정 string
self.pitch = note_def[1] # 음정 midi에 들어가는 int
if any(n for n in sharp_notes if n.note[0] == self.note[0]):
self.note += "#"
self.pitch += 1
if any(n for n in flat_notes if n.note[0] == self.note[0]):
self.note += "b"
self.pitch -= 1
.note가 'b3'처럼 string인데 .note[0] 만 비교하면 8:'b3'랑 15:'b2'랑 같은 걸로 인식해서 샾이랑 음표 다른 자리에 있는데 같은 위치에 있는 걸로 인식해버리지 않을까
줄에서 # , b 다른 것도 있던 데 이거는 제한할까요? (fire.jpg)
다시 확인해 보니 샾이나 플랫을 찾으면 그거랑 일치하는 모든 음표의 pitch를 +1함. 조표(악보 첫 부분의 #,b) 만 있으면 잘 작동하나, 악보 바로 뒤에 붙어있는 b,#을 모든 음표에 적용해 버리는 문제가 있음
코드는 있으나 샘플 악보에 샾, 플랫이 없음