Realtime Audio Framework
-
If this is the wrong place to ask, I apologize -- I didn't see another forum that my request obviously fit. Besides, this isn't really a programming question. I want to develop some real-time audio processing software for .NET. I've done this in the past using Delphi and C with unmanaged code, but this time I want to do it in .NET managed code. Is there a framework or tutorial on how to grab the low level audio from a sound card buffer and put the processed audio back again? I've already gone through all the articles on CP and couldn't find one that fit the bill. I've also Googled and Binged and couldn't find anything managed to use as an example. It needs to be low level audio access that can be done in real time. Any ideas, links, etc. will be appreciated. And if I posted this in the wrong forum, just let me know. Never fear -- I have my flameproof underwear on.
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
No idea really, but isn't this the sort of thing DirectSound is good for?
-
If this is the wrong place to ask, I apologize -- I didn't see another forum that my request obviously fit. Besides, this isn't really a programming question. I want to develop some real-time audio processing software for .NET. I've done this in the past using Delphi and C with unmanaged code, but this time I want to do it in .NET managed code. Is there a framework or tutorial on how to grab the low level audio from a sound card buffer and put the processed audio back again? I've already gone through all the articles on CP and couldn't find one that fit the bill. I've also Googled and Binged and couldn't find anything managed to use as an example. It needs to be low level audio access that can be done in real time. Any ideas, links, etc. will be appreciated. And if I posted this in the wrong forum, just let me know. Never fear -- I have my flameproof underwear on.
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
You might want to look at OpenAL.
Todd Smith
-
If this is the wrong place to ask, I apologize -- I didn't see another forum that my request obviously fit. Besides, this isn't really a programming question. I want to develop some real-time audio processing software for .NET. I've done this in the past using Delphi and C with unmanaged code, but this time I want to do it in .NET managed code. Is there a framework or tutorial on how to grab the low level audio from a sound card buffer and put the processed audio back again? I've already gone through all the articles on CP and couldn't find one that fit the bill. I've also Googled and Binged and couldn't find anything managed to use as an example. It needs to be low level audio access that can be done in real time. Any ideas, links, etc. will be appreciated. And if I posted this in the wrong forum, just let me know. Never fear -- I have my flameproof underwear on.
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
I second Martin, I'd check the direct sound stuff, before anything else. I would be really shocked if it doesn't support this.
¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow
-
I second Martin, I'd check the direct sound stuff, before anything else. I would be really shocked if it doesn't support this.
¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow
Thanks to both of you. Yes, I do think that DirectSound appears to be the way to go. So far most everything I've seen in examples has to do with playing WAV files, which is easy. I guess I need to do some playing with it. I was hoping that there was a control or something already available so I wouldn't have to develop one. Once I figure it out, it might make an article?
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
-
Thanks to both of you. Yes, I do think that DirectSound appears to be the way to go. So far most everything I've seen in examples has to do with playing WAV files, which is easy. I guess I need to do some playing with it. I was hoping that there was a control or something already available so I wouldn't have to develop one. Once I figure it out, it might make an article?
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
Hi Walt, you may want and get in touch with Leslie[^], he's an audio CPian with a number of CP articles, and a nice web site full of musical stuff. :)
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
-
Hi Walt, you may want and get in touch with Leslie[^], he's an audio CPian with a number of CP articles, and a nice web site full of musical stuff. :)
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
Thanks Luc, I'll do that.
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
-
No idea really, but isn't this the sort of thing DirectSound is good for?
From what I was looking at recently DirectSound is out and XAudio2 is in. Unfortunately, even though XAudio2 has been in the SDK for over a year (I think) there isn't much information on it. Except the few samples that come with the SDK and they aren't entirely informative.
My current favourite word is: Sammidge!
-SK Genius
-
If this is the wrong place to ask, I apologize -- I didn't see another forum that my request obviously fit. Besides, this isn't really a programming question. I want to develop some real-time audio processing software for .NET. I've done this in the past using Delphi and C with unmanaged code, but this time I want to do it in .NET managed code. Is there a framework or tutorial on how to grab the low level audio from a sound card buffer and put the processed audio back again? I've already gone through all the articles on CP and couldn't find one that fit the bill. I've also Googled and Binged and couldn't find anything managed to use as an example. It needs to be low level audio access that can be done in real time. Any ideas, links, etc. will be appreciated. And if I posted this in the wrong forum, just let me know. Never fear -- I have my flameproof underwear on.
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
-
If this is the wrong place to ask, I apologize -- I didn't see another forum that my request obviously fit. Besides, this isn't really a programming question. I want to develop some real-time audio processing software for .NET. I've done this in the past using Delphi and C with unmanaged code, but this time I want to do it in .NET managed code. Is there a framework or tutorial on how to grab the low level audio from a sound card buffer and put the processed audio back again? I've already gone through all the articles on CP and couldn't find one that fit the bill. I've also Googled and Binged and couldn't find anything managed to use as an example. It needs to be low level audio access that can be done in real time. Any ideas, links, etc. will be appreciated. And if I posted this in the wrong forum, just let me know. Never fear -- I have my flameproof underwear on.
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
Another option is OpenAL, which is a cross platform audio library. It's written in C, but I'm sure there must be some .NET wrappers out there... or you can P/Invoke it. I haven't used it myself, but I was told it is typically used for gaming on OSX and Linux. http://en.wikipedia.org/wiki/OpenAL[^] http://connect.creativelabs.com/openal[^]
-
If this is the wrong place to ask, I apologize -- I didn't see another forum that my request obviously fit. Besides, this isn't really a programming question. I want to develop some real-time audio processing software for .NET. I've done this in the past using Delphi and C with unmanaged code, but this time I want to do it in .NET managed code. Is there a framework or tutorial on how to grab the low level audio from a sound card buffer and put the processed audio back again? I've already gone through all the articles on CP and couldn't find one that fit the bill. I've also Googled and Binged and couldn't find anything managed to use as an example. It needs to be low level audio access that can be done in real time. Any ideas, links, etc. will be appreciated. And if I posted this in the wrong forum, just let me know. Never fear -- I have my flameproof underwear on.
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
If you really want real-time with low-latency, then go the ASIO way (using BASS libraries and addons, and the BASS.NET wrappers). That is used by DJ software (like Traktor, Virtual DJ, etc) Look at http://www.un4seen.com/bass.html[^] PM me for more details (I've used this in a production environment). --jeroen
-
If this is the wrong place to ask, I apologize -- I didn't see another forum that my request obviously fit. Besides, this isn't really a programming question. I want to develop some real-time audio processing software for .NET. I've done this in the past using Delphi and C with unmanaged code, but this time I want to do it in .NET managed code. Is there a framework or tutorial on how to grab the low level audio from a sound card buffer and put the processed audio back again? I've already gone through all the articles on CP and couldn't find one that fit the bill. I've also Googled and Binged and couldn't find anything managed to use as an example. It needs to be low level audio access that can be done in real time. Any ideas, links, etc. will be appreciated. And if I posted this in the wrong forum, just let me know. Never fear -- I have my flameproof underwear on.
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
If you look towards performance ( as depicted by name you told "real-time audio processing ") you should not go the managed code way. Rest is your choice. :)
It is Good to be Important but! it is more Important to be Good
-
If you look towards performance ( as depicted by name you told "real-time audio processing ") you should not go the managed code way. Rest is your choice. :)
It is Good to be Important but! it is more Important to be Good
-
If this is the wrong place to ask, I apologize -- I didn't see another forum that my request obviously fit. Besides, this isn't really a programming question. I want to develop some real-time audio processing software for .NET. I've done this in the past using Delphi and C with unmanaged code, but this time I want to do it in .NET managed code. Is there a framework or tutorial on how to grab the low level audio from a sound card buffer and put the processed audio back again? I've already gone through all the articles on CP and couldn't find one that fit the bill. I've also Googled and Binged and couldn't find anything managed to use as an example. It needs to be low level audio access that can be done in real time. Any ideas, links, etc. will be appreciated. And if I posted this in the wrong forum, just let me know. Never fear -- I have my flameproof underwear on.
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
If you are interested to DirectSound, look at SlimDX. From the official site: "SlimDX is a free open source framework that enables developers to easily build DirectX applications using .NET technologies such as C#, VB.NET, and !IronPython. It is designed to be an efficient, simple, and lean wrapper that fully encompasses all of Microsoft's gaming and multimedia technologies and exposes them to managed code. " I use SlimDX not for audio but for 3D application and I think it is very well done.
-
If this is the wrong place to ask, I apologize -- I didn't see another forum that my request obviously fit. Besides, this isn't really a programming question. I want to develop some real-time audio processing software for .NET. I've done this in the past using Delphi and C with unmanaged code, but this time I want to do it in .NET managed code. Is there a framework or tutorial on how to grab the low level audio from a sound card buffer and put the processed audio back again? I've already gone through all the articles on CP and couldn't find one that fit the bill. I've also Googled and Binged and couldn't find anything managed to use as an example. It needs to be low level audio access that can be done in real time. Any ideas, links, etc. will be appreciated. And if I posted this in the wrong forum, just let me know. Never fear -- I have my flameproof underwear on.
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
I have used NAudio for many things including real-time fft. It is very capable, but also the source code is amazingly nice, so it's easy to patch. Basically, it wraps the code for reading/writing samples and then you process the audio buffers (arrays) in an unsafe block, giving you superfast performance. Try it, it is a superb project and sounds like just what you need. I tried much other stuff before I found this, including wrapping DirectShow by myself.
-
If this is the wrong place to ask, I apologize -- I didn't see another forum that my request obviously fit. Besides, this isn't really a programming question. I want to develop some real-time audio processing software for .NET. I've done this in the past using Delphi and C with unmanaged code, but this time I want to do it in .NET managed code. Is there a framework or tutorial on how to grab the low level audio from a sound card buffer and put the processed audio back again? I've already gone through all the articles on CP and couldn't find one that fit the bill. I've also Googled and Binged and couldn't find anything managed to use as an example. It needs to be low level audio access that can be done in real time. Any ideas, links, etc. will be appreciated. And if I posted this in the wrong forum, just let me know. Never fear -- I have my flameproof underwear on.
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
Most of my time is spent writing audio engines and tools, and one piece of advice, mentioned a few times above, which I'd definitely emphasise is "don't use managed code". For real-time, interactive audio processing you need to have, as also mentioned, predictable and accurate timing, and to achieve that you really need to use a threaded, unmanaged system. You can still write the API and some of the system management layers as managed code - which is exactly what I've done in my current project. The benefits are a simple API, nicely structured audio object classes, and a carefully tuned processing layer doing the hard work.
There are three kinds of people in the world - those who can count and those who can't...
-
If this is the wrong place to ask, I apologize -- I didn't see another forum that my request obviously fit. Besides, this isn't really a programming question. I want to develop some real-time audio processing software for .NET. I've done this in the past using Delphi and C with unmanaged code, but this time I want to do it in .NET managed code. Is there a framework or tutorial on how to grab the low level audio from a sound card buffer and put the processed audio back again? I've already gone through all the articles on CP and couldn't find one that fit the bill. I've also Googled and Binged and couldn't find anything managed to use as an example. It needs to be low level audio access that can be done in real time. Any ideas, links, etc. will be appreciated. And if I posted this in the wrong forum, just let me know. Never fear -- I have my flameproof underwear on.
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
I hope that you will publish an article on what you end up doing. There is so little documentation on doing anything with sound including direct sound libraries other than playing wav files. I would love to see an examples of getting to the sound card buffer with either managed or unmanaged code. I don't believe there is an article of any kind on the subject. Larry Freedman
Such a Larry
-
If this is the wrong place to ask, I apologize -- I didn't see another forum that my request obviously fit. Besides, this isn't really a programming question. I want to develop some real-time audio processing software for .NET. I've done this in the past using Delphi and C with unmanaged code, but this time I want to do it in .NET managed code. Is there a framework or tutorial on how to grab the low level audio from a sound card buffer and put the processed audio back again? I've already gone through all the articles on CP and couldn't find one that fit the bill. I've also Googled and Binged and couldn't find anything managed to use as an example. It needs to be low level audio access that can be done in real time. Any ideas, links, etc. will be appreciated. And if I posted this in the wrong forum, just let me know. Never fear -- I have my flameproof underwear on.
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
Thanks to everyone for the suggestions, links and comments. I appreciate them all. I will definite take a look at NAudio, SlimDX and the other recommendations. As far as managed vs. unmanaged code, I understand the issues. Basically the application I have in mind isn't too critical, and will probably be at a fairly low data rate, since the frequency range is only a few kHz at most. I could always go back to the unmanaged code I use in the past, but I'd like to give a managed solution a try. I'll try to write an article on what I learn from the exercise. Thanks again to all!
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
-
If this is the wrong place to ask, I apologize -- I didn't see another forum that my request obviously fit. Besides, this isn't really a programming question. I want to develop some real-time audio processing software for .NET. I've done this in the past using Delphi and C with unmanaged code, but this time I want to do it in .NET managed code. Is there a framework or tutorial on how to grab the low level audio from a sound card buffer and put the processed audio back again? I've already gone through all the articles on CP and couldn't find one that fit the bill. I've also Googled and Binged and couldn't find anything managed to use as an example. It needs to be low level audio access that can be done in real time. Any ideas, links, etc. will be appreciated. And if I posted this in the wrong forum, just let me know. Never fear -- I have my flameproof underwear on.
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
-
Thank you Ravi, I will check there.
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software