Getting started with audio programming [closed]

别等时光非礼了梦想. 提交于 2019-12-02 14:56:30

If you're looking to get your hands dirty with DSP stuff, I'd suggest starting with VST programming. Writing a plugin is a nice way to mess around with realtime audio manipulation without having to worry about connecting to system hardware, drivers, and so on. Basically, the sequencer takes care of all of that for you, and your plugin just receives a buffer with floating point data which you can manipulate directly.

This is, on the whole, a lot easier than trying to write a plugin to manipulate data going through the system audio streams. Also, the Windows audio API has changed significantly since Vista, and depending on which version of Windows you're using, you will have to follow different conventions to get your stuff working.

But again -- start simple. Get the VST SDK, check out some tutorials, and start with baby steps. :)

Here are some links that were very useful for me:

  1. Tammo Hinrichs "kb" of demo-group Farbrausch articles about audio programming. There is also a video of a seminar that Tammo held over here.

  2. Jari Kleimola masters thesis "Design and Implementation of a Software Sound Synthesizer". Over 100 pages about audio programming.

  3. The Synthesis ToolKit in C++. A advanced audio toolkit developed at universities. Main author of the toolkit is Perry Cook who has also written a book: "Real Sound Synthesis for Interactive Applications".

  4. "Basic sound theory and synthesis" article by Dr Petter.

Try the musicdsp archive for some good sample code for audio effects. The KvR developer forum is also an excellent place to get help on writing VSTs and effects in general.

As for Windows audio APIs, there are a lot of them. The most widely supported is known as WinMM. The latest and greatest is the new WASAPI interface introduced with Vista.

Finally, to accomplish a system-wide equaliser effect, you may need to look into lower level interfaces such as sAPO

A gentle introduction to VST Programming is SynthEdit... www.synthedit.com, It provides for a drag and drop programming environment, progressing to writting your own C++ addons. You can do the 'boring' bits (GUI design) with drag-and-drop, and the 'fun' algorithmic bits in C++.

You probably need to have a look at DirectSound but bear in mind that it is soon to be replaced by XAudio2 - probably in Windows 7. I should think that DirectSound will continue to be supported for a while longer since it's been around for a long time.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!