namespace BizHawk.Emulation.Common { public static class Waves { public static short[] SquareWave; public static short[] ImperfectSquareWave; public static short[] NoiseWave; public static short[] PeriodicWave16; public static void InitWaves() { SquareWave = new short[] { -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767 }; ImperfectSquareWave = new short[] { -32768,-30145,-27852,-26213,-24902,-23592,-22282,-20971,-19988,-19005,-18350,-17694,-17366,-17039,-16711,-16711, 32767, 30145, 27852, 26213, 24902, 23592, 22282, 20971, 19988, 19005, 18350, 17694, 17366, 17039, 16711, 16711 }; PeriodicWave16 = new short[] { 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; NoiseWave = new short[0x1000]; var rnd = new System.Random(unchecked((int)0xDEADBEEF)); for (int i = 0; i < NoiseWave.Length; i++) { int r = rnd.Next(); if ((r & 1) > 0) NoiseWave[i] = short.MaxValue; } /*TriangleWave = new short[512]; for (int i = 0; i < 256; i++) TriangleWave[i] = (short)((ushort.MaxValue*i/256)-short.MinValue); for (int i = 0; i < 256; i++) TriangleWave[256+i] = TriangleWave[256-i]; TriangleWave[256] = short.MaxValue; SawWave = new short[512]; for (int i = 0; i < 512; i++) SawWave[i] = (short)((ushort.MaxValue * i / 512) - short.MinValue); SineWave = new short[1024]; for (int i=0; i<1024; i++) { SineWave[i] = (short) (Math.Sin(i*Math.PI*2/1024d)*32767); }*/ } } }