14.11.2 ミキサーデバイスオブジェクト

ミキサーオブジェクトは、2つのファイル風メソッドを提供します。

close( )
このメソッドは、開かれたミキサーデバイスファイルを閉じます。 ファイルを閉じた後でミキサーを使おうとすると、IOErrorを発生します。

fileno( )
開いたミキサーデバイスファイルのファイルハンドルナンバーを返します。

以下はオーディオミキシング固有のメソッドです。

controls( )
このメソッドは、利用可能なミキサーコントロールを指定するビットマスクを返 します (``コントロール''はミックス可能な特定の``チャンネル''で、たとえば SOUND_MIXER_PCMあるいはSOUND_MIXER_SYNTHです) 。 このビットマスクは全ての利用可能なミキサーコントロールのサブセットを示しま す --定数SOUND_MIXER_*はモジュールレベルで定義されています。 例えば、もし現在のミキサーオブジェクトがPCMミキサーをサポートしているか 調べるには、以下のPythonコードを実行します:

if mixer.controls() & (1 << ossaudiodev.SOUND_MIXER_PCM):
    # PCM is supported
    ... code ...

たいていの目的では、SOUND_MIXER_VOLUME (マスターボリューム) とSOUND_MIXER_PCMコントロールで十分です-- しかし、サウンドコントロールを選ぶときに、ミキサーを使用するコードはフレキ シブルでなければなりません。 例えば、Gravis UltrasoundではSOUND_MIXER_VOLUMEは存在しませ ん。

stereocontrols( )
ステレオミキサーコントロールを示すビットマスクを返します。 もしビットがセットされていたら対応するコントロールはステレオで、もしセット されていないならそのコントロールはモノラルか、ミキサーでサポートされていな いかどちらかです (そのどちらかを調べるにはcontrols()を組み合わ せて使います) 。

ビットマスクのデータを得る例としては、関数controls()のコードの 例を参照してください。

reccontrols( )
録音に使用できるミキサーコントロールを特定するビットマスクを返します。 ビットマスクから読み取る例としては、controls()のコードの例を参 照してください。

get( control)
与えられたミキサーコントロールのボリュームを返します。 返される値は2要素のタプル(left_volume,right_volume)です。 ボリュームの値は0 (無音) から100 (最大) で示されます。 もしコントロールがモノラルでも2要素のタプルが返されますが、2つの要素の値は 同じになります。

不正なコントロールを指定した場合はOSSAudioErrorが発生しま す。また、サポートされていないコントロールを指定した場合には IOErrorが発生します。

set( control, (left, right))
与えられたミキサーコントロールのボリュームを(left,right)に設定しま す。 leftrightは整数で、0 (無音) から100 (最大) の間でなけれ ばなりません。 成功したら、新しいボリューム値が2要素のタプルで返されます。 あるサウンドカードではミキサーの分解能の限界のため、指定したボリューム値 と厳密には同じにならないかもしれません。

不正なコントロールを指定するか、指定したボリューム値が範囲外なら OSSAudioErrorが発生します。

get_recsrc( )
このメソッドは、現在録音のソースとして使われているコントロールを示すビット マスクを返します。

set_recsrc( bitmask)
録音のソースを指定するのにこの関数を使います。 成功したら、新たな録音のソースを示すビットマスクを返します; 不正なソースが指定されたらIOErrorが発生します。 現在の録音のソースとしてマイク入力を設定する方法は以下の通りです:

mixer.setrecsrc (1 << ossaudiodev.SOUND_MIXER_MIC)

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。