Mac上でOctaveのsound()を使う

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を用いた数値計算入門” (北本 卓也)

3 Comments

Join the discussion and tell us your opinion.

ann
December 19, 2006 at 2:45 am

さっそく調べていただいてありがとうございます!
ばっちり再生できましたー。

nao
December 19, 2006 at 4:11 am

おお、お役に立ててよかったです。いい質問ありがとうございました。

Hi-farm blog » Blog Archive » Mac OS X Leopard環境でscilabのplaysndっぽい関数を作る。
December 18, 2008 at 4:48 am

[…] afplayに関しては、ここが詳しいです。(こちらはOctaveでの例ですね。) […]

Leave a reply