Unlinking Stereo Channels III
Success! I can now display eight independent mono channels to the user while internally representing that as four stereo channels. Before I was struggling with how to extract the underlying equations that VSL is using to turn gain/pan into left/right, but I decided to give up and just brute-force it. I made a giant table ( csv):
pan, gain, left, right
...
34, 80, 0.783, 0.69
34, 81, 0.793, 0.701
34, 82, 0.804, 0.712
34, 83, 0.815, 0.717
34, 84, 0.821, 0.728
34, 85, 0.832, 0.739
34, 86, 0.842, 0.75
34, 87, 0.853, 0.761
34, 88, 0.859, 0.766
34, 89, 0.87, 0.777
Then to implement to_left_right(gain, pan) and to_gain_pan(left, right) I just find the table row that best corresponds to the desired conditions and use that. So if I call to_gain_pan(left=0.83, right=0.74) it will probably identify the line 34, 85, 0.832, 0.739 as closest and so decide to set gain to 85% and pan to 34%.
It bothers me a little to use something so inefficient (Index it! Figure out the equations!), but it's fast enough. And it works. So now I can use all eight channels for their own mixes.
Comment via: google plus, facebook