[英]Python Pygame.midi get note octave
有一個代碼可以讀取在 midi 上按下的音符:
import pygame.midi
def number_to_note(number):
notes = ['c', 'c#', 'd', 'd#', 'e', 'f', 'f#', 'g', 'g#', 'a', 'a#', 'b']
return notes[number%12]
def readInput(input_device):
while True:
if input_device.poll():
event = input_device.read(1)[0]
data = event[0]
timestamp = event[1]
note_number = data[1]
velocity = data[2]
print(number_to_note(note_number))
note = number_to_note(note_number)
if __name__ == '__main__':
pygame.midi.init()
my_input = pygame.midi.Input(1)
readInput(my_input)
它說的是音符,但我如何得到音符的八度音階? 例如:不只是 A#,而是 A4#
你只需要用你的筆記做一些算術:
note = number%12
octave = (number - note) / 12
return str(octave) + notes[note]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.