love.sound.newSoundData (日本語)
ファイルパス, File, または Decoder から SoundData を新規作成します。 サンプルレート、チャンネル、ビット深度を指定して SoundData を作成することもできます。
音声データは生の形式でメモリへ復号します。この方法において 3 分の楽曲では 30 MB のメモリを使用するため、効果音のような短い音声でのみ作成を推奨します。
Contents
関数
概要
soundData = love.sound.newSoundData( filename )
引数
string filename
- 読み込みを行うファイルのファイル名を指定します。
返値
SoundData soundData
- 新規 SoundData オブジェクト。
関数
概要
soundData = love.sound.newSoundData( file )
引数
File file
- 音声ファイルを指し示す File オブジェクト。
返値
SoundData soundData
- 新規 SoundData オブジェクト。
関数
概要
soundData = love.sound.newSoundData( decoder )
引数
Decoder decoder
- Decoder からデータが EOF になるまで複合化を行うデータ。
返値
SoundData soundData
- 新規 SoundData オブジェクト。
関数
概要
soundData = love.sound.newSoundData( samples, rate, bits, channels )
引数
number samples
- 合計サンプル数。
number rate (44100)
- 秒ごとのサンプル数。
number bits (16)
- ビットごとのサンプル数 (8 または 16)。
number channels (2)
- 1 でモノラル または 2 でステレオ のいずれか。
返値
SoundData soundData
- 新規 SoundData オブジェクト。
用例
ファイルから SoundData を読み込みます。
wav = love.sound.newSoundData("doom.wav")
-- 注意: doom.mp3 は巨大なファイルであるとき、
-- 復号化には時間が掛かります。
mp3 = love.sound.newSoundData("doom.mp3")
Beep 関数
local rate = 44100 -- 秒あたりのサンプル数
local length = 1/32 -- 0.03125 秒
local tone = 440.0 -- 周波数
local p = math.floor(rate/tone) -- 100 (サンプルの波形長)
local soundData = love.sound.newSoundData(math.floor(length*rate), rate, 16, 1)
for i=0, soundData:getSampleCount() - 1 do
-- soundData:setSample(i, math.sin(2*math.pi*i/p)) -- 正弦波
soundData:setSample(i, i%p<p/2 and 1 or -1) -- 矩形波。波形の前半は 1 であり、後半は -1 です。
end
local source = love.audio.newSource(soundData)
local function beep() source:play() end
呼び出し方法は、
beep()
関連