我的学位是音频工程,但我对编程很新.我想学习如何在编程环境中使用音频,部分原因是我可以通过有趣的项目更好地学习C++.
首先,C++是否适合这种语言?有什么理由我不应该使用它吗?我听说过Soundfile和其他一些图书馆 - 你会推荐什么?
最后,有没有人知道这个主题的任何好的教程?我已经学习了DSP的基础知识 - 我只想编程它!
编辑:我使用Windows.我想玩实时的东西,有点像Max/MSP,但有更多的控制.
小智 14
这实际上取决于你想要做什么样的音频工作.如果你想为游戏实现音频,C++肯定是正确的语言.周围有很多图书馆,OpenAL很棒,免费和多平台.我也使用了DirectSound和Fmod.检查出来,这一切都取决于您的需求.
Emi*_*ags 12
如果你决定使用C++,那么The Synthesis Toolkit值得注意.我将它用于一个学校项目,它非常实用,在斯坦福大学开发,跨平台(win,mac和linux),免费和开源.来自维基百科页面的摘录:
STK仪器类的版本已集成到ChucK,Csound,Real-Time Cmix,Max/MSP(作为PeRColate的一部分)和SuperCollider
他们有很多测试代码+网站上有一些教程来开始他们的库.(但你当然必须知道一些C++)
STK有一些用于读/写音频文件(和matlab文件),实时音频/ midi io,一些基本算法(基于matlab的类似功能的用法),...
另一个明显的选择,也许是最常用的学习/测试dsp东西的环境是Matlab(或自由八度,但我以前没用过).在用C++实现它之前,我有时会在Matlab中测试一些东西.
编辑:在过去的一年里,我一直在使用JUCE,这是一个以C++音频编程为中心的非常酷的C++库,尽管它更倾向于像QT这样的东西.他们的一位开发人员(Timur Doumler)在CppCon 2015上与C++和JUCE进行了很好的实时音频讨论,非常值得一试,即使你最终没有使用JUCE:https://youtu.be/boPEO2auJj4
jal*_*alf 10
C++是正确的语言吗?这完全取决于背景.如果您需要将代码插入另一个应用程序,框架或其他任何内容,您可能必须使用该框架所用的任何语言.
如果你正在制作自己独立的应用程序?可能不是.我建议你选择另一种语言有几个原因:
如果你有真正的语言选择,我会说像Python或C#这样的东西.它们更容易学习,开箱即用的功能更多,并且让你在脚下拍摄更加困难.我不会向那些不是经验丰富的程序员的人推荐C++.
这里有很多好的建议。此外,我建议查看 Jack Audio Toolkit、JUCE 框架,并了解如何从 Csound 等综合库移植 C 代码。《音频编程书》对此也很有帮助。
关于 C 与 C++,我想你会发现在音频工作中,C++ 部分通常实际上只是用于代码管理的 chrome。DSP 位都是信号的低级程序数学,因此很可能是 C 调用,无论您使用 C 还是 C++,这方面都无关紧要。许多 C++ 音频项目本质上只是音频内核中的 C。
哈!