> ## Documentation Index
> Fetch the complete documentation index at: https://docs.liv.tv/llms.txt
> Use this file to discover all available pages before exploring further.

# Wwise

> API reference for FLCKWwiseSource, the audio source that captures game audio from Wwise via capture callback with ambisonic-to-stereo conversion.

<Info>
  **Module:** LCKWwise | **Version:** 1.0 | **Platforms:** Win64, Android
</Info>

## Overview

LCKWwise captures game audio from the Wwise sound engine using a capture callback on the output device. It handles ambisonic-to-stereo downmix automatically, producing stereo PCM data regardless of the Wwise output configuration.

## Supported Channels

| Channel      | Supported | Description                   |
| ------------ | --------- | ----------------------------- |
| `Game`       | Yes       | Wwise master output capture   |
| `Microphone` | No        | Use LCKUnrealAudio or LCKOboe |
| `VoiceChat`  | No        | Use LCKVivox                  |

***

## FLCKWwiseSource

Audio source class that captures Wwise master output via a capture callback. Implements `ILCKFeatureInstance` with automatic ambisonic-to-stereo conversion.

```cpp theme={null}
class FLCKWwiseSource : public ILCKFeatureInstance
{
public:
    // ILCKFeatureInstance interface
    virtual bool StartCapture() noexcept override;
    virtual bool StartCapture(TLCKAudioChannelsMask Channels) noexcept override;
    virtual void StopCapture() noexcept override;
    virtual float GetVolume() const noexcept override;
    virtual const FString& GetSourceName() const noexcept override;

    // Wwise-specific
    AkOutputDeviceID OutputDeviceId = AK_INVALID_OUTPUT_DEVICE_ID;

protected:
    TLCKAudioChannelsMask SupportedChannels = ELCKAudioChannel::Game;
};
```

### ILCKFeatureInstance Methods

| Method                   | Behavior                                                    |
| ------------------------ | ----------------------------------------------------------- |
| `StartCapture()`         | Registers capture callback on the Wwise output device       |
| `StartCapture(Channels)` | Begins capture if `Game` is in the requested channel mask   |
| `StopCapture()`          | Unregisters the capture callback and stops capture          |
| `GetVolume()`            | Returns current RMS volume of captured game audio (0.0-1.0) |
| `GetSourceName()`        | Returns `"LCKWwise"`                                        |

### Fields

| Field            | Type               | Default                       | Description                                                              |
| ---------------- | ------------------ | ----------------------------- | ------------------------------------------------------------------------ |
| `OutputDeviceId` | `AkOutputDeviceID` | `AK_INVALID_OUTPUT_DEVICE_ID` | Wwise output device to capture from. Invalid ID uses the default device. |

### Ambisonic-to-Stereo Conversion

If Wwise is configured with ambisonic output, `FLCKWwiseSource` automatically converts the multi-channel ambisonic data to stereo before firing the audio delegate. No additional configuration is required.

```
┌──────────────────────────────────────┐
│         Wwise Sound Engine           │
├──────────────────────────────────────┤
│  Events → Buses → Master Output     │
│                       ↓              │
│          Capture Callback            │
└───────────────┬──────────────────────┘
                │
         ┌──────▼──────┐
         │  LCKWwise   │
         │  Capture    │
         │  ↓          │
         │  Ambisonic  │
         │  → Stereo   │
         └─────────────┘
```

***

## FLCKWwiseModule

Module that manages the lifecycle of `FLCKWwiseSource`.

```cpp theme={null}
class FLCKWwiseModule : public IModuleInterface
{
public:
    virtual void StartupModule() override;
    virtual void ShutdownModule() override;

private:
    TSharedPtr<FLCKWwiseSource> FeatureInstance;
};

IMPLEMENT_MODULE(FLCKWwiseModule, LCKWwise)
```

On startup, the module creates an `FLCKWwiseSource` and registers it as a modular feature. On shutdown, it unregisters the capture callback, unregisters the modular feature, and destroys the source.

<Warning>
  LCKWwise requires the Wwise Unreal integration plugin. The module will not compile without the Wwise SDK headers available.
</Warning>

***

## Log Category

```cpp theme={null}
DECLARE_LOG_CATEGORY_EXTERN(LogLCKWwise, Log, All);
```

***

## Related

<CardGroup cols={2}>
  <Card title="Audio Overview" icon="volume-high" href="/api-reference/unreal/audio/overview">
    Audio system API overview
  </Card>

  <Card title="FMOD" icon="headphones" href="/api-reference/unreal/audio/FMOD">
    Alternative middleware integration
  </Card>
</CardGroup>
