SynthstromAudible / DelugeFirmware

https://synthstromaudible.github.io/DelugeFirmware/
GNU General Public License v3.0
564 stars 93 forks source link

Sidechain causes clicks by introducing discontinuities #2000

Open sapphire-arches opened 4 months ago

sapphire-arches commented 4 months ago

Please describe the problem:

I'm not sure it's actually possible to solve this cleanly, but when sidechain send is set to high values even moderate values of sidechain will cause simple oscillators to click.

What is the expected behavior?

Sidechain should not introduce such extreme discontinuities.

Is there a relevant Pull request?

No response

What hardware did you reproduce it with?

OLED, 7SEG

What firmware did you reproduce it with?

Nightly

What is the firmware name:

No response

If possible provide the steps to reproduce the issue and upload additional media:

  1. Create an init synth, and configure it as follows: a. OSC1 type to SIN b. Sidechain vol duck to 10 c. Sidechain shape to 18, attack to 7, sync to 8th notes, release to 26 (defaults) d. Env1 release to 1 (to avoid the note-on click from an unsynced sin oscillator)
  2. Create a new drum kit with notes on the 1, 2, 3, and 4 beats. Set the volume of this drum to 0 and sidechain send to a value 25 or greater.
nikodemus commented 4 months ago

I get a note-on click with these settings even without the kick, unless I drone the note, though.

The sidechain clicks are very clear though.

https://modwiggler.com/forum/viewtopic.php?t=231354 has some related discussion.

Apparenly some VCAs do zero-crossing detection to avoid clicks from retriggered envelopes. Maybe we could do the same: synchronize sidechain envelope onset to the phase of each oscillator?

sapphire-arches commented 4 months ago

I was sleepy writing the repro instructions, it should be "ENV1 attack set to 1". That should avoid the note-on clicks at least (or "retrig phase" for osc1 can be set to 0)