我正在制作的是一个小型音频编辑器,可以加载.wav文件并在时域中显示它。用户可以选择它的一部分并放大或DFT在频域中显示小窗口的块。 (稍后要添加的额外功能)
我认为将字节数组拆分为两个浮点数组时会出错。
我使用NAudio将我的样本转换为字节数组。 然后我使用我在堆栈溢出时找到的循环将数组拆分为左右通道。
private void readToArrays(WaveFileReader pcm) {
wf = pcm.WaveFormat;
int samplesDesired = (int)pcm.Length;
buffer = new byte[samplesDesired * 4];
left = new float[samplesDesired];
right = new float[samplesDesired];
int bytesRead = pcm.Read(buffer, 0, samplesDesired);
if (wf.BitsPerSample == 16) {
if (wf.Channels == 1) {
for (int i = 0; i < buffer.Length / 4; i++)
//handle
}
else if (wf.Channels == 2) {
int index = 0;
for (int sample = 0; sample < bytesRead / 4; sample++) {
left[sample] = BitConverter.ToInt16(buffer, index);
index += 2;
right[sample] = BitConverter.ToInt16(buffer, index);
index += 2;
}
}
}else if (wf.BitsPerSample == 8) {
if (wf.Channels == 1) {
//handle
}
else if (wf.Channels == 2) {
//handle
}
}
}
TL:DR:我通过单个文件播放时会产生很多噪音。我需要的是关于如何仍然能够修改我的样本/ DFT它们并且能够在没有噪声的情况下输出它们的一些建议。请注意,我只是一名计算机专业的二年级学生,并且没有多年的经验。
额外信息:位深度= 16;采样率= 22050;