作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作一个非常基本的程序,该程序可以在Python中将midi文件转换为单个波形,因此作为一个非常基本的测试,我使用np.cos生成了一些波形,然后将它们加在一起,但是,当我尝试使用sounddevice播放我产生的波形,听起来真的很奇怪。我绝不是声音和信号概念方面的专家;对我来说,这是一个相当新的主题,因此非常感谢您的帮助。
这是代码:
import sounddevice as sd
import numpy as np
def make_wave(freq, duration, sample_rate = 22050):
wave = []
for i in range(0,duration*sample_rate):
wave.append(i/((sample_rate/(2*np.pi))/freq))
wave = np.cos(np.stack(wave))
return wave
A = make_wave(440, 10)
Cs = make_wave(554.37, 10)
E = make_wave(659.25, 10)
sd.play(A+Cs+E, 22050)
最佳答案
对于实际上碰巧遇到相同或相似问题的人,事实证明,这实际上是一个非常简单的问题。因为加总的总振幅大于1,所以计算机音频会吓跑,并且会发生一些削波,从而产生怪异的噪音,因此,我只需要将振幅限制为0.1。
新代码:
import sounddevice as sd
import numpy as np
def make_wave(freq, duration, sample_rate = 22050):
wave = []
for i in range(0,duration*sample_rate):
wave.append(i/((sample_rate/(2*np.pi))/freq))
wave = np.sin(np.stack(wave))
return wave
A = make_wave(440, 10)
Cs = make_wave(554.37, 10)
E = make_wave(659.25, 10)
chord = A+Cs+E
chord = chord*0.1/np.max(chord)
sd.play(chord, 22050)
希望我通过写这篇文章至少可以帮助别人!
关于python - 结合多个wave在python中一次演奏多个音符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63166059/
我想在 Kivy 中加载和播放“.mid”MIDI 文件,但主要是在移动平台(即 IOS 和 Android)上。 我假设,我不想深入了解基于原生 C/C++ 的东西的复杂性(即为了避免交叉编译,我不
我是一名优秀的程序员,十分优秀!