private void btnPlay_Click(object sender, EventArgs e) { var awFile = root.currentWGroup; var wavDesc = root.currentWave; Stream fStrm = null; try { fStrm = File.OpenRead(awFile.awFile); } catch { MessageBox.Show($"Failed to open '{awFile.awFile}'", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } byte[] tf = new byte[wavDesc.wsys_size]; fStrm.Position = wavDesc.wsys_start; fStrm.Read(tf, 0, wavDesc.wsys_size); var ADP = ADPCM.ADPCMToPCM16(tf, ADPCM.ADPCMFormat.FOUR_BIT); var w = JAIDSP.SetupSoundBuffer(ADP, 1, (int)wavDesc.sampleRate, 0); var b = new JAIDSPVoice(ref w); b.play(); fStrm.Close(); }