[solved] Zynaddsubfx DSSI: changing parameters affects other instances

Brief description

When using 2 instruments, both using the same plugin, and not using sandboxed plugins, changing either instrument DSSI control will change all instrument DSSI control.

Using sandboxed plugin doesn’t exhibit this behaviour.

Steps to reproduce

  1. Open Renoise
  2. Make sure that plugins are not sandboxed
  3. Associate instrument 0 with zynaddsubfx (git version), leaving default “bass 1” preset
  4. Associate instrument 1 with zynaddsubfx (git version), leaving default “bass 1” preset
  5. Insert some notes with instrument 0 in pattern 0
  6. Play pattern 0
  7. Change “filter cutoff” on instrument 1

Expected results

Instruments 1 and 0 should be independent and changing filter cutoff on instrument 1 should not alter instrument 0 sound.

Actual results

Change to instrument 1 “filter cutoff” also affects instrument 0 “filter cutoff”


That’s indeed weired and not really expected from a plugin, but I think that’s simply how the “Zynaddsubfx DSSI” works. We don’t really have an influence on this as a host.

I’m not too familliar with Zynaddsubfx. Maybe somone which has more experience with it under Linux can help out here with some tips.


to expand on this particular bug, I was the one who committed the DSSI control support in zynaddsubfx and suspected first that my code was at fault.

Each zasfx DSSI instrument is a separate C++ instance (I logged stuff to stderr to make sure that 2 separates instances were created) and renoise sends the dssi control value of the current instrument to every DSSI instances.

I’ve created a short video (1:17) showing first the use of 2 zasfx instruments with sandboxed plugins and then without sandboxed plugins : https://drive.google.com/file/d/0B_Yku8u9n2DyRVY0SFU3V0Z4dzg/view?usp=sharing

non sandboxed logs are like those :

control 71 <- 97.280037 (master 0x8f35d30)
control 71 <- 97.280037 (master 0xa7f31e0)

The 2 zasfx instances are fed with the same value.

If I hadn’t seen those logs, I wouldn’t have filed a bug against renoise.

If you have ideas on how to further investigate this issue outside renoise, I’m all ears.

Thanks in advance

Olivier aka zeograd

Is it this git hub repository you are working on https://github.com/fundamental/zynaddsubfx ?

https://github.com/fundamental/zynaddsubfx/blob/master/src/Output/DSSIaudiooutput.cpp#L41 is what the plugin instances are connecting their control ports too. It’s static, but should be a member of DSSIaudiooutput.

The github is a clone of the primary repository on sf.net, but yes, that’s the right file and content.

Yes, you’re right about staticness of the controls. The bug lies on zasfx side, I will handle the fix.

Thank you for spotting this issue and apologies for incorrectly assigning it to renoise.

Glad it’s solved. No prob…