我正在尝试开始使用Haskell的Euterpea库。我的第一个目标是让它播放给定的声音文件(例如mp3或wav),但首先我按照说明遇到了一个问题,让它只能以ghci播放简单的音符声音。

按照Euterpea的web page上的“设置MIDI”说明,我运行了

import Euterpea
play $ c 4 qn

在ghci中。 “播放”命令导致以下错误消息:
Prelude Euterpea> play $ c 4 qn
*** Exception: No MIDI output device found
CallStack (from HasCallStack):
  error, called at ./Euterpea/IO/MIDI/MidiIO.lhs:122:18 in Euterpea-2.0.2-Iz37iWlkpjn2emP4FnvOI1:Euterpea.IO.MIDI.MidiIO

我以为我需要指定MIDI输出到我的机器(macOS Sierra),并找到了一个名为“Audio MIDI Setup”的应用程序,但是它表明已经指定了MIDI输出(我的内部扬声器)。

有人知道这个问题是什么或如何解决?

最佳答案

也许您解决了这个问题,但是为了后代,有一些想法:

听起来好像您没有安装并首先运行MIDI合成器(例如SimpleSynth)。 AFAICT,音频MIDI设置实际上并不包含软件合成器,而advanced / hardware MIDI setup则更多。

这将创建Euterpea在那里找不到的MIDI输出设备。您可能还需要使用各种 channel (例如,使用playDev n而不是play并从设备列表中得出n的值...甚至尝试1到8)

无论哪种方式,在Donya的working with MIDI on Mac OS X页面上都有一些针对Mac的良好帮助。希望能有所帮助。

10-07 19:35
查看更多