如何用C++编写wah-wah音效?

6
我正在尝试学习如何编写wah-wah音效,只是出于兴趣:)
到目前为止,我已经做了很多研究,这个页面解释得最好。 http://www.geofex.com/Article_Folders/wahpedl/voicewah.htm
基本上,我只是在寻找任何简单的C++示例来生成Wah-wah (ooaaooaa)效果。
最终,一旦完成,我希望也能创建一个“eeeoooeeeoo”效果或“eeaaeeaa”效果:) 类似于元音合成,但用于音乐。
如果我找到任何好的示例,我会在这里链接它们。
......
我在数学方面遇到了麻烦。
我需要生成哪些波形才能制作出“E”声音? 我需要生成哪些波形才能制作出“O”声音?
我确实尝试过按照那个页面的方法制作两个频率,并调整两个频率的谐波,但它仍然听起来像电子蜂鸣声,而不是元音。
...... http://www.acoustics.hut.fi/publications/files/theses/lemmetty_mst/chap3.html 这看起来不错。 有一些数字我可以使用。 希望它听起来像“元音”。
编辑:我尝试在页面上提到的那些频率(100hz,600hz,1000hz,2500hz)制作一些声音。 它听起来不像“元音”。 可能非常轻微,但不正确。
所以显然我需要做更多的频率才能制作出合适的“a”声音。 虽然我不确定需要哪些频率。
我可以录制自己的声音。 然后可能下载其他人说元音的声音。 然后找一个频谱分析器应用程序。 但是我尝试搜索频谱分析器应用程序,找到的第一个应用程序不能处理声音文件,只能处理麦克风输入。 看起来要找到一个满足我的需求的频谱分析器应用程序需要付出更多的努力。 我可能需要编写自己的应用程序。
可惜我找不到一个资源,列出生成特定元音所需的频率列表…这样我就可以从中学习。 然后利用这些知识开发出一个类似于wahwah的“ioio”或“eaea”声音的“元音滤波器”。
现在,我需要付出的努力量:
下载好的元音
测试4个应用程序,看看它们是否可以分析文件中的频谱。
从那个频谱生成频率
测试频率,看看它是否听起来像“元音”

现在这已经不是“有趣”的事情了,它变成了工作。可惜啊,我还有其他(真正的)工作需要完成。我会把这个项目暂时搁置,直到我找到足够的答案,让这个项目变得有趣起来。


3
如果有人能在任何地方创作出一首动听的歌曲,我会感到惊奇。 - karlphillip
2
这将取决于平台。你在哪个平台上或者针对哪个平台? - Billy ONeal
4
最简单的方法是编写一个C++程序,然后意外地用一个新麦克风的录音覆盖了它。 - Arafangion
不一定依赖于平台。如果您不想编写插件,可以使用类似PortAudio或libsndfile的东西。 - Matt K
现在,我只是在编写一个.wav文件。我只是产生声音,而不是改变传入的声音。一旦我了解如何生成“e”或“o”或“a”的声音,我就会更了解如何过滤声音,使它们听起来像元音 :) - user213265
1个回答

3
关于发音像元音的问题,你应该看一下共振峰。这对合成声音非常有帮助。
通过共振峰滤波器传递您的声音可能会精确地产生您想要的效果。
编辑:我坚持认为共振峰滤波器不是沃沃效果。沃沃效果只是一个简单的带通滤波器。共振峰滤波器更加复杂。

我正在尝试制作一个共振峰滤波器。我想要自己理解这个东西,而不是只使用别人预先制作好的东西 :) 我做这个只是为了好玩,不是为了工作。 - user213265
1
我不理解你的评论,因为wah-wah效果本身并不是共振滤波器,它只是一个通带滤波器。要简单得多。我的意思是,对我来说它们几乎没有关联。这就是我的回答。 - Stephane Rolland
1
我建议你阅读《计算机音乐教程-Curtis Road》这本书,以便开始学习计算机音乐。 - Stephane Rolland
"Elements of Computer Music - F. Richard Moore" 是一本很好的算法示例书籍,涉及计算机音乐的各个方面。 - Stephane Rolland
1
请加入“音乐数字信号处理邮件列表”,以便向专业人士提出您深度相关的DSP问题。 - Stephane Rolland
1
一个共振峰滤波器是由两个或更多并联的带通滤波器组成的系列。 - Wouter van Nifterick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接