Difference between revisions of "love.sound.newSoundData (日本語)"
m (→用例: Beep 関数の追加) |
m (→Function) |
||
Line 11: | Line 11: | ||
=== 返値 === | === 返値 === | ||
{{param|SoundData|soundData|新規 SoundData オブジェクト。}} | {{param|SoundData|soundData|新規 SoundData オブジェクト。}} | ||
− | == | + | == 関数 == |
− | === | + | === 概要 === |
<source lang="lua"> | <source lang="lua"> | ||
soundData = love.sound.newSoundData( file ) | soundData = love.sound.newSoundData( file ) | ||
Line 20: | Line 20: | ||
=== 返値 === | === 返値 === | ||
{{param|SoundData|soundData|新規 SoundData オブジェクト。}} | {{param|SoundData|soundData|新規 SoundData オブジェクト。}} | ||
+ | |||
== 関数 == | == 関数 == | ||
=== 概要 === | === 概要 === |
Latest revision as of 08:13, 22 July 2023
ファイルパス, 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()
関連