Re: Noise in PlayBack
Re: Noise in PlayBack
- Subject: Re: Noise in PlayBack
- From: Herbie Robinson <email@hidden>
- Date: Wed, 27 Dec 2006 16:12:40 -0500
What you are trying to do is called a noise gate, but the way you are
doing it is going to generate a lot of zipper noise.
You need to understand a lot of things about digital signal
processing to make it work like:
1. Aliasing.
2. The effect of discontinuities (related to aliasing).
3. The effect of multiplying to signal on the resultant frequency
spectrum (also related to aliasing).
Other techniques for removing noise include notch filtering and
combinations of gating and notch filtering.
None of them work well all of the time.
The best technique for removing noise is to keep it out of the source
in the first place. There is this audio axiom, GIGO, that has been
in use for at least half a century: It stands for "garbage in,
garbage out".
Hi All,
I am getting noise while playing the recorded data.I tried to set
some min value while playing.It reduced some noise.But till
noise is there.I enclosed the code here.
Waiting for your valuable suggestion.
Thanks in Advance,
Sheen
OSStatus playCallback(
AudioDeviceID device,
const AudioTimeStamp* now,
const AudioBufferList* input_data,
const AudioTimeStamp* input_time,
AudioBufferList* output_data,
const AudioTimeStamp* output_time,
void* client_data
)
{
float* dst = NULL; // destination for the data
int num_of_units = 0; // number of sample points buffer can take
int num_to_play = 0; // number of sample units to play
int num_of_channels = output_data->mBuffers[0].mNumberChannels;
// number of channels output supports
int i = 0; // index
int j = 0; // index into destination buffer.
// NSLog(@"Play");
int channelcount=0;
int aftermul;
dst = (Float32*)(output_data->mBuffers[0].mData);
num_of_units = output_data->mBuffers[0].mDataByteSize / sizeof(Float32);
num_to_play = num_of_units / num_of_channels;
for (i = 0; i < num_to_play; i++) {
for (channelcount=0;channelcount < num_of_channels ; channelcount++) {
if(Pcms[Units_played] < 0)
{
if(Pcms[Units_played] < -0.020 )
dst[j++] = Pcms[Units_played];
else
dst[j++] =0.0;
}
if(Pcms[Units_played] >= 0.020 )
{
if(Pcms[Units_played] > 0.020 )
dst[j++] = Pcms[Units_played];
else
dst[j++] =0.0;
}
}
Units_played += 1;
}
return kAudioHardwareNoError;
}
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
--
-*****************************************
** http://www.curbside-recording.com/ **
******************************************
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden