private static int[] RenderTone(SameWavBit byteSpec) { var computedSamples = new List <int>(); for (var i = 0; i < (44100 * byteSpec.length); i++) { for (var c = 0; c < 2; c++) { var sample = (decimal)(byteSpec.volume * Math.Sin((2 * Math.PI) * (i / 44100d) * byteSpec.frequency)); if (headerByteCache.ContainsKey(sample)) { computedSamples.AddRange(headerByteCache[sample]); } else { List <int> thisSample = PackBytes("v", sample); computedSamples.AddRange(thisSample); headerByteCache.Add(sample, thisSample); } } } return(computedSamples.ToArray()); }
private static int[] RenderTone(SameWavBit byteSpec) { var computedSamples = new List<int>(); for (var i = 0; i < (44100*byteSpec.length); i++) { for (var c = 0; c < 2; c++) { var sample = (decimal) (byteSpec.volume*Math.Sin((2*Math.PI)*(i/44100d)*byteSpec.frequency)); if (headerByteCache.ContainsKey(sample)) { computedSamples.AddRange(headerByteCache[sample]); } else { List<int> thisSample = PackBytes("v", sample); computedSamples.AddRange(thisSample); headerByteCache.Add(sample, thisSample); } } } return computedSamples.ToArray(); }