abstracting p5.Panner and some signal math trying to eliminate redundancy