love.sound.newSoundData (日本語)

ファイルパス, File, または Decoder から SoundData を新規作成します。 サンプルレート、チャンネル、ビット深度を指定して SoundData を作成することもできます。

音声データは生の形式でメモリへ復号します。この方法において 3 分の楽曲では 30 MB のメモリを使用するため、効果音のような短い音声でのみ作成を推奨します。

関数

概要

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()

関連


そのほかの言語