23 lines
547 B
Python
23 lines
547 B
Python
from smnp.note.pitch import NotePitch
|
|
|
|
semitonesToIntervalName = {
|
|
0: "1",
|
|
1: "2m",
|
|
2: "2M",
|
|
3: "3m",
|
|
4: "3M",
|
|
5: "4",
|
|
6: "5d/4A",
|
|
7: "5",
|
|
8: "6m",
|
|
9: "6M",
|
|
10: "7m",
|
|
11: "7M"
|
|
}
|
|
|
|
def intervalToString(interval):
|
|
octaveInterval = int(abs(interval) / len(NotePitch))
|
|
pitchInterval = abs(interval) % len(NotePitch)
|
|
|
|
return (str(semitonesToIntervalName[pitchInterval]) + (f"(+{octaveInterval}')" if octaveInterval > 0 else ""))
|