我想做一个关于声音编程的项目,但我不知道从哪里开始
在我的高中,我们可以上一门课程,基本上我们可以在一个学期里自学一门学科。我当时想我想学习“声音编程”,但我意识到我不知道这意味着什么。例如,我有兴趣了解合成器如何工作、如何编写 VSTi,以及声音在计算机科学中的工作原理。这是一个可行的课题吗?对于完全陌生的人来说,有什么好的教程吗?任何提示或建议将不胜感激。
编辑: 这就是我感兴趣的东西。
At my high school we can take a class where we basically learn about a subject on our own for a semester. I was thinking that I want to learn about "sound programming," but I realized that I have no idea what that entails. I'm interested in learning about, for example, how a synthesizer works, how I could write a VSTi, and how sound works in computer science. Is this a feasible subject? Are there any good tutorials out there for somebody completely new to this? Any tips or suggestions would be greatly appreciated.
Edit: This is the sort of thing that I'm interested in.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
VST 插件通常是用 C++ 编写的。但也可以使用其他语言。使用 C++ 构建 VST 插件是一个相当复杂的项目。如果没有预先存在的经验,这对于学校项目来说可能太多了。此外,您可能会花费与实际声音编程一样多或更多的时间来实现 VST 部分和 GUI。
然而,还有其他方法可以创建 VST 插件,但仍然需要亲自编写代码。
SynthEdit 是一个用于创建合成器和效果的模块化环境。振荡器、包络等模块通过电线进行可视连接。补丁可以导出为 VST 插件。 SynthEdit 允许使用 C++ 对附加模块进行编程。
SynthMaker 是与 SynthEdit 类似的另一个选项。它具有一个代码模块,允许您编写 DSP 代码,而无需使用其他语言编译模块。
在您的情况下使用 SynthEdit 或 SynthMaker 的优点是您可以将编程工作集中在特定区域,例如创建滤波器或振荡器模块。然后 SynthEdit/SynthMaker 可以处理其他区域(GUI、语音逻辑等)。
使用 SynthEdit 或 SynthMaker 还可以让您更快地制作想法原型。因此,在确定要完成学校项目的内容之前,您将有更多时间尝试不同的合成器或效果架构。
DSP 理论可能相当复杂且数学繁重,但仅此一点不应该让您望而却步。根据您想要做什么,对数字音频原理和代数数学的基本了解可能足以让您走得更远。
VST plugins are normally written with C++. But it's possible to use other languages as well. Building a VST plugin with C++ is quite an involved project. Without pre-existing experience it's probably too much for a school project. Additionally you'll probably spend as much or more time implementing the VST part and GUI as you will actual sound programming.
However there are a other ways to create a VST plugin and still get your hands dirty writing code.
SynthEdit is a modular environment for creating synthesizers and effects. Modules such as oscillators, envelopes etc are connected visually with wires. Patches can be exported as VST plugins. SynthEdit allows additional modules to be programmed with C++.
SynthMaker is another option similar to SynthEdit. It features a code module which allows you write DSP code without the difficultly of compiling modules in another language.
The advantage of using SynthEdit or SynthMaker in your situation is that you can focus your programming efforts on a particular area, such as creating a filter or oscillator module. SynthEdit/SynthMaker can then handle the other areas (GUI, voice logic, etc).
Using SynthEdit or SynthMaker will also allow you to prototype ideas quicker. So you will have more time to experiment with different synthesizer or effect architectures before settling on something to complete for your school project.
DSP theory can be quite involved and maths heavy but that alone shouldn't put you off. Depending on what you want to do, a basic understanding of digital audio principles and algebra level maths may be enough to take you a surprising long way.
您可以尝试寻找有关 DSP(数字信号处理)和/或音频信号处理的资源。编程本身(除非您正在寻找现有的音频库)可能比编程更加密集,因此它可能非常适合在 math.stackexchange.com。
You might try looking for resources on DSP (Digital Signal Processing) and/or Audio Signal Processing. The programming itself (unless you're looking for an existing audio library) will likely be more math intensive than programming intensive, so it might be a good fit for a query at math.stackexchange.com.
有一个非常灵活且功能强大的音频应用程序,称为 Plogue Bidule。您可以使用它来学习音频处理和合成,方法是使用低级数学和逻辑构建块创建您自己的“bidules”或组。有一个现有的用户社区,我很难找到它的功能限制。您不会使用此工具执行任何代码,但它对于性能以及学习音频处理和合成基础知识非常有用。
There's a very flexible and powerful audio application called Plogue Bidule. You could use it to learn about audio processing and synthesis, by creating your own 'bidules' or groups using low-level math and logic building blocks. There's an existing user community, and I've had a hard time finding a limit to what it can do. You're not going to be doing any code with this tool, but it's great for performance and learning about audio processing and synthesis fundamentals.