我正在阅读“实用Ruby项目”一书,刚刚完成了第2章,作者使用名为“SimpleSynth”的软件为Ruby代码播放了一些MIDI声音。 以下是特定示例的链接:https://github.com/mattybojo/midi_music/blob/master/music.rb
在Mac OS上,你应该打开一个名为FreeSynth的免费软件:( http://notahat.com/simplesynth/),它可以让你听到正在播放的声音。
我应该听到一些声音,但在运行此代码后我什么也听不到。 脚本工作正常。每当我关闭“FreeSynth”软件时,Ruby都会抛出“noMIDIDestinations”错误。
这是错误声明: class NoMIDIDestinations<例外;端
这是引发异常的代码:
num = C.mIDIGetNumberOfDestinations()
raise NoMIDIDestinations if num < 1 # If no MIDI devices listening raise exception
这基本上意味着没有应用程序监听MIDI信号。
如果我在FreeSynth打开时运行它,它不会抛出此异常,我可以看到它在sleep语句之间暂停。
# This is the code that outputs the sound to a listening MIDI synth
midi = LiveMIDI.new
midi.note_on(0, 60, 100)
sleep(1)
midi.note_off(0, 60)
sleep(1)
midi.program_change(1, 40)
midi.note_on(1, 60, 100)
sleep(1)
midi.note_off(1, 60)
所以脚本工作正常,这只是其他问题。
有人可以帮我解决这个问题吗?
我认为问题可能出在MacOS中的MIDI上,但我不是一个健全的家伙,所有这些MIDI的东西都在我脑海中。我环顾四周看看有关MIDI的CoreAudio(Apple的声音框架)是否有任何重大变化,但没有发现任何变化。
我在Macbook Pro上,Lion。 有没有使用FreeSynth的替代方案?我下载了几个MIDI合成器,但它们只有一个名为“component”的文件。所以我猜这不是我需要的。
提前致谢。
答案 0 :(得分:0)
感谢reddit.com/r/ruby上的人们 http://www.reddit.com/r/ruby/comments/1hwwk5/need_help_finding_a_software_that_takes_in_midi/ 爱Reddit。
注意:由于某种原因,stackoverflow不支持带有双下划线的URL地址。第一个网址实际上是“music__midi