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 to GitHub.
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!
Want to get up to speed with the the fundamentals principles of digital audio and how to got about writing audio applications with NAudio? Be sure to check out my Pluralsight courses, Digital Audio Fundamentals, and Audio Programming with NAudio.
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!
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.Mark H
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! ;)Alexandre Mutel
How difficult would it be to modify this app so that you don't have to use skype, just mic in and speaker out?Ringo
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.
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.Mark H
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.Alexandre Mutel
Hi Alexandre,Mark H
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.
Hi, Mark. May we reblog this post as a guest column on Skype Journal? It's a great read and perfect for our audience.Phil Wolff
Phil Wolff, editor
Hi Phil,Mark H
Sure feel free.
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.Diego Frata
This library gives me hope that someday the middle east will live in peace, and Microsoft's API's will work just like NAudio. :-)
thanks Diego ;)Mark H