Difference between revisions of "Source:setFilter"

m
m (clarify how the filter works)
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{newin|[[0.11.0]]|110|type=function}}
+
{{newin|[[11.0]]|110|type=function}}
 
Sets a low-pass, high-pass, or band-pass filter to apply when playing the Source.
 
Sets a low-pass, high-pass, or band-pass filter to apply when playing the Source.
  
Line 27: Line 27:
 
=== Returns ===
 
=== Returns ===
 
Nothing.
 
Nothing.
 +
 +
== Examples ==
 +
=== Playing music at half volume with a low pass filter applied ===
 +
<source lang="lua">
 +
function love.load()
 +
    local source = love.audio.newSource('music.ogg', 'stream')
 +
    source:setFilter {
 +
        type = 'lowpass',
 +
        volume = .5,
 +
        highgain = .4,
 +
    }
 +
    source:play()
 +
end
 +
</source>
  
 
== Notes ==
 
== Notes ==
 
Audio filter functionality is not supported on iOS.
 
Audio filter functionality is not supported on iOS.
 +
 +
While the cutoff frequency cannot be set directly, changing high/lowgain has the effect of altering the cutoff. See it explained in [https://github.com/kcat/openal-soft/issues/164 this thread].
  
 
== See Also ==
 
== See Also ==

Revision as of 00:16, 27 June 2019

Available since LÖVE 11.0
This function is not supported in earlier versions.

Sets a low-pass, high-pass, or band-pass filter to apply when playing the Source.

Function

Synopsis

success = Source:setFilter( settings )

Arguments

table settings
The filter settings to use for this Source, with the following fields:
FilterType type
The type of filter to use.
number volume
The overall volume of the audio. Must be between 0 and 1.
number highgain
Volume of high-frequency audio. Only applies to low-pass and band-pass filters. Must be between 0 and 1.
number lowgain
Volume of low-frequency audio. Only applies to high-pass and band-pass filters. Must be between 0 and 1.

Returns

boolean success
Whether the filter was successfully applied to the Source.

Function

Disables filtering on this Source.

Synopsis

Source:setFilter( )

Arguments

None.

Returns

Nothing.

Examples

Playing music at half volume with a low pass filter applied

function love.load()
    local source = love.audio.newSource('music.ogg', 'stream')
    source:setFilter {
        type = 'lowpass',
        volume = .5,
        highgain = .4,
    }
    source:play()
end

Notes

Audio filter functionality is not supported on iOS.

While the cutoff frequency cannot be set directly, changing high/lowgain has the effect of altering the cutoff. See it explained in this thread.

See Also

Other Languages