I've been having a playing around with phase distortion synthesis for the past few days (it seemed fun).
I've had a go at creating a quick 4-note poly with 4 voice synth for MIDI. Each voice is on a separate MIDI channel for listening on the IAC Bus from Logic (I'm using the .mid files for Doom).
I've created two ways for generating the phase table (ramp1 & ramp2). The first one is for simply modulating a linear ramp, the second for a complex ramp with option to flip between the two for all voices.
The wave table lookup (array: wave) is a cosinsum with the option to switch to sinesum and square.
Have a play around and let me know if there is any way to make it better/more efficient and thoughts. I've not kept to the strict best practices ($0-) but it should work out of the box.