from mido import Message, MidiFile, MidiTrack
from mido import Message, MidiFile, MidiTrack
import pygame.midi as pm
import time
# mid = MidiFile()
# track = MidiTrack()
# mid.tracks.append(track)
#
# track.append(Message('program_change', program=12, time=0))
# track.append(Message('note_on', note=64, velocity=64, time=32))
# track.append(Message('note_off', note=64, velocity=127, time=32))
#e
# mid.save('new_song.mid')
import keyboard
import sys
import pynput
def on_press(key):
if(key==pynput.keyboard.KeyCode(char='e')):
mu=88
pitch=62
boot(mu,pitch)
if(key==pynput.keyboard.KeyCode(char='q')):
boot(88,60)
if (key == pynput.keyboard.KeyCode(char='w')):
boot(88,61)
if (key == pynput.keyboard.KeyCode(char='r')):
boot(88,64)
if (key == pynput.keyboard.KeyCode(char='t')):
boot(88,65)
if (key == pynput.keyboard.KeyCode(char='y')):
boot(88,67)
if (key == pynput.keyboard.KeyCode(char='u')):
boot(88,68)
if (key == pynput.keyboard.KeyCode(char='i')):
boot(88,69)
if (key == pynput.keyboard.KeyCode(char='o')):
boot(88,71)
if (key == pynput.keyboard.KeyCode(char='p')):
boot(88,72)
if (key == pynput.keyboard.KeyCode(char='a')):
boot(88,58)
if (key == pynput.keyboard.KeyCode(char='s')):
boot(88,57)
if (key == pynput.keyboard.KeyCode(char='d')):
boot(88,55)
if (key == pynput.keyboard.KeyCode(char='f')):
boot(88,54)
if (key == pynput.keyboard.KeyCode(char='g')):
boot(88,53)
if (key == pynput.keyboard.KeyCode(char='h')):
boot(88,51)
if (key == pynput.keyboard.KeyCode(char='j')):
boot(88,50)
if (key == pynput.keyboard.KeyCode(char='k')):
boot(88,48)
if (key == pynput.keyboard.KeyCode(char='l')):
boot(88,47)
if(key==pynput.keyboard.KeyCode(char='z')):
boot(88,46)
if(key==pynput.keyboard.KeyCode(char='x')):
boot(88,74)
if(key==pynput.keyboard.KeyCode(char='c')):
boot(88,75)
if(key==pynput.keyboard.KeyCode(char='v')):
boot(88,76)
if (key == pynput.keyboard.KeyCode(char='b')):
boot(88,78)
if(key==pynput.keyboard.KeyCode(char='n')):
boot(88,79)
if (key == pynput.keyboard.KeyCode(char='m')):
boot(88,81)
def boot(mu,pitch):
pm.init()
player = pm.Output(0)
BPM = 120
player.set_instrument(mu)
length = 0.3
player.note_on(pitch, 127)
time.sleep(length * 60 / BPM)
player.note_off(pitch, 127)
pm.quit()
with pynput.keyboard.Listener(on_press=on_press) as keyboard_listener:
keyboard_listener.join()
import pygame.midi as pm
import time
#e
import keyboard
import sys
import pynput
def on_press(key):
if(key==pynput.keyboard.KeyCode(char='e')):
mu=88
pitch=62
boot(mu,pitch)
if(key==pynput.keyboard.KeyCode(char='q')):
boot(88,60)
if (key == pynput.keyboard.KeyCode(char='w')):
boot(88,61)
if (key == pynput.keyboard.KeyCode(char='r')):
boot(88,64)
if (key == pynput.keyboard.KeyCode(char='t')):
boot(88,65)
if (key == pynput.keyboard.KeyCode(char='y')):
boot(88,67)
if (key == pynput.keyboard.KeyCode(char='u')):
boot(88,68)
if (key == pynput.keyboard.KeyCode(char='i')):
boot(88,69)
if (key == pynput.keyboard.KeyCode(char='o')):
boot(88,71)
if (key == pynput.keyboard.KeyCode(char='p')):
boot(88,72)
if (key == pynput.keyboard.KeyCode(char='a')):
boot(88,58)
if (key == pynput.keyboard.KeyCode(char='s')):
boot(88,57)
if (key == pynput.keyboard.KeyCode(char='d')):
boot(88,55)
if (key == pynput.keyboard.KeyCode(char='f')):
boot(88,54)
if (key == pynput.keyboard.KeyCode(char='g')):
boot(88,53)
if (key == pynput.keyboard.KeyCode(char='h')):
boot(88,51)
if (key == pynput.keyboard.KeyCode(char='j')):
boot(88,50)
if (key == pynput.keyboard.KeyCode(char='k')):
boot(88,48)
if (key == pynput.keyboard.KeyCode(char='l')):
boot(88,47)
if(key==pynput.keyboard.KeyCode(char='z')):
boot(88,46)
if(key==pynput.keyboard.KeyCode(char='x')):
boot(88,74)
if(key==pynput.keyboard.KeyCode(char='c')):
boot(88,75)
if(key==pynput.keyboard.KeyCode(char='v')):
boot(88,76)
if (key == pynput.keyboard.KeyCode(char='b')):
boot(88,78)
if(key==pynput.keyboard.KeyCode(char='n')):
boot(88,79)
if (key == pynput.keyboard.KeyCode(char='m')):
boot(88,81)
def boot(mu,pitch):
pm.init()
player = pm.Output(0)
BPM = 120
player.set_instrument(mu)
length = 0.3
player.note_on(pitch, 127)
time.sleep(length * 60 / BPM)
player.note_off(pitch, 127)
pm.quit()
反应太慢,效果太差,求改进
with pynput.keyboard.Listener(on_press=on_press) as keyboard_listener:
keyboard_listener.join()