<?xml version="1.0" encoding="UTF-8" ?>
<class name="AudioStreamPlayer3D" inherits="Spatial" version="3.2">
	<brief_description>
		Plays 3D sound in 3D space.
	</brief_description>
	<description>
		Plays a sound effect with directed sound effects, dampens with distance if needed, generates effect of hearable position in space.
		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.
	</description>
	<tutorials>
		<link>https://docs.godotengine.org/en/latest/tutorials/audio/audio_streams.html</link>
	</tutorials>
	<methods>
		<method name="get_playback_position">
			<return type="float">
			</return>
			<description>
				Returns the position in the [AudioStream].
			</description>
		</method>
		<method name="get_stream_playback">
			<return type="AudioStreamPlayback">
			</return>
			<description>
				Returns the [AudioStreamPlayback] object associated with this [AudioStreamPlayer3D].
			</description>
		</method>
		<method name="play">
			<return type="void">
			</return>
			<argument index="0" name="from_position" type="float" default="0.0">
			</argument>
			<description>
				Plays the audio from the given position [code]from_position[/code], in seconds.
			</description>
		</method>
		<method name="seek">
			<return type="void">
			</return>
			<argument index="0" name="to_position" type="float">
			</argument>
			<description>
				Sets the position from which audio will be played, in seconds.
			</description>
		</method>
		<method name="stop">
			<return type="void">
			</return>
			<description>
				Stops the audio.
			</description>
		</method>
	</methods>
	<members>
		<member name="area_mask" type="int" setter="set_area_mask" getter="get_area_mask" default="1">
			Areas in which this sound plays.
		</member>
		<member name="attenuation_filter_cutoff_hz" type="float" setter="set_attenuation_filter_cutoff_hz" getter="get_attenuation_filter_cutoff_hz" default="5000.0">
			Dampens audio above this frequency, in Hz.
		</member>
		<member name="attenuation_filter_db" type="float" setter="set_attenuation_filter_db" getter="get_attenuation_filter_db" default="-24.0">
			Amount how much the filter affects the loudness, in dB.
		</member>
		<member name="attenuation_model" type="int" setter="set_attenuation_model" getter="get_attenuation_model" enum="AudioStreamPlayer3D.AttenuationModel" default="0">
			Decides if audio should get quieter with distance linearly, quadratically, logarithmically, or not be affected by distance, effectively disabling attenuation.
		</member>
		<member name="autoplay" type="bool" setter="set_autoplay" getter="is_autoplay_enabled" default="false">
			If [code]true[/code], audio plays when added to scene tree.
		</member>
		<member name="bus" type="String" setter="set_bus" getter="get_bus" default="&quot;Master&quot;">
			Bus on which this audio is playing.
		</member>
		<member name="doppler_tracking" type="int" setter="set_doppler_tracking" getter="get_doppler_tracking" enum="AudioStreamPlayer3D.DopplerTracking" default="0">
			Decides in which step the Doppler effect should be calculated.
		</member>
		<member name="emission_angle_degrees" type="float" setter="set_emission_angle" getter="get_emission_angle" default="45.0">
			The angle in which the audio reaches cameras undampened.
		</member>
		<member name="emission_angle_enabled" type="bool" setter="set_emission_angle_enabled" getter="is_emission_angle_enabled" default="false">
			If [code]true[/code], the audio should be dampened according to the direction of the sound.
		</member>
		<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">
			Dampens audio if camera is outside of [member emission_angle_degrees] and [member emission_angle_enabled] is set by this factor, in dB.
		</member>
		<member name="max_db" type="float" setter="set_max_db" getter="get_max_db" default="3.0">
			Sets the absolute maximum of the soundlevel, in dB.
		</member>
		<member name="max_distance" type="float" setter="set_max_distance" getter="get_max_distance" default="0.0">
			Sets the distance from which the [member out_of_range_mode] takes effect. Has no effect if set to 0.
		</member>
		<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">
			Decides if audio should pause when source is outside of [member max_distance] range.
		</member>
		<member name="pitch_scale" type="float" setter="set_pitch_scale" getter="get_pitch_scale" default="1.0">
			The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate.
		</member>
		<member name="playing" type="bool" setter="_set_playing" getter="is_playing" default="false">
			If [code]true[/code], audio is playing.
		</member>
		<member name="stream" type="AudioStream" setter="set_stream" getter="get_stream">
			The [AudioStream] object to be played.
		</member>
		<member name="stream_paused" type="bool" setter="set_stream_paused" getter="get_stream_paused" default="false">
			If [code]true[/code], the playback is paused. You can resume it by setting [code]stream_paused[/code] to [code]false[/code].
		</member>
		<member name="unit_db" type="float" setter="set_unit_db" getter="get_unit_db" default="0.0">
			Base sound level unaffected by dampening, in dB.
		</member>
		<member name="unit_size" type="float" setter="set_unit_size" getter="get_unit_size" default="1.0">
			Factor for the attenuation effect.
		</member>
	</members>
	<signals>
		<signal name="finished">
			<description>
				Emitted when the audio stops playing.
			</description>
		</signal>
	</signals>
	<constants>
		<constant name="ATTENUATION_INVERSE_DISTANCE" value="0" enum="AttenuationModel">
			Linear dampening of loudness according to distance.
		</constant>
		<constant name="ATTENUATION_INVERSE_SQUARE_DISTANCE" value="1" enum="AttenuationModel">
			Squared dampening of loudness according to distance.
		</constant>
		<constant name="ATTENUATION_LOGARITHMIC" value="2" enum="AttenuationModel">
			Logarithmic dampening of loudness according to distance.
		</constant>
		<constant name="ATTENUATION_DISABLED" value="3" enum="AttenuationModel">
			No dampening of loudness according to distance.
		</constant>
		<constant name="OUT_OF_RANGE_MIX" value="0" enum="OutOfRangeMode">
			Mix this audio in, even when it's out of range.
		</constant>
		<constant name="OUT_OF_RANGE_PAUSE" value="1" enum="OutOfRangeMode">
			Pause this audio when it gets out of range.
		</constant>
		<constant name="DOPPLER_TRACKING_DISABLED" value="0" enum="DopplerTracking">
			Disables doppler tracking.
		</constant>
		<constant name="DOPPLER_TRACKING_IDLE_STEP" value="1" enum="DopplerTracking">
			Executes doppler tracking in idle step.
		</constant>
		<constant name="DOPPLER_TRACKING_PHYSICS_STEP" value="2" enum="DopplerTracking">
			Executes doppler tracking in physics step.
		</constant>
	</constants>
</class>
