import tkinter as tk
import pygame.midi
初始化 pygame.midi
pygame.midi.init()
获取 MIDI 输出设备
midi_out = pygame.midi.Output(0)
音符对应的 MIDI 编号
notes = [60, 62, 64, 65, 67, 69, 71]
def play_note(note_number):
midi_out.note_on(note_number, 100)
def stop_note(note_number):
midi_out.note_off(note_number, 100)
class PianoKey(tk.Button):
def init(self, master, note_number):
super().init(master, bg=“white”, activebackground=“lightgray”, command=self.on_click)
self.note_number = note_number
def on_click(self):
play_note(self.note_number)
root = tk.Tk()
root.title(“Seven-Key Piano”)
设置窗口大小
root.geometry(“400x200”)
key_width = 50
key_height = 150
x_offset = 30
for note_number in notes:
key = PianoKey(root, note_number)
key.place(x=x_offset, y=20, width=key_width, height=key_height)
x_offset += key_width
root.mainloop()
关闭 MIDI 输出设备
midi_out.close()
pygame.midi.quit()