【发布时间】:2011-06-24 06:09:06
【问题描述】:
我正在尝试创建一个类似theremin 的程序,该程序根据鼠标光标位置播放连续音符。我正在使用 Carl Franklin 的 MIDI Tools 库来执行此操作。
这是我用来演奏音符的代码 sn-p。
byte pitch = 0;
while (exit == false)
{
byte newpitch = (byte)(32 + ((float)Cursor.Position.X / (float)SystemParameters.PrimaryScreenWidth) * 64);
if (newpitch != pitch)
{
instrument.StopNote(pitch,0);
instrument.PlayNote(newpitch, 53);
pitch = newpitch;
}
};
问题在于以这种方式演奏的音符听起来很明显;从一个音符到另一个音符有明显的过渡。
如何播放像连续改变音高的连续 theremin 声音?
【问题讨论】:
-
我想最好的人是卡尔富兰克林。你在问一个关于一个相对晦涩的图书馆的具体问题;为什么不咨询他们?
-
很多人推荐 Carl 的库,用于使用 C# 进行 MIDI 编程。所以我想真正做 MIDI 编程的人都熟悉它。此外,这个问题特定于 MIDI,而不是特定于 API。 API 只是 WinMM.dll 方法的包装器。熟悉 WinMM.dll 的人可以在这里为我提供帮助。