static List<Byte> CreateSaw(int frequency) { var sampleRate = 16000; // var frequency = 500; var amplitude = 0.2; var seconds = 1; var raw = new byte[sampleRate * seconds * 2]; // stereo var multiple = 2.0 * frequency / sampleRate; for (int n = 0; n < sampleRate * seconds; n++) { var sampleSaw = ((n * multiple) % 2) - 1; var sampleValue = sampleSaw > 0 ? amplitude : -amplitude; var sample = (short)(sampleValue * Int16.MaxValue); var bytes = BitConverter.GetBytes(sample); raw[n * 2] = bytes[0]; // left raw[n * 2 + 1] = bytes[1]; // right } return raw.ToList(); },把这段代码改成生成正弦波
时间: 2024-02-10 21:21:17 浏览: 123
可以将CreateSaw函数中的sampleSaw计算方式改为:
var sampleSine = Math.Sin(2 * Math.PI * frequency * n / sampleRate);
同时将函数名由CreateSaw改为CreateSine,完整的代码如下:
static List<Byte> CreateSine(int frequency)
{
var sampleRate = 16000;
var amplitude = 0.2;
var seconds = 1;
var raw = new byte[sampleRate * seconds * 2]; // stereo
for (int n = 0; n < sampleRate * seconds; n++)
{
var sampleSine = Math.Sin(2 * Math.PI * frequency * n / sampleRate);
var sampleValue = amplitude * sampleSine;
var sample = (short)(sampleValue * Int16.MaxValue);
var bytes = BitConverter.GetBytes(sample);
raw[n * 2] = bytes[0]; // left
raw[n * 2 + 1] = bytes[1]; // right
}
return raw.ToList();
}
阅读全文
相关推荐


















