インストール直後にやっておくと便利なカスタマイズ
作業フォルダ
「 C:\Documents and Settings\ユーザー名フォルダ」直下に octave というフォルダが作成され、このパスは変数「 home_path 」に設定され、
cd(home_path)
と入力すれば移動できる ( cd home_path では駄目 ) 。
( Octave 3.2.4 では home_path の代わりに home あるいは default_home )
しかしこのフォルダはマイドキュメントからはアクセスできず、さらに、Octave 起動直後のフォルダ ( pwd でカレントフォルダが表示できる ) C:\Program Files\Octave とも異なっていて使いづらい。
スタートアップファイル「 .octaverc 」
起動直後のカレントフォルダや、ユーザーフォルダを変更するには、「 C:\Documents and Settings\ユーザー名フォルダ」直下にファイル「 .octaverc 」を作成し、これに cd コマンドや 代入式を記述しておけばよい。
ただし、 Windows 標準のメモ帳やエクスプローラーではドット「.」が先行するようなファイルが作成できないので、 NotePad++ 等のテキストエディタで作成しなければならない。
.octaverc には例えば次の行のように記述する。
home_path = 'C:\Documents and Settings\user_name\My Documents\Octave'
cd(home_path)
ここでダブルクォーテーション「"」を使う場合は、次のように\を重ねなければならないことに注意。
home_path = "C:\\Documents and Settings\\user_name\\My Documents\\Octave"
cd(home_path)
Octave 3.2.4 では、シングルクォーテーションでも\を重ねないとダメのようです。
Windows で sound 関数を使う
Octave 3.0 以降には playrec という Windows 用のオーディオ出力アプリケーションが同梱されているが、sound 関数はこれに対応しておらず音が出ない。Octave\share\octave\packages\audio-1.1.2\sound.m の大体 66 行目辺りの引数チェックが終わったあたりに次のコードを追加すれば、Windows でも sound 関数で音が出力できる。
## Windows version has playrec utility.
if tolower(substr(getenv("os"), 1, 7)) == "windows",
if playrec("isInitialised"), playrec("reset"); endif
playrec("init", rate, 2, 0);
playrec("play", data, 2);
return;
endif
ただしステレオチャンネルなど多チャンネルには対応していない。また、playrec の引数の 2 は出力ポートであるが、これは各自 playrec("getDevices") の応答をみて自分の PC の設定に沿って書き直す必要がある。また、音出力の関数は他にもあるので、このカスタマイズは sound に限ったことではない。
playrec
Octave\libexec\octave\3.0.3\oct\i686-pc-msdosmsvc\playrec.mex
playrec("help", "知りたいコマンド")
簡単な使い方の流れ
playrec("getDevices")
で PC の構成を調べる。入出力ポート番号を確認する。
playrec("init", サンプリングレート, 出力ポート番号, 入力ポート番号);
でポートを初期化する。
playrec("play", ベクトルデータ, 出力ポート番号);
で音データを鳴らす。サンプリングレートを変える場合は、まず reset を行ってから init を発行しなければならない。二重に init は発行できない。init が済んでいるかどうかを調べるのが、
playrec("isInitialised")
である。
playrec は実際には多チャンネルを扱え、また非同期に入出力できるので、詳しいことは本家のドキュメントを参照してください。
最終更新:2010年06月18日 16:06