嗨,我试着用Euterpea弹一首钢琴曲,但弹了几秒钟后,它只给我错误消息:
PortMidi warning: get_free_output_buffer() wait timed out after 1000ms. 不断重复,直到我中断程序。我使用的是Windows,根据他们网站上的快速教程,我不需要安装任何额外的程序来使用这个库。这段代码足以获取错误消息:
let caChord = chord [c 3 qn, a 2 qn]
doubleCa = times 2 caChord
lowerHand = line [f 2 qn, doubleCa]
in play $ chord [line [times 3 (line [e 5 en, f 5 en]),times 3 (line [d 5 en, f 5 en]),times 3 (line [c 5 en, f 5 en]),times 3 (line [bf 4 en, f 5 en])], times 4 lowerHand] 看起来,这应该是一个非常明显的问题,考虑到我还没有找到任何关于它的帖子,但没有太多的尝试就面对了这个错误。
发布于 2019-03-02 08:40:25
https://github.com/PortMidi/PortMidi/blob/master/portmidi/pm_win/pmwinmm.c#L421:L462上的PortMidi源代码可能会为您提供解决方案。
根据源代码的注释,该警告的一些可能原因可能是对PortMidi的调用未生成任何消息、挂起的MIDI驱动程序或内存不足。在任何情况下,PortMidi的实现都会继续循环并生成警告,直到缓冲区中出现消息。
基于此注释https://github.com/PortMidi/PortMidi/issues/4#issuecomment-250340390,似乎不再开发或更新PortMidi来支持新的操作系统API
我不再开发这个库了
令人遗憾的是,最初的C库也不再被开发,而且随着OSes逐渐弃用旧的API,它肯定越来越过时。目前我还没有找到任何高质量的替代方案。
https://stackoverflow.com/questions/54953647
复制相似问题