トップへ戻る Cdrom || Color || Cursors || Display || Draw || Event || Examples || Font || Gfxdraw || Image || Joystick || Key || Locals || Mixer || Mouse || Movie || Music || Overlay || Pixelarray || Pygame || Rect || Scrap || Sndarray || Sprite || Surface || Surfarray || Tests || Time || Transform
pygame.sndarray
    音声データを直接編集するためのpygameモジュールです。

    この命令では、音声データをSoundオブジェクト形式と配列形式との間で相互変換できます。このモジュールは、numpyかNumericどちらかの拡張モジュールをインストールしている場合にのみ使用できます。

    音声データは1秒あたり数千のサンプルによって構成されており、サンプルとは特定の時点における波の振れ幅のことです。例えば22キロヘルツの音声の場合、配列型音声データの5番目の要素には、22000分の5秒時点での波の振れ幅の値が格納されています。

    取得されるサンプルの値は8bitか16bitの整数となり、どちらになるかは音声データの形式によって変わります。ステレオ形式の音声はファイルでは一サンプルあたり二つの値を持ち、モノラル形式の音声はファイルでは一サンプルあたり一つの値を持ちます。

    下記の配列形式をサポートしています。

      numpy
      numeric
    

    numpyモジュールがインストールされていた場合、それが既定の配列として使用されます。numpyモジュールがインストールされておらず、Numericモジュールがインストールされていた場合は、そちらが既定の配列として使用されます。numpyライブラリとNumericライブラリのどちらもインストールされていない場合は、ImportErrorのエラーが発生します。

    use_arraytype()命令で上記numpyとnumericのどちらかを設定することで、使用する配列の種類を状況に応じて変更することができます。

    補足: numpy形式のデータとNumeric形式のデータは完全に互換性があるわけはありません。一方の形式では正常に動作した配列操作が、もう一方の形式では異なる動作をしたりデータを壊してしまったりすることさえあります。

    さらに言うと、numpy形式ではNumeric形式と違って符号なしの16bit整数を使用することができます。そのため16bitデータの音声を扱う場合、サンプルデータの種類によっては符号なし整数として扱われます。一方で Numeric形式は、常に符号付整数で値を表します。このpygame.sndarrayの命令を使用して取得された値がおかしいと思ったときは、それぞれの配列形式の違いを思い出してください。



    pygame.sndarray.array
      Soundオブジェクト形式のサンプルデータをコピーし、配列形式に変換します。
      pygame.sndarray.array(Sound): return array

      サンプルデータをコピーして、配列形式の音声データを新規に作成します。pygame.mixer.get_init命令で取得される配列形式が使用されます。



    pygame.sndarray.samples
      配列形式のデータを通して、Soundオブジェクト形式のサンプルデータを操作します。
      pygame.sndarray.samples(Sound): return array

      Soundオブジェクト形式のサンプルデータを参照する配列形式の音声データを、新規に作成します。配列形式のデータを編集すると、元となったSoundオブジェクト形式のデータにもその結果が反映されます。pygame.mixer.get_init命令で取得される配列形式が使用されます。



    pygame.sndarray.make_sound
      配列型の音声データをSoundオブジェクト型に変換します。
      pygame.sndarray.make_sound(array): return Sound

      配列型の音声データから、再生可能なSoundオブジェクト型の音声データを新規に作成します。この命令を使用するには、mixerモジュールが初期化されており、引数として渡す配列がmixerの音声形式に対応したものでなければなりません。



    pygame.sndarray.use_arraytype
      配列型の音声データで使われる配列形式を設定します。
      pygame.sndarray.use_arraytype (arraytype): return None

      この命令で設定したものが、sndarrayモジュールの各命令で使われる配列形式となります。現在は下記の配列形式に対応しています:

        numeric
        numpy
      

      対応していない配列形式を設定した場合、ValueErrorのエラーが発生します。

      この命令はpygameのバージョン1.8で新たに実装されました。



    pygame.sndarray.get_arraytype
      現在設定されている既定の配列形式を取得します。
      pygame.sndarray.get_arraytype (): return str

      現在設定されている配列形式名を戻り値として返します。ここで取得できる値は、get_arraytypes()命令で取得できるタプル型の値にも含まれています。タプル型の中で、配列を作成するのに使用される既定の配列モジュールの方が取得されます。

      この命令はpygameのバージョン1.8で新たに実装されました。



    pygame.sndarray.get_arraytypes
      pygameが、現時点で対応している配列形式を取得します。
      pygame.sndarray.get_arraytypes (): return tuple

      どの配列形式が使用できるかを調べ、使用できるものをタプル型の文字列の戻り値として返します。取得されたタプル型の各値は、pygame.sndarray.use_arraytype()命令の引数としてそのまま使用できます。対応している配列形式が見つからない場合、None値が戻り値として返されます。

      この命令はpygameのバージョン1.8で新たに実装されました。



トップへ戻る Cdrom || Color || Cursors || Display || Draw || Event || Examples || Font || Gfxdraw || Image || Joystick || Key || Locals || Mixer || Mouse || Movie || Music || Overlay || Pixelarray || Pygame || Rect || Scrap || Sndarray || Sprite || Surface || Surfarray || Tests || Time || Transform