Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using NAudio;
- namespace WindowsFormsApplication2
- {
- public partial class Form1 : Form
- {
- NAudio.Wave.WaveFormat mAudioFormat = new NAudio.Wave.WaveFormat(8000, 8, 1);
- NAudio.Wave.DirectSoundOut mAudioSPK;
- public Form1()
- {
- InitializeComponent();
- MojBufor mMojBuf = new MojBufor();
- mAudioSPK = new NAudio.Wave.DirectSoundOut();
- mAudioSPK.Init(mMojBuf);
- mAudioSPK.Play();
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- }
- }
- public class MojBufor : NAudio.Wave.IWaveProvider
- {
- double mPhase = 0.0;
- double mDP1HZ = 2 * Math.PI / 8000;
- int mSampleCnt = 0;
- public NAudio.Wave.WaveFormat WaveFormat
- {
- get { return new NAudio.Wave.WaveFormat(8000, 8, 1); }
- }
- double[] Freq = {880, 987.77, 523.25, 587.33, 659.26, 698.46, 783.99};
- double[] Time = { 250.0, 80.0, 125.0 };
- double xd = 2000;
- public int Read(byte[] aBuf, int aOffset, int aCnt)
- {
- for (int i = 0; i < aCnt; i++)
- {
- aBuf[i] = (byte)(((Math.Sin(mPhase) + 1.0) / 2.0) * 255.0);
- if (mSampleCnt < xd)
- {
- mPhase += Freq[4] * mDP1HZ;
- xd += Time[1] ;
- }
- else if (mSampleCnt < xd)
- {
- xd += Time[1];
- }
- else if (mSampleCnt < xd)
- {
- mPhase += Freq[4] * mDP1HZ;
- xd += Time[1] ;
- }
- else if (mSampleCnt < xd)
- {
- xd += Time[1];
- }
- else if (mSampleCnt < xd)
- {
- mPhase += Freq[4] * mDP1HZ;
- xd += Time[1];
- }
- else if (mSampleCnt < xd)
- {
- xd += Time[1];
- }
- else if (mSampleCnt < xd)
- {
- mPhase += Freq[6] * mDP1HZ;
- xd += Time[1];
- }
- else
- {
- mSampleCnt = 0;
- }
- }
- return aCnt;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement