2010-10-21 68 views
2

这个家伙说是: http://web.tiscalinet.it/giordy/midi-tech/lowmidi.htm 与1998年的一本真正旧书(Maximum MIDI)一样。 MSDN没有提到它。 我没有听到任何声音。是否可以使用midiOutLongMsg来演奏和弦? (Win32 API)

  • 我充满状态的字符缓冲区|记|速度|状态|记|速度...
  • 集的lpData,dwBufferLength和dwFlags中一个MIDIHDR结构
  • 呼叫midiOutPrepareHeader的(MMSYSERR_NOERROR)
  • 呼叫midiOutLongMsg(MMSYSERR_NOERROR)

还是没有声音!垃圾邮件发送midiOutShortMsg正在工作,但它会在较慢的机器上工作吗?他们是否改变了功能?

谢谢。

回答

2

我是个白痴!我发现:Microsoft GS Wavetable Synth不支持在midiOutLongMsg中发送多条短消息。 MIDI映射器可以!

+2

不要忘了接受你自己的答案是正确的 – abatishchev 2010-10-21 07:35:50

+0

是的,这让我等了2天才能够接受我自己的答案。会做。 – Brian 2010-10-22 05:46:37

+0

这个地方有文档吗?你在哪里找到这个? – Brad 2010-10-23 14:02:48

0

midiOutShortMsg应该足够快,即使在慢速机器上。 MIDI接口本身(即硬件,但一些软件会限制自己)以31,250波特运行。这当然是忽略了任何你打电话给midiOutShortMsg的缓慢的代码。

无论如何,从技术角度而言,如果以下注释使用相同的状态字节,您还应该能够脱离一个状态字节。所以,如果你想要做的ON/OFF(使用关速度0)注和这些音符都在同一个频道,你可以这样做:

status|note|velocity|note|velocity|note|velocity|note|velocity 

这就是所谓的running status

相关问题