When i created my last synth i was looking (again) for a way to implement multiple voices. I came up with a system with fixed envelopes (AHR), which is fine for me.
I extracted the logic and created a little voicing framework which i can easily reuse in the future. Attached you'll find the framework and a very basic implementation (4 voice sinewave player).
If you want to use it do this :
- copy the framework into your patch (including the envelope sliders)
- implement the playing algorithm of your choice in the first voice
- make as many copies of that voice as needed and link them (like in the example)
It's only the first version, so i'm sure many things can be improved. I'm just not sure how to implement a Sustain option. If you improve it, please let me know.
Enjoy it,
Domien