コンソールコマンド入力型オーディオプレイヤー aush
aushは標準入力からのコマンドで操作するWindows用のサウンドプレイヤーです。
プログラムを実行して、標準入力から次のようなコマンドで音を制御します。
- 「open ファイル名」でwavファイルやoggファイルを開く
- 「play」で再生
- 「speed 倍率(0.5〜2.0)」で倍速再生
- 「stop」で停止
- 「begin」で頭へシーク
- 「sync」で停止するのを待つ
- 「quit」「exit」「q」「bye」で終了
音の鳴り終わりの際は標準出力に停止した旨を出力します。標準出力に接続された他のプログラムはそれを検出して自動的に何か処理を行うことができます。
NTEmacsやMeadowから音を鳴らすために作りました。aushと接続して音を制御するためのEmacs Lisp、aush.elも付属しています。
そのほか、スクリプトに対応したエディターなどから制御して使う用途が考えられます。
コマンドラインオプションとして、上記オーディオ制御用のコマンドを指定することが出来ます。複数のコマンドを指定するには、左右に空白を入れた;で区切ります。例えばfoo.oggを再生して鳴り終わったら終了させるには、「aush.exe open foo.ogg ; play ; sync ; quit」とします。
ソースコードや実行ファイルは次の場所で配布しています。
将来の改良の余地
- 多重再生対応。複数のサウンドファイルを同時に開いて再生できるようにしたいものです。それにはサウンドを区別するための識別子(ハンドル)をコマンドに指定できるようにする必要があるでしょう。その上で内部でハンドルとサウンドオブジェクトとの対応表を持つことになるでしょう。
音の終了待ち(条件待ち)コマンドの追加。リダイレクトを使えばaushをコマンドラインから使うこともできますが、音が鳴り終わったら自動的に別の処理をするといったことが現在はやりづらくなっています。音の鳴り終わりを待つようなコマンドがあると便利そうです。→syncコマンドを追加しました。
コマンドライン対応。コマンドラインからある程度操作できた方がより便利に使えると思う。→コマンドラインオプションからコマンドを指定できるようにしました。
AKIYAMA Kouhei