DirectSound

録再

録音して再生してみた。動いているっぽい。途中、Array cdataにキャプチャ結果が入っているから、foreach(Int16 d in cdata)みたいにして、加工できるのではなかろうか。 WaveFormat wfx = new WaveFormat(); wfx.Channels = 2; wfx.FormatTag = WaveFormatT…

PriorityLevelNeededExceptionが発生する理由

Cooperative Levelを設定していないと、SecondaryBuffer.Playしたときなどに、PriorityLevelNeededExceptionが発生するらしい。Device.SetCooperativeLevelをやっておけば大丈夫。 Device device; device = new Device(); device.SetCooperativeLevel(this, …

解説文書はどこに?

今回は、C#でやろうとしてるから、Managed DirectXというみたいなんだけど、解説が全くみつからない。ということで、Managedではないほうを見てみることにした。少し書いてある。見てみることにしよう。わかったらまとめる。 バッファの基本

SecondaryBufferを再生

作ったサイン波を再生する。とりあえずなってる。 Device device; device = new Device(); device.SetCooperativeLevel(this, CooperativeLevel.Normal); devicesCollection = new DevicesCollection(); waveFormat = new WaveFormat(); waveFormat.Channels…

SecondaryBufferにサイン波を書く

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 = Ma…