Possible bug found in layer B envelopes... [SOLVED]

Razmo

  • ***
  • 2168
  • I am shadow...
    • Kaleidoscopic Artworks
Possible bug found in layer B envelopes... [SOLVED]
« on: July 23, 2018, 03:02:44 PM »
http://razmo.ziphoid.com/DelayBug.mp3

I found what i believe to be a bug in the delay parameter of the envelope(s) of layer B...

I created a program that use two envelopes with a delay, to control the onset of the two oscillators and a self oscillating filter... this was done to achieve the sound of three bellstrokes in the transient (a bell cluster)... with just layer A playing, this works well enough, but when I copy the same layer (A) to layer B, and change the delays on this layer to give me three more bell strokes at different delays than the first layer (to essentially give me 6 bellstrokes in a cluster), something goes wrong... the first 8 keystrokes sounds right... then after the 8th keystroke something goes wrong, and it sounds like the B layers delay parameters of the envelopes simply disappear, with all sounds of layer B happening at once without any delays...

It's a bit hard to describe this, so the demo in the link above shows exactly what I'm talking about... it's quite easy to hear that something happens to the envelopes... it keeps being wrong after the 8th keystroke, until you dial in another preset, and then back to this preset again... then it starts over again with 8 correct strokes, and then it goes wrong again.

So the bug is certainly replicable... I've written support about this and are waiting for their answer if it is a bug, and if it'll be on the buglist... just thought I'd share the knowledge with you.
« Last Edit: July 25, 2018, 10:05:22 AM by extempo »
If you need me, follow the shadows...

Razmo

  • ***
  • 2168
  • I am shadow...
    • Kaleidoscopic Artworks
Re: Possible bug found in layer B envelopes...
« Reply #1 on: July 23, 2018, 03:12:59 PM »
new observation:

It is not specifically tied to the layer B... it happens to layer A too... it seems to happen after every available voice has been used once... so if you use a stacked program, it will happen after the first 8 (since a stacked program plays two voices at each keystroke)... with a single layer program it happens after the 16th keystroke...

Something tells me that this is a bug in the voice allocation somewhere, when a voice is used for the second time after a preset has been selected...
If you need me, follow the shadows...

Razmo

  • ***
  • 2168
  • I am shadow...
    • Kaleidoscopic Artworks
Re: Possible bug found in layer B envelopes...
« Reply #2 on: July 23, 2018, 03:48:58 PM »
May not be a bug anyway... after some more experimenting with the program in the link above, it seemed to go away when I shortened some of the EG release times... still it seems odd that it had this behavior of not working with the long release times after the first 8 keystrokes... it must be something about the envelopes not having "ringed out" before the same voice is allocated again I guess... so could still be a bug, but I'm not sure...
If you need me, follow the shadows...

Re: Possible bug found in layer B envelopes...
« Reply #3 on: July 23, 2018, 03:53:13 PM »
May not be a bug anyway... after some more experimenting with the program in the link above, it seemed to go away when I shortened some of the EG release times... still it seems odd that it had this behavior of not working with the long release times after the first 8 keystrokes... it must be something about the envelopes not having "ringed out" before the same voice is allocated again I guess... so could still be a bug, but I'm not sure...
It's possible that a new voice and EG restart was available by the time you hit the 16th note. 16 voices is a LOT! Anyhow I couldn't replicate it with just a short EGs modulating the VCA.

Either way, nice idea for a patch! I never seem to use the EG delay.

Razmo

  • ***
  • 2168
  • I am shadow...
    • Kaleidoscopic Artworks
Re: Possible bug found in layer B envelopes...
« Reply #4 on: July 23, 2018, 03:56:22 PM »
I'm 99% certain it has to do NOT with a particular layer now, but rather something that happens when a voice is to be reused... but it definitely depends on the release rates... i had some of the release parameters set at max, and that may have been the reason... after lowering the, a bit it sounds like this:

http://razmo.ziphoid.com/DelayBug2.mp3

So even if there is a bug, it happens in extreme cases...
If you need me, follow the shadows...

Razmo

  • ***
  • 2168
  • I am shadow...
    • Kaleidoscopic Artworks
Re: Possible bug found in layer B envelopes...
« Reply #5 on: July 23, 2018, 04:03:59 PM »
My speculation is this:

If a voice's EG with a delay is initialized on the first use, but have not gone back down to zero when the voice is to be reused, then how would the delay be initialized the second time? ... would it simply just skip it if the EG is not at zero, or would it hold the EG's current output value for the duration of the delay parameter?

I noticed with the long release times, that if i waited a lot longer between each keystroke, that then it would not happen when the voice was to be re initialized, so it suggest that the problem with the delay parameter is tied to when the envelope has not reached the end of it's full cycle somehow.
If you need me, follow the shadows...

Re: Possible bug found in layer B envelopes...
« Reply #6 on: July 24, 2018, 06:31:08 AM »
I think you're right about the EG not being reset until it's gotten back down to 0. That's pretty common for analog synths, as far as I can tell. My Mopho X4 and JX3P behave that way.

Nice patch, by the way!

Razmo

  • ***
  • 2168
  • I am shadow...
    • Kaleidoscopic Artworks
Re: Possible bug found in layer B envelopes...
« Reply #7 on: July 25, 2018, 12:25:52 AM »
It's no doubt the EGs not having settled that was the culprit here... support came to the same conclusion, so there is no bug... an administrator can mark this topic as solved if they wish so.

To explain the preset, this is what i was doing:

To make three bellstrokes, I simply set each oscillator to the desired pitch, and the self oscillating filters pitch with the cutoff parameter.

The Oscillator MIX parameter is set so that only oscillator 1 is audible, and the resonance is set just below self oscillation, so the oscillation is not present (quiet... no sound coming from the filter... this makes sure that when the AMP envelope is triggered, only oscillator 1 will be heard.

the Amp envelope controls the overall volume and it's curve... Envelope 3 controls the Oscillator MIX parameter, while the filter envelope controls the resonance parameter. The Env3 delay parameter is set so that the second oscillator pops in some milliseconds later, while the filter envelope kicks in the resonating filter a few milliseconds after that.

Initially i let the release times of the filter envelope and envelope 3 be at max... this was because I did not want the let them "ring out" as the Amp envelope took care of the real amplitude curve... but this was the problem, because when I then reinitialized a voice later that did not have the filter envelope and envelope 3 back to zero, then the initial delay would happen with the envelopes wide open... that meant that when the Amp envelope was gated again, both oscillator 2 and the self oscillating filter was still there... in essense eliminating their initial delays.

It is a bit of a complicated program to set up, and you only get the delays strokes if you hold the keys down for a little while, but all in all it's an interresting sound you get from this, especially when you stack two layers with this, and change the delays between the two layers so that they do not sound at the same time giving you 6 bellstrokes in a cluster... dip both layers in some stereo delay and crank up the Pan parameter while setting the delay FX of one layer to a different time division and you'll have a rather convincing belltree like sound when playing fast up and down the keyboard :)
If you need me, follow the shadows...

dslsynth

  • ***
  • 1041
Re: Possible bug found in layer B envelopes...
« Reply #8 on: July 25, 2018, 11:13:09 AM »
[...] I did not want the let them "ring out" as the Amp envelope took care of the real amplitude curve... but this was the problem, because when I then reinitialized a voice later that did not have the filter envelope and envelope 3 back to zero

You mean that an envelope started by a note-on event will not be reset back to zero on a subsequent note-on event? And that this results in the envelopes having non-zero initial values on the subsequent note-on event if the preset have longer release times than the time distance between the two note-on events?

Is that standard and intended behavior for all DSI synths?
#!/bin/sh
cp -f $0 $HOME/.signature

Razmo

  • ***
  • 2168
  • I am shadow...
    • Kaleidoscopic Artworks
Re: Possible bug found in layer B envelopes...
« Reply #9 on: July 25, 2018, 11:33:19 AM »
[...] I did not want the let them "ring out" as the Amp envelope took care of the real amplitude curve... but this was the problem, because when I then reinitialized a voice later that did not have the filter envelope and envelope 3 back to zero

You mean that an envelope started by a note-on event will not be reset back to zero on a subsequent note-on event? And that this results in the envelopes having non-zero initial values on the subsequent note-on event if the preset have longer release times than the time distance between the two note-on events?

Is that standard and intended behavior for all DSI synths?

It's standard behavior in practically all analog synths I'd say... I believe that the envelopes of the REV2 is digital though, but they are probably modelled on analog envelopes... support also said that this is how all DSI envelopes have been, so yes... it's all of them...

I know that some synths give you the choice of a 0 reset or continuing from where the envelope was at the point of a retrigger... Waldorf Pulse 2 does this if I recall right...

Actually both options are useful... imagine a pad sound with a long attack and release amp envelope... if it would reset to zero when you hit a new key you'd get a rather obvious click when the still not finished release phase is abruptly set to zero... if it continues from where it left off, then you would not get this click, it would just begin to rise again from whatever point the release phase had reached... with a polyphonic sound you'd not hear this until the same voice is to be retriggered, so in that case it may have reached zero before being retriggered, but with extremely long release times, you'd get a clicking sound too if reset to zero.
« Last Edit: July 25, 2018, 11:42:14 AM by Razmo »
If you need me, follow the shadows...

dslsynth

  • ***
  • 1041
Re: Possible bug found in layer B envelopes...
« Reply #10 on: July 25, 2018, 11:46:59 AM »
I know that some synths give you the choice of a 0 reset or continuing from where the envelope was at the point of a retrigger... Waldorf Pulse 2 does this if I recall right...

Actually both options are useful...

Thanks for the answer, Razmo! Agree that both options would be useful. The advantage of the current behavior is that it may allow DSI synths to emulate the memory effect of lowpass gates and I like that possibility. Said effect is nicely demonstrated in this video:

#!/bin/sh
cp -f $0 $HOME/.signature