I was checking Integra Live's modules and a Mixer module uses this technique to mix two signals:

[0 \ <- value between 0 and 1
|
[* pi/2]
|
[t f f]_____
|                [sin]
[cos]           | <- multiplied by the second signal
|
| <- multiplied by the first signal


The above ASCII patch is a simplified version focusing on the basic technique. Doing the same and sending the result to [env~] stays between 95 and 98 approximately, but graphing it in an array, it exceeds the limits (-1, 1) by 0.4 approximately.
Is this the way to mix two signals, or is there something else I should be looking for?