「Practical Ruby Projects」という本を読んでいて、著者が「SimpleSynth」というソフトウェアを使用して MIDI サウンドを再生するための Ruby コードを与える第 2 章を終えたところです。特定の例へのリンクは次のとおりです: https://github.com/mattybojo/midi_music/blob/master/music.rb
Mac OS では、FreeSynth と呼ばれるフリー ソフトウェアを開く必要があります: ( http://notahat.com/simplesynth/ ) これにより、再生中のサウンドを聞くことができます。
何か聞こえるはずですが、このコードを実行しても何も聞こえません。スクリプトは正しく機能しています。「FreeSynth」ソフトウェアを閉じるたびに、Ruby は「noMIDIDestinations」エラーをスローします。
エラー宣言は次のとおりです。 class NoMIDIDestinations < Exception; 終わり
そして、これは例外を発生させるコードです:
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 に関するすべてのことは頭を悩ませています。CoreAudio (Apple のサウンド フレームワーク) に MIDI に関する大きな変更がないか調べてみましたが、何も見つかりませんでした。
私は Macbook Pro、Lion を使用しています。FreeSynth を使用する代わりになるものはありますか? MIDI シンセサイザーをいくつかダウンロードしましたが、「component」という名前のファイルしかありませんでした。だから私はそれが私が必要としているものではないと推測しています。
前もって感謝します。