我最近开始在大学使用 python,我希望能够在我的示波器上显示 python 的图。我以前使用别人的代码将我的范围用作矢量显示:
https://www.youtube.com/watch?v=oXR4yCge4AU
在“XY 模式”中,示波器使用不同的电压作为 x 和 y 坐标,如视频中所示,并且通常使用来自计算机左右音频通道的声音来完成。
所以我在想,如果我可以使用数组中的值来操纵每个音频通道的波形,那么应该可以在示波器上显示绘图。我找到了几个运行音频或合成常规波形的示例,但我想知道是否有办法通过更多控制来控制音频输出?
- 编辑 -
我找到了一个从函数生成正弦的代码示例:
import struct
import numpy as np
samplingRate = 44100
freq = 440
samples = 44100
x = np.arange(samples*100)
y = 100*np.sin(2* np.pi * freq * x / samplingRate)
f = open('test.wav', 'wb')
for i in y:
print(i)
f.write(struct.pack('b',int(i)))
f.close()
但是,如果我尝试使用更复杂的功能:
x = np.arange(samples*100)
#y = 100*np.sin(2* np.pi * freq * x / samplingRate)
y = 100*(x^4 + 7*x^3 + 8*x^2 + x) * freq / samplingRate
我收到以下错误:
10.276643990929704
10.166893424036282
10.136961451247165
153.3015873015873
Traceback (most recent call last):
File "audio_test.py", line 28, in <module>
f.write(struct.pack('b',int(i)))
struct.error: byte format requires -128 <= number <= 127