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

ミキサオブジェクトには、2つのファイル類似メソッドがあります:

close( )
すでに開かれているミキサデバイスファイルを閉じます。 ファイルを閉じた後でミキサを使おうとすると、IOErrorを 送出します。

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

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

controls( )
このメソッドは、利用可能なミキサコントロール (SOUND_MIXER_PCMSOUND_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 要素の タプルで返します。 サウンドカードによっては、ミキサの分解能上の制限から、指定したボリューム と厳密に同じにはならない場合があります。

不正なコントロールを指定した場合や、指定したボリューム値が範囲外であった 場合、IOError を送出します。

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

set_recsrc( bitmask)
録音のソースを指定にはこの関数を使ってください。呼び出しに成功すると、 新たな録音の (場合によっては複数の) ソースを示すビットマスクを返します; 不正なソースを指定するとIOErrorを送出します。 現在の録音のソースとしてマイク入力を設定するには、以下のようにします:

mixer.setrecsrc (1 << ossaudiodev.SOUND_MIXER_MIC)

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