# Process(GeneratorInstance, ChannelBuffer, Arguments)

> Manually process this particular GeneratorInstance.

## Definition

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

```csharp
public readonly GeneratorInstance.Result Process(GeneratorInstance generatorInstance, ChannelBuffer buffer, GeneratorInstance.Arguments args)
```

### Parameters

**** (\[GeneratorInstance]\(/engine/6000.5/script-reference/unityengine/audio/generatorinstance)): **** (\[ChannelBuffer]\(/engine/6000.5/script-reference/unityengine/audio/channelbuffer)): The buffer the [GeneratorInstance](/engine/6000.5/script-reference/unityengine/audio/generatorinstance.md) will put its processing result into.**** (\[Arguments]\(/engine/6000.5/script-reference/unityengine/audio/generatorinstance/arguments)): Additional arguments passed along, which can be default-initialized.

### Returns

| Type                                                                                    | Description                                                                                          |
| --------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| [Result](/engine/6000.5/script-reference/unityengine/audio/generatorinstance/result.md) | A Result struct indicating amongst other things how many frames were actually written into `buffer`. |

### Remarks

In most use cases, you would not call this directly, but rather have the audio system call it for you. If you are yourself nesting a [GeneratorInstance](/engine/6000.5/script-reference/unityengine/audio/generatorinstance.md) inside another [ProcessorInstance](/engine/6000.5/script-reference/unityengine/audio/processorinstance.md), you would call this.

Additional Resources: Process
