【发布时间】:2017-01-13 21:43:25
【问题描述】:
我正在尝试使用 python 3 上的 winsound 模块制作一个同时播放多个音符(和弦)的函数。 我创建了一个名为 playNote() 的函数,它可以接收格式为“C4”(中间 C)的音符和持续时间,以毫秒为单位。例如:
playNote('C4', 1000)
所以我尝试制作一个可以像这样演奏和弦的函数:
def playChord (notes, length):
notes *= length
for counter in range(0,length//100):
playNote(notes[counter], 1)
这将被称为:
playChord(['C4', 'E4', 'G4'], 1000)
但这并没有发出声音。我把它改成:
def playChord (notes, length):
notes *= length
for counter in range(0,length//100):
playNote(notes[counter], 100)
但是,当然,只是一个接一个地播放音符,因为 playNote() 持续时间为 100,这违背了一个接一个地连续播放音符的最初目的,足以听起来像是在同时播放.
我查看了一个名为 pyFluidSynth 的模块,但它似乎与 64 位版本的 python 不兼容。
我做错了什么?有没有更简单的方法来做到这一点?
【问题讨论】:
-
@TerryJanReedy,pyFuildSynth 似乎与 64 位版本的 python 不兼容。
-
尝试其他 SO 问题,Python 不需要。在网上搜索“用 winsound 演奏和弦”。以上只是其中之一。
标签: python python-3.x audio