obj.getaudio

lua.txtの記述

obj.getaudio(buf,file,type,size)
音声ファイルからオーディオデータを取得します。
オブジェクトの時間を基準とした位置のデータを取得します。
buf データを受け取るテーブルを指定します。
file 音声ファイル名("audiobuffer"を指定すると編集中の音声データが取得出来ます)
type 取得データの種類
"pcm"=PCMサンプリングデータ(16bitモノラル)
"spectrum"=周波数毎の音量データ
"fourier"=音声を離散フーリエ変換したデータ(sizeの指定は不要、1024固定)
size 取得するデータ数(指定した値より少ない場合があります)
戻り値 取得したデータ数,サンプリングレート
例:n,rate = obj.getaudio(buf,"audiobuffer","spectrum",32)



解説

音声データを取得して、音声に合わせたモーションや波形などを作成することが出来ます。
音声データは配列に格納され、その配列を使用してスクリプトを記述します。


音声データ(spectrum)

取得データの種類を「spectrum」とした場合、音声を分割し、その分割した周波数ごとの音量を数値で取得することとなります。
戻り値は、実際に取得したデータ数で通常はsizeと同様です。最大1024程度まで取得し、それを超えると戻り値とsizeが異なるようになります。
div=20 --分割数
buf={} --配列の初期化
n=obj.getaudio(buf,"audiobuffer","spectrum",div)

このとき、buf[1]→周波数1の音量、buf[2]→周波数2の音量、…というようになります。

【波形を作成する例】
div=20
buf={}
n=obj.getaudio(buf,"audiobuffer","spectrum",div)

w=obj.screen_w h=obj.screen_h
obj.load("figure","円",0xffffff,20)
for i=0,n-1 do
  x=-w/2+w/n*i
  y=h/2-buf[i+1]/10
  obj.draw(x,y,0,0.5)
end


  • 最終更新:2012-07-07 12:08:14

このWIKIを編集するにはパスワード入力が必要です

認証パスワード