# AllocateGenerator<TRealtime, TControl>(in TRealtime, in TControl, AudioFormat?, in CreationParameters)

> Allocate a GeneratorInstance with the specified realtime and control state.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine.Audio](/engine/6000.7/script-reference/unityengine/audio.md)
* **Assembly:** UnityEngine.AudioModule

## AllocateGenerator\<T, U>(T, T, AudioFormat?, CreationParameters)

```csharp
public readonly GeneratorInstance AllocateGenerator<TRealtime, TControl>(in TRealtime realtimeState, in TControl controlState, AudioFormat? nestedFormat = null, in GeneratorInstance.CreationParameters creationParameters = default) where TRealtime : unmanaged, GeneratorInstance.IRealtime where TControl : unmanaged, GeneratorInstance.IControl<TRealtime>
```

### Parameters

**** (T): The initial state available from the control thread.**** (T): The initial state available from the control thread.**** (\[AudioFormat?]\(https\://learn.microsoft.com/dotnet/api/system.nullable)): If not null, the returned [GeneratorInstance](/engine/6000.7/script-reference/unityengine/audio/generatorinstance.md) will be treated as nested and use this format.**** (\[CreationParameters]\(/engine/6000.7/script-reference/unityengine/audio/generatorinstance/creationparameters)): Additional parameters and initialization state for the processor. This is generally received from [IAudioGenerator.CreateInstance](/engine/6000.7/script-reference/unityengine/audio/iaudiogenerator/createinstance.md)

### Returns

| Type                                                                                        | Description                                                                                                                                                                                                                                                 |
| ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [GeneratorInstance](/engine/6000.7/script-reference/unityengine/audio/generatorinstance.md) | A [GeneratorInstance](/engine/6000.7/script-reference/unityengine/audio/generatorinstance.md) you own and control, that must later be destroyed with [ControlContext.Destroy](/engine/6000.7/script-reference/unityengine/audio/controlcontext/destroy.md). |

### Remarks

This can generally be used to render the output of a [IAudioGenerator](/engine/6000.7/script-reference/unityengine/audio/iaudiogenerator.md), potentially from within another [GeneratorInstance](/engine/6000.7/script-reference/unityengine/audio/generatorinstance.md).

Additional Resources: [IAudioGenerator.CreateInstance](/engine/6000.7/script-reference/unityengine/audio/iaudiogenerator/createinstance.md)
