public void Play(ISoundEngine engine) { Byte[] data = new Byte[this.length * 2]; // signed 16-bit for (Int32 i = 0; i < this.length; i++) { Int16 sample = (Int16)values[i]; data[i * 2] += (byte)(sample >> 8); data[(i * 2) + 1] += (byte)(sample & 0xFF); //writer.Write(sample); } engine.RemoveSoundSource(name); this.source = engine.AddSoundSourceFromPCMData(data, name, fmt); engine.Play2D(name, true); }