Click here to Skip to main content
13,249,174 members (33,462 online)
Click here to Skip to main content
Add your own
alternative version


92 bookmarked
Posted 6 Sep 2003

Audio DSP with C#

, 6 Sep 2003
Rate this:
Please Sign up or sign in to vote.
A .NET class library for audio processing.
<!-- Article image -->

Sample Image - audio_process.jpg

<!-- Add the rest of your HTML here -->


Garbe.Sound is a small .NET library for audio processing. The principal idea is to give programmers with a RAD environment for developing audio filters. With the basic classes, it comes with a few filters already implemented, like:

  • Gain Filter
  • Delay Filter
  • LowPass Filter
  • Mixer
  • Reverberation
  • Head Related Transfer Function (HRTF)
  • Read and Write Wave Files (just mono yet)

The library is still a Beta 1 Version, but is already functional. Any comments are welcome!! :)

Using the code

One of the ideias of the library is to be easy of programming. Trying to do so, I choose a sistematic view of the classes in the library, where each filter can be perceived like a box with a input and output signal.

Almost all classes in the library inheritance from SoundObj class, that implements this basic sistematic view. This permits that you write code like this:

WaveReader    wr1 = new WaveReader("teste2.wav");
WaveReader    wr2 = new WaveReader("teste.wav");
Gain        ga1 = new Gain(0.5f);
Gain        ga2 = new Gain(0.5f);
Mixer        mx  = new Mixer(2);
WaveWriter    wwl = new WaveWriter("exit.wav", wr1.NumChannels, 
                                 wr1.SampleRate, wr1.BitsPerSamples, 1, true);
ga1.Input = wr1;
ga2.Input = wr2;
mx[0] = ga1;
mx[1] = ga2;
wwl.Input = mx;
for(int k = 0; k < wwl.Interations; k++)


This is a very simple code that just have 2 signal inputs (teste.wav and teste2.wav), amplify both by 0.5 (ga1 and ga2 objects), mixes both in just one signal that is the output of the signal, wich is saved as exit.wav.



  • 02.09.2003 - Beta 1

Bugs and Comments

If you have any comments or find some bugs, I would love to hear about it and make it better.


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

No Biography provided

You may also be interested in...

Comments and Discussions

QuestionWavePlayer Pin
poseydon69929-Dec-15 5:47
memberposeydon69929-Dec-15 5:47 
QuestionWant an EQ Pin
Proglydite12-May-15 1:53
memberProglydite12-May-15 1:53 
GeneralMy vote of 3 Pin
haji11028-Nov-14 7:35
memberhaji11028-Nov-14 7:35 
GeneralMy vote of 5 Pin
Member 963781229-Dec-12 10:41
memberMember 963781229-Dec-12 10:41 
QuestionNo accept cultural reference. Pin
agmva8-Nov-11 8:35
memberagmva8-Nov-11 8:35 
AnswerRe: No accept cultural reference. Pin
Nils de Jong14-Apr-12 0:14
memberNils de Jong14-Apr-12 0:14 
GeneralRe: No accept cultural reference. Pin
nfrench28-Jun-12 13:49
membernfrench28-Jun-12 13:49 
I just spent half an hour trying to work this out, eventually sorted it, switched tabs and immediately saw this message -_-
Question44100hz, 8bit, mono wavs supported ? Pin
Rich_UK25-Aug-09 22:44
memberRich_UK25-Aug-09 22:44 
GeneralMy vote of 2 Pin
gunzygcs12-Feb-09 8:28
membergunzygcs12-Feb-09 8:28 
QuestionNewbie eager to learn.. Pin
gunzygcs12-Feb-09 8:23
membergunzygcs12-Feb-09 8:23 
GeneralTMS320F2812 DSP code Pin
pratik suthar20-Nov-08 4:08
memberpratik suthar20-Nov-08 4:08 
Generalreading from sound Reader and specifying Frequency Pin
ashenayeemruz28-Feb-08 17:35
memberashenayeemruz28-Feb-08 17:35 
QuestionPlaying continuous stream of PCM data Pin
t4urean7-Aug-06 11:28
membert4urean7-Aug-06 11:28 
GeneralWaveform audio interface component for .NET Pin
AdamSlosarski4-Nov-05 1:22
memberAdamSlosarski4-Nov-05 1:22 
Generalhelp me Pin
Anonymous21-May-05 3:06
sussAnonymous21-May-05 3:06 
Generalp?how i can play astream of buffer directly Pin
MAD_ADDISON13-Apr-05 12:46
memberMAD_ADDISON13-Apr-05 12:46 
GeneralResample wav Pin
zuken2121-Mar-05 16:11
memberzuken2121-Mar-05 16:11 
Generala question about this project Pin
zeta52025-Oct-04 12:34
memberzeta52025-Oct-04 12:34 
QuestionRe: a question about this project Pin
jasonxz7-Mar-06 11:34
memberjasonxz7-Mar-06 11:34 
QuestionRe: a question about this project [modified] Pin
Jack McScratch26-Feb-07 9:01
memberJack McScratch26-Feb-07 9:01 
AnswerRe: a question about this project Pin
jasonxz1-Mar-07 7:55
memberjasonxz1-Mar-07 7:55 
GeneralRe: a question about this project Pin
laysonropteacher3-Mar-07 14:51
memberlaysonropteacher3-Mar-07 14:51 
GeneralRe: a question about this project Pin
jackmcscratch26-Apr-07 0:18
memberjackmcscratch26-Apr-07 0:18 
GeneralInteresting Pin
Vilaz3-Nov-03 7:09
memberVilaz3-Nov-03 7:09 
GeneralAudio Recording (microphone) Pin
mai99kpd18-Sep-03 1:18
membermai99kpd18-Sep-03 1:18 
GeneralRe: Audio Recording (microphone) Pin
kezababs29-Jan-06 9:48
memberkezababs29-Jan-06 9:48 
GeneralFFT Pin
Alexander M.8-Sep-03 1:16
memberAlexander M.8-Sep-03 1:16 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.171114.1 | Last Updated 7 Sep 2003
Article Copyright 2003 by Não Interessa!!!
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid