diff --git "a/\346\227\240\346\272\220\350\234\202\351\270\243\345\231\250/assets/code/NumberedMusicalNotation.py" "b/\346\227\240\346\272\220\350\234\202\351\270\243\345\231\250/assets/code/NumberedMusicalNotation.py" index 404e0759afebb86375b449381641e48e4592c89c..5b284a559bfee59566a853151559d90675369c02 100644 --- "a/\346\227\240\346\272\220\350\234\202\351\270\243\345\231\250/assets/code/NumberedMusicalNotation.py" +++ "b/\346\227\240\346\272\220\350\234\202\351\270\243\345\231\250/assets/code/NumberedMusicalNotation.py" @@ -59,14 +59,18 @@ class NumberedMusicalNotation: realRate = self.scaleDict[scaleKey] * math.pow(2, upNumber) * (1 / math.pow(2, downNumber)) - wholeNote = (60 / self.beatSpeed) * self.beatNumber + quarterNote = (60 / self.beatSpeed) * self.beatNumber * (1 / 4) + upNumber = monophonic.count('.') downNumber = monophonic.count('_') - voiceTime = wholeNote * (1 / 4) * (1 / math.pow(2, downNumber)) - if(upNumber == 1): - voiceTime *= 2 - elif(upNumber == 3): - voiceTime *= 4 + halfNumber = monophonic.count('*') + + voiceTime = quarterNote * (1 / math.pow(2, downNumber)) + + if(halfNumber >= 1): + voiceTime *= 1.5 + + voiceTime += quarterNote * upNumber if(realRate != 0): self.tone(int(realRate * math.pow(2, preAdd)), int(voiceTime * 1000))