Python 如何使用Pygame玩正弦波/方波?

Python 如何使用Pygame玩正弦波/方波?,python,python-3.x,pygame,playback,Python,Python 3.x,Pygame,Playback,我正在尝试使用Pygame的sndarray.make_sound函数来播放正弦波。但是,当我使用此阵列播放时: np.sin(2*np.pi*np.arange(44100)*440/44100).astype(np.float32) 其中,440是频率,44100是采样率,而是一个响亮的刺耳噪音。这可以使用pyaudio.pyaudio(),但是我需要一些不会阻止执行的东西。这种情况也发生在方波上,不过在那里它什么都不起作用。我正在使用channels=1作为mixer.pre_init和m

我正在尝试使用Pygame的
sndarray.make_sound
函数来播放正弦波。但是,当我使用此阵列播放时:

np.sin(2*np.pi*np.arange(44100)*440/44100).astype(np.float32)

其中,
440
是频率,
44100
是采样率,而是一个响亮的刺耳噪音。这可以使用
pyaudio.pyaudio()
,但是我需要一些不会阻止执行的东西。这种情况也发生在方波上,不过在那里它什么都不起作用。我正在使用
channels=1
作为
mixer.pre_init
mixer.init
函数


我怎样才能解决这个问题?如果有用的话,我用的是Mac电脑。提前谢谢

您可以将numpy数组直接加载到对象,然后:

导入pygame
将numpy作为np导入
pygame.mixer.init()
buffer=np.sin(2*np.pi*np.arange(44100)*440/44100).astype(np.float32)
sound=pygame.mixer.sound(缓冲区)
声音。播放(0)
pygame.time.wait(int(sound.get_length()*1000))