# AudioListener

Roblox Engine API class from Roblox Studio 0.744.0.7441077 (version-7aaa6838d36c4448).

- Inherits from, nearest first: [Instance](https://rapi.sleaze.dev/classes/Instance.md), [Object](https://rapi.sleaze.dev/classes/Object.md)
- Memory category: Internal
- HTML page: https://rapi.sleaze.dev/classes/AudioListener/
- Roblox documentation: https://create.roblox.com/docs/reference/engine/classes/AudioListener

Records an audio stream from its surrounding `AudioEmitters` in the 3D world.

## Properties

### AudioInteractionGroup

```luau
AudioListener.AudioInteractionGroup: string = ""
```

- Tags: Read capabilities: Audio

Controls which `AudioEmitters` are audible to this [`AudioListener`](https://rapi.sleaze.dev/classes/AudioListener.md).

### AngleAttenuation

```luau
AudioListener.AngleAttenuation: string = ""
```

- Tags: Roblox engine security, Read capabilities: Audio

Represents how the perceived volume of the emitted sound changes based on the angle between a [`AudioEmitter`](https://rapi.sleaze.dev/classes/AudioEmitter.md) and the `LookVector` associated with the [`AudioListener`](https://rapi.sleaze.dev/classes/AudioListener.md).

### DistanceAttenuation

```luau
AudioListener.DistanceAttenuation: string = ""
```

- Tags: Roblox engine security, Read capabilities: Audio

Represents how the perceived volume of emitted sounds change as the distance between `AudioEmitters` and the [`AudioListener`](https://rapi.sleaze.dev/classes/AudioListener.md) increases.

### PositionInstance

```luau
AudioListener.PositionInstance: Instance
```

- Tags: Capabilities: Audio

The [`Instance`](https://rapi.sleaze.dev/classes/Instance.md) whose position and orientation is used as the listener's position if [`PositionType`](https://rapi.sleaze.dev/classes/AudioListener.md) is set to `ListenerPositionType.Instance`.

### PositionType

```luau
AudioListener.PositionType: Enum.ListenerPositionType = Enum.ListenerPositionType.Parent
```

- Tags: Capabilities: Audio

Determines how the [`AudioListener`](https://rapi.sleaze.dev/classes/AudioListener.md) determines its 3D location.

### AcousticSimulationEnabled

```luau
AudioListener.AcousticSimulationEnabled: boolean = true
```

- Tags: Read capabilities: Audio

Determines whether acoustic simulation should be used for this [`AudioListener`](https://rapi.sleaze.dev/classes/AudioListener.md).

### DiffractionEnabled

```luau
AudioListener.DiffractionEnabled: Enum.SimulationMode = Enum.SimulationMode.Default
```

- Tags: Read capabilities: Audio

### OcclusionEnabled

```luau
AudioListener.OcclusionEnabled: Enum.SimulationMode = Enum.SimulationMode.Default
```

- Tags: Read capabilities: Audio

### ReverbEnabled

```luau
AudioListener.ReverbEnabled: Enum.SimulationMode = Enum.SimulationMode.Default
```

- Tags: Read capabilities: Audio

### SimulationFidelity

```luau
AudioListener.SimulationFidelity: Enum.AudioSimulationFidelity = Enum.AudioSimulationFidelity.Automatic
```

- Tags: Deprecated, Read capabilities: Audio
- Use instead: [`AudioListener.AcousticSimulationEnabled`](https://rapi.sleaze.dev/classes/AudioListener.md)

**Deprecated:**

Controls how detailed the audio simulation should be for this [`AudioListener`](https://rapi.sleaze.dev/classes/AudioListener.md).

## Methods

### GetAngleAttenuation

```luau
AudioListener:GetAngleAttenuation(): { [string]: any }
```

- Tags: Custom Lua state, Capabilities: Audio

Gets the angle attenuation curve that the [`AudioListener`](https://rapi.sleaze.dev/classes/AudioListener.md) is using, or an empty table if it's using the default curve.

Returns: Table mapping angle to volume, as described above.

### GetAudibilityFor

```luau
AudioListener:GetAudibilityFor(emitter: AudioEmitter): number
```

- Tags: Capabilities: Audio

Calculates how audible an [`AudioEmitter`](https://rapi.sleaze.dev/classes/AudioEmitter.md) is for this listener

Parameters:

- `emitter`: The [`AudioEmitter`](https://rapi.sleaze.dev/classes/AudioEmitter.md) whose audibility should be calculated relative to this listener.

Returns: A number between 0 and 1 representing the combined volume after distance and angle attenuation from both the emitter and listener.

### GetConnectedWires

```luau
AudioListener:GetConnectedWires(pin: string): { Instance }
```

- Tags: Capabilities: Audio

Returns an array of `Wires` that are connected to the specified pin.

Parameters:

- `pin`: An input or output pin on this instance

Returns: An array of `Wires`

### GetDistanceAttenuation

```luau
AudioListener:GetDistanceAttenuation(): { [string]: any }
```

- Tags: Custom Lua state, Capabilities: Audio

Gets the distance attenuation curve that the [`AudioListener`](https://rapi.sleaze.dev/classes/AudioListener.md) is using, or an empty table if it's using the default curve.

Returns: A table mapping distance keys to volume values, or an empty table if the default curve is being used.

### GetInputPins

```luau
AudioListener:GetInputPins(): { any }
```

- Tags: Capabilities: Audio

Gets the list of pins that [`Wire`](https://rapi.sleaze.dev/classes/Wire.md) can use in [`Wire.TargetName`](https://rapi.sleaze.dev/classes/Wire.md) to connect to this instance via its [`Wire.TargetInstance`](https://rapi.sleaze.dev/classes/Wire.md) property.

Returns: An array of strings representing valid pin names.

### GetInteractingEmitters

```luau
AudioListener:GetInteractingEmitters(): { Instance }
```

- Tags: Capabilities: Audio

Lists all `AudioEmitters` that this listener is capable of hearing.

Returns: An array of `AudioEmitters` that share an [`AudioInteractionGroup`](https://rapi.sleaze.dev/classes/AudioListener.md) with this listener.

### GetOutputPins

```luau
AudioListener:GetOutputPins(): { any }
```

- Tags: Capabilities: Audio

Gets the list of pins that [`Wire`](https://rapi.sleaze.dev/classes/Wire.md) can use in [`Wire.SourceName`](https://rapi.sleaze.dev/classes/Wire.md) to connect to this instance via its [`Wire.SourceInstance`](https://rapi.sleaze.dev/classes/Wire.md) property.

Returns: An array of strings representing valid pin names.

### GetWorldCFrame

```luau
AudioListener:GetWorldCFrame(): CFrame?
```

- Tags: Roblox script security, Capabilities: Audio

### Reset

```luau
AudioListener:Reset()
```

- Tags: Roblox script security, Capabilities: Audio

### SetAngleAttenuation

```luau
AudioListener:SetAngleAttenuation(curve: { [string]: any })
```

- Tags: Custom Lua state, Capabilities: Audio

Sets the angle attenuation curve that the [`AudioListener`](https://rapi.sleaze.dev/classes/AudioListener.md) should use, or uses a constant curve of volume `1` if none is provided.

Parameters:

- `curve`: A table mapping angle keys (0 to 180) to volume values (0 to 1), or an empty/nil table to use the default constant volume of 1.

### SetDistanceAttenuation

```luau
AudioListener:SetDistanceAttenuation(curve: { [string]: any })
```

- Tags: Custom Lua state, Capabilities: Audio

Sets the distance attenuation curve that the [`AudioListener`](https://rapi.sleaze.dev/classes/AudioListener.md) should use, or uses an inverse rolloff curve if none is provided.

Parameters:

- `curve`: A table mapping distance keys (greater than or equal to 0) to volume values (0 to 1), or an empty/nil table to use the default constant volume of 1 everywhere.

## Events

### WiringChanged

```luau
AudioListener.WiringChanged: RBXScriptSignal<(connected: boolean, pin: string, wire: Wire, instance: Instance)>
```

- Tags: Capabilities: Audio

Fires when another instance is connected to or disconnected from the [`AudioListener`](https://rapi.sleaze.dev/classes/AudioListener.md) via a [`Wire`](https://rapi.sleaze.dev/classes/Wire.md).

## Inherited members

- From [Instance](https://rapi.sleaze.dev/classes/Instance.md): `Archivable`, `archivable`, `Attributes`, `AttributesReplicate`, `AttributesSerialize`, `HistoryId`, `Name`, `Parent`, `PredictionMode`, `PropertyStatusStudio`, `RobloxLocked`, `SerializedOverrides`, `SourceAssetId`, `Tags`, `UniqueId`, `numExpectedDirectChildren`, `DataCost`, `Capabilities`, `DefinesCapabilities`, `IsInSandbox`, `Sandboxed`, `AddTag`, `ClearAllChildren`, `Clone`, `Destroy`, `FindFirstAncestor`, `FindFirstAncestorOfClass`, `FindFirstAncestorWhichIsA`, `FindFirstChild`, `FindFirstChildOfClass`, `FindFirstChildWhichIsA`, `FindFirstDescendant`, `GetActor`, `GetAttribute`, `GetAttributeChangedSignal`, `GetAttributes`, `GetChildren`, `GetDebugId`, `GetDescendants`, `GetFullName`, `GetStyled`, `GetStyledPropertyChangedSignal`, `GetTags`, `HasTag`, `IsAncestorOf`, `IsDescendantOf`, `IsPropertyModified`, `QueryDescendants`, `RemoveTag`, `ResetPropertyToDefault`, `SetAttribute`, `WaitForChild`, `Remove`, `children`, `clone`, `destroy`, `findFirstChild`, `getChildren`, `isDescendantOf`, `remove`, `AncestryChanged`, `AttributeChanged`, `ChildAdded`, `ChildRemoved`, `DescendantAdded`, `DescendantRemoving`, `Destroying`, `StyledPropertiesChanged`, `childAdded`
- From [Object](https://rapi.sleaze.dev/classes/Object.md): `ClassName`, `className`, `GetPropertyChangedSignal`, `IsA`, `isA`, `Changed`
