zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

commit 8773b26df67fa08086e6c68fc144338d4e37f837
parent 73e0cdc93dc43af6bac5ea24fb8ca5ead2a68968
Author: Christopher A. Oliver <caowasteland@gmail.com>
Date:   Fri, 20 Nov 2015 03:36:34 -0500

Fix unison voice phase randomness.  (Don't cluster around zero.)

Diffstat:
Msrc/Synth/ADnote.cpp | 6+++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/Synth/ADnote.cpp b/src/Synth/ADnote.cpp @@ -295,12 +295,12 @@ ADnote::ADnote(ADnoteParameters *pars_, SynthParams &spars) oscposhi_start += (int)((pars.VoicePar[nvoice].Poscilphase - 64.0f) / 128.0f * synth.oscilsize + synth.oscilsize * 4); - oscposhi_start %= synth.oscilsize; + int kth_start = oscposhi_start; for(int k = 0; k < unison; ++k) { - oscposhi[nvoice][k] = oscposhi_start; + oscposhi[nvoice][k] = kth_start % synth.oscilsize; //put random starting point for other subvoices - oscposhi_start = + kth_start = oscposhi_start + (int)(RND * pars.VoicePar[nvoice].Unison_phase_randomness / 127.0f * (synth.oscilsize - 1)); }