Monday 2 February 2009

An Audio Effects Framework for NAudio

This is just a quick post to point out that I have had an article published on Coding4Fun this week. It demonstrates how to make a voice changing effect for Skype using NAudio. Check out the article here: Skype Voice Changer.

I have now uploaded all the code (and release binaries) to a CodePlex project.

The other thing to say is that the audio effect framework I developed for this application will eventually find its way into NAudio. I am still deciding on quite how best to integrate it, but watch this space for further news.

Have fun talking to your friends in silly voices on Skype!

11 comments:

Anonymous said...

Hi Mark!
Nice article about using NAudio! I'm so busy right now by other non computer stuff that i can't no longer work on NAudio until several months... but i'm really pleased to see that you are still working on it!
See you
Alexandre Mutel

Unknown said...

hey Alexandre, good to hear from you again. I'd be interested to hear your thoughts on the IEffect interface. I am thinking that there may be two ways to use NAudio - one dealing primarily with byte arrays and repositionable WaveStreams, and one dealing primarily with an effects chain, and may not even make use of WaveStream at all.

Anonymous said...

Well, about the Effect interface, i would probably prefer a property based declaration for sliders, with a special attribute containing additionnal information (min, max, default, text...etc.) and precompute sliders at initialization with runtime info. I'm a huge fan of this kind of design! ;)

Jillybean said...

How difficult would it be to modify this app so that you don't have to use skype, just mic in and speaker out?

I have a robot that is tele-operated and uses a wireless Voice transceiver so that the operator can talk through the robot. It would be neat to be able to change the voice on the fly.

Unknown said...

Hi Ringo, it wouldn't be too hard at all. NAudio includes a WaveIn class to use for this purpose. You would simply need to adapt it to a WaveStream which the EffectStream can use as a source.

Anonymous said...

Oh, by the way Mark, you should check the last version of vstnet on codeplex. It seems that a basic host is available... could be interesting for applying effects through a VST chain.

Unknown said...

Hi Alexandre,
yes I saw that. I would like to create a VstWaveStream or a VST hosting IEffect and get it in to NAudio at some point.

phil said...

Hi, Mark. May we reblog this post as a guest column on Skype Journal? It's a great read and perfect for our audience.

http://SkypeJournal.com

Thanks.

Phil Wolff, editor

Unknown said...

Hi Phil,
Sure feel free.
Mark

Anonymous said...

Hey Mark, nice article. I've started to study this library and it amazes me. I've struggled a lot to understande the mess around Windows Audio SDKs and this library simply takes all the mess alway.

This library gives me hope that someday the middle east will live in peace, and Microsoft's API's will work just like NAudio. :-)

Unknown said...

thanks Diego ;)