没有使用CoreMIDI,Ruby,Mac OS X Lion的MIDI声音

时间:2013-07-08 22:05:11

标签: ruby macos audio midi

我正在阅读“实用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”的文件。所以我猜这不是我需要的。

提前致谢。

1 个答案:

答案 0 :(得分:0)

好的,终于找到了。 发现这个: https://www.ruby-toolbox.com/categories/music_midi  和 https://github.com/arirusso/unimidi

感谢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