love.sound.newSoundData (Français)

Crée un nouveau SoundData (données sonores) depuis un chemin de fichier, File (fichier), ou Decoder (décodeur). Il est également possible de créer un SoundData avec un taux d'échantillonnage, cannaux et profondeur de bits personnalisés.

Les données du son seront décodés en mémoire dans un format brut. Il est recommandé de ne créer que des sons courts, tels que des effets, comme une chanson de 3 minutes utilise 30 Mo de mémoire avec cette méthode.

Fonction

Synopsis

soundData = love.sound.newSoundData( filename )

Arguments

string (Français) filename
Nom du fichier à charger.

Retourne

SoundData (Français) soundData
Nouvel objet SoundData.

Fonction

Synopsis

soundData = love.sound.newSoundData( file )

Arguments

File (Français) file
Objet File pointant sur un fichier audio.

Retourne

SoundData (Français) soundData
Nouvel objet SoundData.

Fonction

Synopsis

soundData = love.sound.newSoundData( decoder )

Arguments

Decoder (Français) decoder
Décode les données à l'aide de ce décodeur jusqu'à EOF (fin de fichier).

Retourne

SoundData (Français) soundData
Nouvel objet SoundData.

Fonction

Synopsis

soundData = love.sound.newSoundData( samples, rate, bits, channels )

Arguments

number (Français) samples
Nombre total d'échantillons.
number (Français) rate (44100)
Nombre d'échantillons par seconde
number (Français) bits (16)
Bits par échantillon (8 ou 16).
number (Français) channels (2)
Soit 1 pour mono ou 2 pour stéréo.

Retourne

SoundData (Français) soundData
Nouvel objet SoundData.

Exemples

Charger un SoundData depuis des fichiers

wav = love.sound.newSoundData("doom.wav")
-- Attention : Si doom.mp3 est un fichier volumineux, il prendra 
-- beaucoup de temps pour être décodé.
mp3 = love.sound.newSoundData("doom.mp3")

Fonction bip

local rate = 44100 -- échantillons par seconde
local length = 1/32 -- 0,03125 secondes
local tone = 440 -- Hz
local p = math.floor(rate/tone) -- 100 (longueur de l'onde en échantillons)
local soundData = love.sound.newSoundData(length*rate, rate, 16, 1)
for i=0, length*rate-1 do 
	soundData:setSample(i, i%p<p/2 and 1 or -1) -- La moitié de l'onde est 1, l'autre moitié -1
end
local source = love.audio.newSource(soundData)
local function beep() source:play() end

Call it as:

beep()

Voir également


Autres langues