1

したがって、私のコードは次のとおりです。

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() ライブラリで可能ですか?

4

1 に答える 1

3

次のようにwhileループを使用しても:

 import winsound

 while True:
    winsound.Beep(100, 100)

間にまだ小さな休止があり、堅実な音のようには聞こえず、それ以上速くなることはできません

あなたはまだそれを試すことができますが、長いビープ音のように聞こえるようになるとは思いませんが、winsoundにはサウンドがあるので、 Winsound ドキュメントwinsound.PlaySound(sound, flags)はここにあります

あなたができることはPygameを使用することです。それはより多くの作業になりますが、おそらく音楽を作成するためのはるかに優れた方法です

Pygame Musicを使用して音楽をロードして再生することができます。ファイルから各サウンドをロードする必要があるため、よりインタラクティブにすることができます。

これらすべてを実行したくない場合は、Python In Musicを参照してください。おそらく開始するのに適した場所です。

于 2013-07-02T10:43:14.903 に答える