我正在尝试使用 pygame.midi 模块播放声音。这是我的代码
使用 :
#!/usr/bin/env python
import pygame.midi
import time
pygame.midi.init()
print pygame.midi.get_default_output_id()
print pygame.midi.get_device_info(0)
player = pygame.midi.Output(0)
player.set_instrument(0)
print 'Playing...'
player.note_on(64)
time.sleep(1)
player.note_off(64)
print 'Played'
pygame.midi.quit()
我在搜索示例时发现了类似的代码,这是输出:
('ALSA', 'Midi 通过端口 0', 0, 1, 0)
正在播放...
Played
PortMidi 呼叫失败...
PortMidi:“错误指针”
键入 ENTER...
没有播放声音,并且我没有找到任何有关 PortMidi 错误的信息
pygame.midi 退出后令人惊讶地发生。
你有什么主意吗?我正在运行一个基于 debian 的 Linux 发行版,如果这样的话
可以帮助。
有两个小问题。声音没有播放是因为你没有设置velocity http://electronicmusic.wikia.com/wiki/Velocity的注释。尝试将其设置为 127(最大)以听到声音。另一个问题是您在退出之前没有删除最后的 MIDI 输出对象。这会导致最后出现“PortMidi:‘Bad point’”错误。所以这是应该正常工作的更正代码:
import pygame.midi
import time
pygame.midi.init()
player = pygame.midi.Output(0)
player.set_instrument(0)
player.note_on(64, 127)
time.sleep(1)
player.note_off(64, 127)
del player
pygame.midi.quit()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)