public void WriteWave(Stream Stream, StereoShortSoundSample[] Samples) { this.Stream = Stream; this.BinaryWriter = new BinaryWriter(Stream); WriteChunk("RIFF", () => { Stream.WriteStringz("WAVE", 4, Encoding.ASCII); WriteChunk("fmt ", () => { Stream.WriteStruct(new WaveFormat() { CompressionCode = 1, SampleRate = 44100, NumberOfChannels = 2, BytesPerSecond = 44100 * sizeof(short) * 2, BlockAlignment = sizeof(short) * 2, BitsPerSample = 16, Padding = 0, }); }); WriteChunk("data", () => { BinaryWriter.Write(PointerUtils.ArrayToByteArray(Samples)); /* * foreach (var Sample in Samples) * { * BinaryWriter.Write(Sample.Left); * BinaryWriter.Write(Sample.Right); * } */ }); }); }