2017-09-12 22:42:36 +02:00
<?xml version="1.0" encoding="UTF-8" ?>
2022-03-16 23:01:02 +01:00
<class name= "AudioStreamPlayer3D" inherits= "Spatial" version= "3.5" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2017-09-12 22:42:36 +02:00
<brief_description >
2021-05-05 20:37:35 +02:00
Plays positional sound in 3D space.
2017-09-12 22:42:36 +02:00
</brief_description>
<description >
2020-11-23 16:56:05 +01:00
Plays a sound effect with directed sound effects, dampens with distance if needed, generates effect of hearable position in space. For greater realism, a low-pass filter is automatically applied to distant sounds. This can be disabled by setting [member attenuation_filter_cutoff_hz] to [code]20500[/code].
2020-08-25 15:59:57 +02:00
By default, audio is heard from the camera position. This can be changed by adding a [Listener] node to the scene and enabling it by calling [method Listener.make_current] on it.
2021-05-05 20:37:35 +02:00
See also [AudioStreamPlayer] to play a sound non-positionally.
[b]Note:[/b] Hiding an [AudioStreamPlayer3D] node does not disable its audio output. To temporarily disable an [AudioStreamPlayer3D]'s audio output, set [member unit_db] to a very low value like [code]-100[/code] (which isn't audible to human hearing).
2017-09-12 22:42:36 +02:00
</description>
<tutorials >
2021-11-15 17:11:20 +01:00
<link > $DOCS_URL/tutorials/audio/audio_streams.html</link>
2017-09-12 22:42:36 +02:00
</tutorials>
<methods >
2017-09-21 05:31:36 +02:00
<method name= "get_playback_position" >
2021-07-30 15:28:05 +02:00
<return type= "float" />
2017-09-12 22:42:36 +02:00
<description >
2017-10-10 16:00:10 +02:00
Returns the position in the [AudioStream].
2017-09-12 22:42:36 +02:00
</description>
</method>
2019-04-15 14:49:41 +02:00
<method name= "get_stream_playback" >
2021-07-30 15:28:05 +02:00
<return type= "AudioStreamPlayback" />
2019-04-15 14:49:41 +02:00
<description >
2020-01-08 22:51:16 +01:00
Returns the [AudioStreamPlayback] object associated with this [AudioStreamPlayer3D].
2019-04-15 14:49:41 +02:00
</description>
</method>
2017-09-12 22:42:36 +02:00
<method name= "play" >
2021-07-30 15:28:05 +02:00
<return type= "void" />
<argument index= "0" name= "from_position" type= "float" default= "0.0" />
2017-09-12 22:42:36 +02:00
<description >
2019-06-22 01:04:47 +02:00
Plays the audio from the given position [code]from_position[/code], in seconds.
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "seek" >
2021-07-30 15:28:05 +02:00
<return type= "void" />
<argument index= "0" name= "to_position" type= "float" />
2017-09-12 22:42:36 +02:00
<description >
2017-09-16 13:33:58 +02:00
Sets the position from which audio will be played, in seconds.
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "stop" >
2021-07-30 15:28:05 +02:00
<return type= "void" />
2017-09-12 22:42:36 +02:00
<description >
2017-09-16 13:33:58 +02:00
Stops the audio.
2017-09-12 22:42:36 +02:00
</description>
</method>
</methods>
<members >
2019-06-29 12:38:01 +02:00
<member name= "area_mask" type= "int" setter= "set_area_mask" getter= "get_area_mask" default= "1" >
2022-02-10 23:25:33 +01:00
Determines which [Area] layers affect the sound for reverb and audio bus effects. Areas can be used to redirect [AudioStream]s so that they play in a certain audio bus. An example of how you might use this is making a "water" area so that sounds played in the water are redirected through an audio bus to make them sound like they are being played underwater.
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "attenuation_filter_cutoff_hz" type= "float" setter= "set_attenuation_filter_cutoff_hz" getter= "get_attenuation_filter_cutoff_hz" default= "5000.0" >
2020-11-23 16:56:05 +01:00
Dampens audio using a low-pass filter above this frequency, in Hz. To disable the dampening effect entirely, set this to [code]20500[/code] as this frequency is above the human hearing limit.
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "attenuation_filter_db" type= "float" setter= "set_attenuation_filter_db" getter= "get_attenuation_filter_db" default= "-24.0" >
2020-11-23 16:56:05 +01:00
Amount how much the filter affects the loudness, in decibels.
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "attenuation_model" type= "int" setter= "set_attenuation_model" getter= "get_attenuation_model" enum= "AudioStreamPlayer3D.AttenuationModel" default= "0" >
2019-03-10 14:25:54 +01:00
Decides if audio should get quieter with distance linearly, quadratically, logarithmically, or not be affected by distance, effectively disabling attenuation.
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "autoplay" type= "bool" setter= "set_autoplay" getter= "is_autoplay_enabled" default= "false" >
2020-11-23 16:56:05 +01:00
If [code]true[/code], audio plays when the AudioStreamPlayer3D node is added to scene tree.
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "bus" type= "String" setter= "set_bus" getter= "get_bus" default= ""Master"" >
2020-11-23 16:56:05 +01:00
The bus on which this audio is playing.
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "doppler_tracking" type= "int" setter= "set_doppler_tracking" getter= "get_doppler_tracking" enum= "AudioStreamPlayer3D.DopplerTracking" default= "0" >
2021-09-17 09:50:48 +02:00
Decides in which step the [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/url] should be calculated.
[b]Note:[/b] Only effective if the current [Camera]'s [member Camera.doppler_tracking] property is set to a value other than [constant Camera.DOPPLER_TRACKING_DISABLED].
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "emission_angle_degrees" type= "float" setter= "set_emission_angle" getter= "get_emission_angle" default= "45.0" >
2017-09-16 13:33:58 +02:00
The angle in which the audio reaches cameras undampened.
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "emission_angle_enabled" type= "bool" setter= "set_emission_angle_enabled" getter= "is_emission_angle_enabled" default= "false" >
2018-12-20 13:46:54 +01:00
If [code]true[/code], the audio should be dampened according to the direction of the sound.
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "emission_angle_filter_attenuation_db" type= "float" setter= "set_emission_angle_filter_attenuation_db" getter= "get_emission_angle_filter_attenuation_db" default= "-12.0" >
2020-11-23 16:56:05 +01:00
Dampens audio if camera is outside of [member emission_angle_degrees] and [member emission_angle_enabled] is set by this factor, in decibels.
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "max_db" type= "float" setter= "set_max_db" getter= "get_max_db" default= "3.0" >
2020-11-23 16:56:05 +01:00
Sets the absolute maximum of the soundlevel, in decibels.
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "max_distance" type= "float" setter= "set_max_distance" getter= "get_max_distance" default= "0.0" >
2019-06-22 01:04:47 +02:00
Sets the distance from which the [member out_of_range_mode] takes effect. Has no effect if set to 0.
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "out_of_range_mode" type= "int" setter= "set_out_of_range_mode" getter= "get_out_of_range_mode" enum= "AudioStreamPlayer3D.OutOfRangeMode" default= "0" >
2019-06-22 01:04:47 +02:00
Decides if audio should pause when source is outside of [member max_distance] range.
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "pitch_scale" type= "float" setter= "set_pitch_scale" getter= "get_pitch_scale" default= "1.0" >
2020-04-26 16:37:22 +02:00
The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate.
2018-02-19 10:47:16 +01:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "playing" type= "bool" setter= "_set_playing" getter= "is_playing" default= "false" >
2017-09-16 13:33:58 +02:00
If [code]true[/code], audio is playing.
2017-09-12 22:42:36 +02:00
</member>
2019-07-15 20:42:47 +02:00
<member name= "stream" type= "AudioStream" setter= "set_stream" getter= "get_stream" >
2020-11-23 16:56:05 +01:00
The [AudioStream] resource to be played.
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "stream_paused" type= "bool" setter= "set_stream_paused" getter= "get_stream_paused" default= "false" >
2020-11-23 16:56:05 +01:00
If [code]true[/code], the playback is paused. You can resume it by setting [member stream_paused] to [code]false[/code].
2018-07-26 11:56:21 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "unit_db" type= "float" setter= "set_unit_db" getter= "get_unit_db" default= "0.0" >
2020-11-23 16:56:05 +01:00
The base sound level unaffected by dampening, in decibels.
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "unit_size" type= "float" setter= "set_unit_size" getter= "get_unit_size" default= "1.0" >
2020-11-23 16:56:05 +01:00
The factor for the attenuation effect. Higher values make the sound audible over a larger distance.
2017-09-12 22:42:36 +02:00
</member>
</members>
<signals >
<signal name= "finished" >
<description >
2019-06-22 01:04:47 +02:00
Emitted when the audio stops playing.
2017-09-12 22:42:36 +02:00
</description>
</signal>
</signals>
<constants >
2017-11-24 23:16:30 +01:00
<constant name= "ATTENUATION_INVERSE_DISTANCE" value= "0" enum= "AttenuationModel" >
2017-09-16 13:33:58 +02:00
Linear dampening of loudness according to distance.
2017-09-12 22:42:36 +02:00
</constant>
2017-11-24 23:16:30 +01:00
<constant name= "ATTENUATION_INVERSE_SQUARE_DISTANCE" value= "1" enum= "AttenuationModel" >
2017-09-16 13:33:58 +02:00
Squared dampening of loudness according to distance.
2017-09-12 22:42:36 +02:00
</constant>
2017-11-24 23:16:30 +01:00
<constant name= "ATTENUATION_LOGARITHMIC" value= "2" enum= "AttenuationModel" >
2017-09-16 13:33:58 +02:00
Logarithmic dampening of loudness according to distance.
2017-09-12 22:42:36 +02:00
</constant>
2019-03-10 14:25:54 +01:00
<constant name= "ATTENUATION_DISABLED" value= "3" enum= "AttenuationModel" >
2021-09-17 10:14:32 +02:00
No dampening of loudness according to distance. The sound will still be heard positionally, unlike an [AudioStreamPlayer]. [constant ATTENUATION_DISABLED] can be combined with a [member max_distance] value greater than [code]0.0[/code] to achieve linear attenuation clamped to a sphere of a defined size.
2019-03-10 14:25:54 +01:00
</constant>
2017-11-24 23:16:30 +01:00
<constant name= "OUT_OF_RANGE_MIX" value= "0" enum= "OutOfRangeMode" >
2020-11-23 16:56:05 +01:00
Mix this audio in, even when it's out of range. This increases CPU usage, but keeps the sound playing at the correct position if the camera leaves and enters the [AudioStreamPlayer3D]'s [member max_distance] radius.
2017-09-12 22:42:36 +02:00
</constant>
2017-11-24 23:16:30 +01:00
<constant name= "OUT_OF_RANGE_PAUSE" value= "1" enum= "OutOfRangeMode" >
2020-11-23 16:56:05 +01:00
Pause this audio when it gets out of range. This decreases CPU usage, but will cause the sound to restart if the camera leaves and enters the [AudioStreamPlayer3D]'s [member max_distance] radius.
2017-09-12 22:42:36 +02:00
</constant>
2017-11-24 23:16:30 +01:00
<constant name= "DOPPLER_TRACKING_DISABLED" value= "0" enum= "DopplerTracking" >
2017-09-16 13:33:58 +02:00
Disables doppler tracking.
2017-09-12 22:42:36 +02:00
</constant>
2017-11-24 23:16:30 +01:00
<constant name= "DOPPLER_TRACKING_IDLE_STEP" value= "1" enum= "DopplerTracking" >
2021-09-17 09:50:48 +02:00
Executes doppler tracking in idle step (every rendered frame).
2017-09-12 22:42:36 +02:00
</constant>
2017-11-24 23:16:30 +01:00
<constant name= "DOPPLER_TRACKING_PHYSICS_STEP" value= "2" enum= "DopplerTracking" >
2021-09-17 09:50:48 +02:00
Executes doppler tracking in physics step (every simulated physics frame).
2017-09-12 22:42:36 +02:00
</constant>
</constants>
</class>