Duplicate/mirror event (in Unity)?

Hmm, I see what you mean, it’s very difficult to get a smooth fade in by setting the transceiver’s gain since it’s locked to the Studio System’s update rate.

You could potentially create a temporary DSP to handle the fade for you. Here is an example in C++ to demonstrate:

 struct RAMP_DATA
 {
    float target = 1.0f;
    float alpha = 0.00001f;
    float gainVal = 0.0f;
};

FMOD_DSP_DESCRIPTION fadeInDesc = { 0 };
fadeInDesc.numinputbuffers = 1;
fadeInDesc.numoutputbuffers = 1;
fadeInDesc.create = [](FMOD_DSP_STATE *dsp_state)
{
    RAMP_DATA *data = new RAMP_DATA;
    dsp_state->plugindata = (void *)data;
    return FMOD_OK;
};
fadeInDesc.release = [](FMOD_DSP_STATE *dsp_state)
{
    RAMP_DATA *data = (RAMP_DATA*)dsp_state->plugindata;
    delete data;
    return FMOD_OK;
};
fadeInDesc.process = [](FMOD_DSP_STATE* dsp_state, unsigned int length, const FMOD_DSP_BUFFER_ARRAY* inbufferarray, FMOD_DSP_BUFFER_ARRAY* outbufferarray, FMOD_BOOL inputsidle, FMOD_DSP_PROCESS_OPERATION op)
{
    RAMP_DATA *data = (RAMP_DATA*)dsp_state->plugindata;

    if (op == FMOD_DSP_PROCESS_QUERY)
    {
        if (data->target - data->gainVal < 0.1f)
        {
            // Fading done, skip processing
            return FMOD_ERR_DSP_DONTPROCESS;
        }
        outbufferarray->bufferchannelmask = inbufferarray->bufferchannelmask;
        outbufferarray->buffernumchannels = inbufferarray->buffernumchannels;
        outbufferarray->speakermode = inbufferarray->speakermode;
        return FMOD_OK;
    }
    float *in = inbufferarray->buffers[0];
    float *out = outbufferarray->buffers[0];
    while (length--)
    {
        // Fade in the signal with a gain modifier
        *out++ = *in++ * data->gainVal;

        // Exponential fade to target gain of 1.0f
        data->gainVal = data->alpha * data->target + (1 - data->alpha) * data->gainVal;
    }

    return FMOD_OK;
};

channel1->addDSP(FMOD_CHANNELCONTROL_DSP_FADER, transceiver);
system->createDSP(&fadeInDesc, &fadeInDSP);

For Unity, you could pretty much copy the DSP Capture scripting example and ramp in the buffer instead of just copying it across.

I will let the dev team know about this though and see if we can get rid of this clicking- thank you for bringing this to our attention!