current position:Home page > assistant >

[digido]12-Note Polyphony On An Arduino Synth


  I built synths using those top octave generators back in the 70′ and 80’s. But they started at a much higher frequency to give more accuracy on the divide down. In any case, I really like the hack of the analog summation. But I think you could improve this project by implementing numerically-controlled oscillators (NCOs) like are used in Direct Digital Synthesis (DDS) systems. The way these work is that at each tick you calculate how much further you are in each waveform (i.e the phase), and then lookup what value you should output. That can be as simple as an interpolated lookup table. You can run many NCOs, each at different frequencies, and then sum them all together to find the appropriate value to send out your DAC. Keeping in the spirit of the project, the DAC can be implemented as an R2R ladder off of a bunch of digital outputs. To be fancy, you should low pass filter and amplify the result. Not only would this technique give more accurate frequencies and potentially more polyphony, you can also use different waveforms – you aren’t limited to square waves. They can even be different for each channel. To go even further, it’s not hard to add attack envelopes as well – that’s just another thing that accumulates phase.