# EffectInstance.IControl<TProcessor>

> The control interface an implementation of an EffectInstance must implement on a struct to be fully formed.

## Definition

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

```csharp
[JobProducerType(typeof(IEffectControlExtensions.JobStruct<,>))]
public interface EffectInstance.IControl<TProcessor> : ProcessorInstance.IControl<TProcessor> where TProcessor : unmanaged, ProcessorInstance.IRealtime
```

## Remarks

The control side of a [ProcessorInstance](/engine/6000.7/script-reference/unityengine/audio/processorinstance.md) receives various callbacks from a [ControlContext](/engine/6000.7/script-reference/unityengine/audio/controlcontext.md) from the logical control thread. You can annotate this with [BurstCompileAttribute](/engine/6000.7/script-reference/unity/burst/burstcompileattribute.md) to have it compiled with Burst.

Additional Resources: [ProcessorInstance.IControl\<TRealtime>](/engine/6000.7/script-reference/unityengine/audio/processorinstance/icontrol1.md)

## Inheritance

**Inherited Members:**

* [IControl\<T>.Dispose(ControlContext, T)](/engine/6000.7/script-reference/unityengine/audio/processorinstance/icontrol1/dispose.md)
* [IControl\<T>.Update(ControlContext, Pipe)](/engine/6000.7/script-reference/unityengine/audio/processorinstance/icontrol1/update.md)
* [IControl\<T>.OnMessage(ControlContext, Pipe, Message)](/engine/6000.7/script-reference/unityengine/audio/processorinstance/icontrol1/onmessage.md)
