所以我的代码是这样的:
import winsound
import time
length = 250
class Notes():
def frequency(halfNotesFromA4):
value = 440 * ((2)**(1.0/12.0))**halfNotesFromA4
return (int)(value)
def processNote(note):
if(note == 'C'):return Notes.frequency(3)
if(note == 'D'):return Notes.frequency(5)
if(note == 'E'):return Notes.frequency(7)
if(note == 'F'):return Notes.frequency(8)
if(note == 'G'):return Notes.frequency(10)
if(note == 'A'):return Notes.frequency(12)
if(note == 'B'):return Notes.frequency(14)
song = "EDCDEEE"
noteList = list(song)
print(noteList)
for note in noteList:
print("Doing ", note)
frequency = Notes.processNote(note)
winsound.Beep(frequency, length)
它工作正常,但我遇到的问题是每次蜂鸣声之间有一个暂停。我希望不停地播放声音,这听起来像是真正的音乐。 winsound.Beep()库可以实现吗?
答案 0 :(得分:2)
即使你使用像这样的while循环:
import winsound
while True:
winsound.Beep(100, 100)
之间仍然有一个小小的停顿,它听起来不像一个坚实的音符,你不能比这快得多
你仍然可以尝试但我不认为你可以听到只是一声长哔声但是winsound确实有winsound.PlaySound(sound, flags)
所以你可以在这里加载声音Winsound Docs
你可以做的就是使用Pygame它会有更多的工作,但它可能是一种更好的创作音乐方式
您可以使用Pygame Music来加载和播放音乐,并确保您可以使其更具互动性,您需要从文件中加载每个声音
如果你不想做所有那些看看Python In Music这可能是一个好的起点