Я хочу создать программу, которая производит одновременные звуки.Тем не менее, у меня возникли проблемы с обходом с pyaudio.Я считаю, что выходная частота отличается от той, которая была бы у меня при создании одной ноты.
Я далёк от опыта в Python и Pyaudio, особенно, поэтому мне действительно нужна помощь.То, что я пытаюсь сделать, это наложить коды на ось (не совсем уверен, какой из них подходит), а затем просто записать этот массив в потоке.
#make the sine functions
sample1 = (np.sin(2*np.pi*np.arange(fs*length1)*f1/fs)).astype(np.float32)
plt.plot(sample1, label='sample1')
sample2 = (np.sin(2*np.pi*np.arange(fs*length1)*0.5*f1/fs)).astype(np.float32)
sample3 = (np.sin(2*np.pi*np.arange(fs*length1)*1324*f1/fs)).astype(np.float32)
print(sample1)
#stack them
chunk1 = np.stack([sample1, sample2, sample3], axis=1)
#send to pyaudio
stream = p.open(format=pyaudio.paFloat32, channels=1, rate=fs, output=True)
stream.write(chunk1.astype(np.float32).tostring())
stream.close()
p.terminate()
Хотя это работает (как-то), я не очень счастлив, потому что звук кажется другим, чем если бы я просто проигрывал этот звук (частоты разные).