Ovako podesavam parametre za reprodukciju:
format = new WaveFormat();
format.BitsPerSample =16;
format.Channels = 1;
format.BlockAlign = 2;
format.FormatTag = WaveFormatTag.Pcm;
format.SamplesPerSecond = 22050;
format.AverageBytesPerSecond = format.SamplesPerSecond * format.BlockAlign;
// buffer description
BufferDescription desc = new BufferDescription(format);
desc.ControlFrequency = true;
desc.BufferBytes = format.AverageBytesPerSecond/20 ;
desc.ControlVolume = true;
deviceSound.SetCooperativeLevel(argControl , CooperativeLevel.Priority );
secBuffer = new SecondaryBuffer(desc, deviceSound);
secBuffer.Volume =0;
secBuffer.Frequency = SignalSampleFrequency;
SignalSampleFrequency mi je frekvencija koju sam prosledio "pre" ovog koda.
Ovo mi je funkcija gde vrsim reprodukciju
public void Play(ref System.Collections.ArrayList argArrayList)
{
int j = 0;
for (int i = argArrayList.Count - 50; i < argArrayList.Count; i++)
{
soundArray[j] =Convert.ToInt16 (argArrayList[i]);
// soundArray[j]=Convert.ToInt16(argArrayList[i])<<4;
j++;
}
secBuffer.Write(0, soundArray , LockFlag.None );
secBuffer.Play(0, BufferPlayFlags.Default );
}
U argArrayList se nalaze brojne vrednosti,i sada u zavisnosti od frekvencije ,meni bi bilo pozeljno da se cuje kao razlicit sum.
Imam generator funkcija koji mi je zakacen na uredjaj.U aplikaciji sa tog uredjaja uzimam podatke.Problem mi je sto mi se ne cuju pravilno sinusoide.Npr cujem i na 10 Hz,a bogami i na 40 KHz promenu signala.
Da li mozda neko moze da mi pomogne i nasluti gresku :)