需要C#.wav文件处理建议

时间:2015-11-02 21:20:56

标签: c# naudio

我正在制作的是一个小型音频编辑器,可以加载.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;

0 个答案:

没有答案