An arduino-based polyphasic / octature LFO for modular synthesizers.
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


PolyLmFaO (\'pä-le-'lam-fo\  OR “poly lamb faux”) is an Arduino sketch that works as a polyphasic or “octature” low frequency oscillator.  It outputs “control voltages” and is designed to be used in an analog modular synthesizer environment.

The software, source code, PCB art and whatever else contained in this repository falls under the terms of the General Public License v3.0 -- see license.txt for more details.  Author of record is (your pal) R. Mosquito (rmosquito hat gee mhaile dart carm) et al. 

Whereas the more pedestrian quadrature oscillator provides four outputs shifted by 90 degrees, the octature oscillator gives you eight outputs, each shifted by 45 degrees.  If you think this raises the overall fun potential by two to the power of two, you’re right!

But wait, there’s more!  In addition to functioning as an octature oscillator, you can flip a switch and enter "polyphasic mode." In this mode, instead of each output being 45 degrees out of phase the amount (or “degree” ha ha) of phase shift is controlled with a pot -- or any other voltage source of your choosing. 

The project is in "functional pre-beta" at this point. If you have an Arduino and a Maxim 528/529 DAC on hand you'd be able to build a working module (since those outputs are buffered). There's a few things I'd like to address: 

1. I'd like to move from the 8-bit MAX528 to a 10 bit dac (LTC1660) and a 10 bit sine sample. This will push the overall speed of the oscillator down and decrease aliasing. I stepped up to a 32 bit phase accumulator already. Kinda silly at this point with a 32 bit accumulator and an 8 bit sine table, but that's the rationale. 

2. I get aliasing on the outs now with fast frequency changes. This could probably be solved with simple RC filters on the outputs; the outputs will all need to get buffers and their levels fixed anyway. So broadly speaking, "the analog section needs to be designed." 

3. I'm obviously not a programmer, so... anything anyone sees that should be done better. Please lemme know. Or better still, drop me a line here or via email and I'll get you write access to the repo. 

- RM