# CreateInstance(ControlContext, AudioFormat?, CreationParameters)

> Factory method for creating a GeneratorInstance of this clip.

## Definition

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

```csharp
public GeneratorInstance CreateInstance(ControlContext context, AudioFormat? nestedFormat, GeneratorInstance.CreationParameters creationParameters)
```

### Parameters

**** (\[ControlContext]\(/engine/6000.7/script-reference/unityengine/audio/controlcontext)): The context in which the instance will be created.**** (\[AudioFormat?]\(https\://learn.microsoft.com/dotnet/api/system.nullable)): If not null, the instance will be created with the the given format as nested, to be used from within another processor.**** (\[CreationParameters]\(/engine/6000.7/script-reference/unityengine/audio/generatorinstance/creationparameters)): Initialization parameters passed through.

### Returns

| Type                                                                                        | Description                                 |
| ------------------------------------------------------------------------------------------- | ------------------------------------------- |
| [GeneratorInstance](/engine/6000.7/script-reference/unityengine/audio/generatorinstance.md) | Returns the generator instance of the clip. |

### Remarks

Use this method to efficiently stream the AudioClip data as a [GeneratorInstance](/engine/6000.7/script-reference/unityengine/audio/generatorinstance.md). You can use the instance directly with a [RealtimeContext](/engine/6000.7/script-reference/unityengine/audio/realtimecontext.md) or nest it within other [GeneratorInstance](/engine/6000.7/script-reference/unityengine/audio/generatorinstance.md)s to facilitate advanced playback behaviours. Note that you can only use persistent (imported) audio clips as generators. Runtime-created clips (via [AudioClip.Create](/engine/6000.7/script-reference/unityengine/audioclip/create.md), [DownloadHandlerAudioClip](/engine/6000.7/script-reference/unityengine/networking/downloadhandleraudioclip.md), or [Microphone](/engine/6000.7/script-reference/unityengine/microphone.md)) throw a NotSupportedException.

Once an AudioClip has been used as a generator, [AudioClip.GetData](/engine/6000.7/script-reference/unityengine/audioclip/getdata.md) and [AudioClip.SetData](/engine/6000.7/script-reference/unityengine/audioclip/setdata.md) are permanently blocked for that clip instance.

Additional Resources: [Using AudioClips as generators](/engine/6000.7/manual/audio/scriptable-processors/generators.md)
