C#でDirectSoundを使ってみることにした。まずは再生のテストということで、SecondaryBufferにサイン波を書き込む。
private void writeSin(SecondaryBuffer s, int hz) { Int16[] data = new Int16[44100]; double t = 0; for(int i=0;i<44100;i++){ t = Math.PI * 2 / 44100 * i; t *= hz; t = Math.Sin(t) * Int16.MaxValue/10; // divided by 10 means volume control data[i] = (short)t; } s.Write(0, data, LockFlag.None); }