Mac上でOctaveのsound()を使う

2006 BLOG

MaxとMATLABのコミュニケーションについて書いた記事のコメントで質問された、Mac上のOctaveでsound関数(オーディオの再生)を使う方法について。

Octave Forgeのsound関数のページによると、LinuxやFreeBSD以外のプラットフォームの場合、そのままではsound()は動かないとある。代わりに簡単なスクリプトを書いて別のソフトで代用する方法が紹介されているので、実際にやってみた。


shell上でサウンドを再生するアプリケーションが必要になるが、幸いなことにXcodeのサンプルの中にぴったりのものを発見! (たけみつくん、ありがとう!)

/Developer/Examples/CoreAudio/Services/AudioFileTools/

のafplayがそれ(ちなみに別のXcodeサンプルPlayFileでは、ファイルの長さが認識できないという現象に遭遇)。

使い方は簡単!

1. afplayをビルドして適当なところにおく

2. 次のようなスクリプトを作って、適当なところにセーブする

#!/bin/sh
cat > ~/.octave_play.au
(afplayへのパス) ~/.octave_play.au
rm -f ~/.octave_play.au

テンポラリーなファイルを作って、afplayで再生するというわけ。

3. globalな環境変数を設定するために ~/.octaverc(なければ作る)に次の一文を追加

global sound_play_utility="(2で作ったのスクリプトへのパス)"; 

これで、Octave上でサウンドファイルが再生することができるようになった!


“ディジタル・サウンド処理入門音のプログラミングとMATLAB(OctaveScilab)における実際” (青木 直史)


“Octaveを用いた数値計算入門” (北本 卓也)