this is my source :$ (tone generator)
how to play sound in outputbuffer?
please help me...teach me detail...:$
using System;
namespace ConsoleApplication4
{
/// <summary>
/// Class1¿¡ ´ëÇÑ ¿ä¾à ¼³¸íÀÔ´Ï´Ù.
/// </summary>
public class Class1
{
public static double fo;
public static double fs;
public static double wo;
public static short Ampl;
public static double m_2cosWo;
public static int MAX_OUTPUT_SAMPLES = 4096;
public static int MAX_VOIE = 2;
public static int MAX_SIZE_SAMPLES = 1;
public static int MAX_SIZE_OUTPUT_BUFFER =
MAX_OUTPUT_SAMPLES*MAX_VOIE*MAX_SIZE_SAMPLES;
public static UInt16 m_WaveOutSampleRate = 16000;
public static int m_NbMaxSamples = MAX_OUTPUT_SAMPLES;
public static UInt16 m_SizeRecord;
public static bool m_Toggle;
public static double[,] OutputBufferR = new
double[2,MAX_OUTPUT_SAMPLES];
public static double[,] OutputBuffer = new
double[2,MAX_OUTPUT_SAMPLES];
/// <summary>
/// ÇØ´ç ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ÁÖ ÁøÀÔÁ¡ÀÔ´Ï´Ù.
/// </summary>
[STAThread]
static void Main(string[] args)
{
Console.Write("Sample rate : ");
Console.WriteLine(m_NbMaxSamples);
Console.ReadLine();
CSinGenerator();
//
// TODO: ¿©±â¿¡ ÀÀ¿ë ÇÁ·Î±×·¥À» ½ÃÀÛÇÏ´Â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
//
}
static void SetSinParametres(short A, double freq)
{
Ampl = A;
fo= freq;
}
static void SetInitialConditions()
{
OutputBufferR[1,m_NbMaxSamples-2]= (double) (Ampl * -Math.Sin(wo));
OutputBufferR[1,m_NbMaxSamples-1]= 0;
Console.WriteLine(OutputBufferR[1,m_NbMaxSamples-2]);
Console.WriteLine(OutputBufferR[1,m_NbMaxSamples-1]);
Console.ReadLine();
}
static void ComputeSamples()
{
if (m_Toggle)
{
OutputBufferR[1,0] = (double)(
m_2cosWo*OutputBufferR[0,m_NbMaxSamples-1]-OutputBufferR[0,m_NbMaxSample
s-2]);
OutputBuffer[1,0] = (short)OutputBufferR[1,0];
OutputBufferR[1,1] = (double)(
m_2cosWo*OutputBufferR[1,0]-OutputBufferR[0,m_NbMaxSamples-1]);
OutputBuffer[1,1] = (short)OutputBufferR[1,1];
for (int i = 2; i< m_NbMaxSamples; i++)
{
OutputBufferR[1,i] = (double)(
m_2cosWo*OutputBufferR[1,i-1]-OutputBufferR[1,i-2]);
OutputBuffer[1,i] = (short)OutputBufferR[1,i];
Console.WriteLine(m_2cosWo*OutputBufferR[1,i-1]-OutputBufferR[1,i-2
]);
Console.WriteLine(OutputBufferR[1,i]);
}
}
else
{
OutputBufferR[0,0] = (double)(
m_2cosWo*OutputBufferR[1,m_NbMaxSamples-1]-OutputBufferR[1,m_NbMaxSample
s-2]);
OutputBuffer[0,0] = (short)OutputBufferR[0,0];
OutputBufferR[0,1] = (double)(
m_2cosWo*OutputBufferR[0,0]-OutputBufferR[1,m_NbMaxSamples-1]);
OutputBuffer[0,1] = (short)OutputBufferR[0,1];
for (int i = 2; i< m_NbMaxSamples; i++)
{
/*OutputBufferR[0][i] = (double)(
m_2cosWo*OutputBufferR[0][i-1]-OutputBufferR[0][i-2]);*/
OutputBufferR[0,i] = (double)(
m_2cosWo*OutputBufferR[0,i-1]-OutputBufferR[0,i-2] );
OutputBuffer[0,i] = (short)OutputBufferR[0,i];
}
}
}
public static void CSinGenerator()
{
double pi = 4.0*Math.Atan(1.0);
fo = 440;
fs = m_WaveOutSampleRate;
wo = 2*pi*fo/fs;
Ampl = 10000;
m_2cosWo =2*Math.Cos(wo);
SetInitialConditions();
m_Toggle = false;
ComputeSamples();
m_Toggle = true;
ComputeSamples();
}
}
}
*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!