C# 音频生成软件或.NET库

C# 音频生成软件或.NET库,c#,audio,generator,C#,Audio,Generator,我需要能够在c#应用程序中播放某些音调。我不在乎它是动态生成它们,还是从文件中播放它们,但我只需要一些方法来生成不仅具有可变音量和频率,而且具有可变音色的音调。如果我用来生成这些音调的任何东西都有许多音色预设,这将特别有帮助,如果这些音色不都是midi风格的(这意味着其中一些听起来像是实际乐器的录音),那就更棒了 有什么建议吗?有一篇关于CodeProject的热门文章,内容大致如下: 您还可以检查此线程: 你也许想看看我的问题 特别是使用是一个很好的选择为了使生成的音调不听起来像“midi

我需要能够在c#应用程序中播放某些音调。我不在乎它是动态生成它们,还是从文件中播放它们,但我只需要一些方法来生成不仅具有可变音量和频率,而且具有可变音色的音调。如果我用来生成这些音调的任何东西都有许多音色预设,这将特别有帮助,如果这些音色不都是midi风格的(这意味着其中一些听起来像是实际乐器的录音),那就更棒了


有什么建议吗?

有一篇关于CodeProject的热门文章,内容大致如下:

您还可以检查此线程:
你也许想看看我的问题


特别是使用是一个很好的选择

为了使生成的音调不听起来像“midi ish”,您必须使用真实的示例并播放它们。试着找到一些好的真实仪器样本库,比如

然后,当您想用它们来创作旋律时,只需相对于原始采样频率交替播放频率即可


如果你觉得这个答案有用,请给我写封信。

这篇文章对我有类似的帮助:

该部分特别是Beep类:

public class Beep
{
  public static void BeepBeep(int Amplitude, int Frequency, int Duration)
  {
    double A = ((Amplitude * (System.Math.Pow(2, 15))) / 1000) - 1;
    double DeltaFT = 2 * Math.PI * Frequency / 44100.0;

    int Samples = 441 * Duration / 10;
    int Bytes = Samples * 4;
    int[] Hdr = {0X46464952, 36 + Bytes, 0X45564157, 0X20746D66, 16, 0X20001, 44100, 176400, 0X100004, 0X61746164, Bytes};
    using (MemoryStream MS = new MemoryStream(44 + Bytes))
    {
      using (BinaryWriter BW = new BinaryWriter(MS))
      {
        for (int I = 0; I < Hdr.Length; I++)
        {
          BW.Write(Hdr[I]);
        }
        for (int T = 0; T < Samples; T++)
        {
          short Sample = System.Convert.ToInt16(A * Math.Sin(DeltaFT * T));
          BW.Write(Sample);
          BW.Write(Sample);
        }
        BW.Flush();
        MS.Seek(0, SeekOrigin.Begin);
        using (SoundPlayer SP = new SoundPlayer(MS))
        {
          SP.PlaySync();
        }
      }
    }
  }
}
Beep.BeepBeep(100, 1000, 1000); /* 10% volume */