Unlinking Stereo Channels III

January 15th, 2013
experiment, math, music, sound, tech, vsl1818
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, substack

Recent posts on blogs I like:

Linkpost for July

Effective Altruism

via Thing of Things July 3, 2026

Agentic test processes, LLM benchmarks, and other notes on agentic coding from Galapagos Island

I've been using AI fairly heavily since last November and the whole thing is a funny experience. An agent will do something that, if a human did it, you'd immediately fire them. My reaction, of course, is to act as if this is great and spin up a t…

via Posts on July 3, 2026

Variable fonts aren't universally supported

I make a lot of webpages. I also use Lockdown Mode on iOS and MacOS for a bit of extra security. Sometimes I realize that I forgot to test on Safari and it looks like crap, or I test and don’t notice that there’s been a problem for months (as was the case…

via Home June 27, 2026

more     (via openring)