The final mix stage combines the wet reverb signal with the widened signal, not the original dry signal.
// --- 3. Final Dry/Wet Mix ---
buffer[i * 2] = (wide_l * (1.0f - mix)) + (wet_l * mix);
buffer[i * 2 + 1] = (wide_r * (1.0f - mix)) + (wet_r * mix);
The final mix stage combines the wet reverb signal with the widened signal, not the original dry signal.
This means the
mixknob controls the balance between "Wide" and "Wide + Reverb". Thewidthknob affects 100% of the output signal. This is a valid creative choice, but it's unconventional. A more standard implementation would be:Widen the signal.
Send the widened signal to the reverb (as you are doing).
Mix the original, untouched dry signal with the wet reverb signal.