Neat!...

I did something like that a few years back. The heart of the project was a 16f628a @4MHz, using PWM to produce a variable Vref across an RC circuit which in turn controlled the output of a LM317 variable voltage regulator. There was a few other bits & pieces in between, not much - mainly just an OP amp to relieve the RC circuit from loading down (buffer), and at the same time giving the circuit some hardware calibration ability.

I had some nice features like; presets, dual tracking - (yup plus & minus rails 0-30 VDC), PC interface via serial comms, but unfortunately no provision for controlled or metering current. All told, I put a lot of bloody effort into it, submitted it for publication and got shot down in flames with it