Closed docb closed 2 months ago
I will investigate this. I have a couple of questions to help diagnose the issue. When the crazy voltage happens, how long does it last? Is it changing or is it constant? And what OS are you running VCV Rack in?
Thanks for taking the time to report this.
Linux Ubuntu, Rack 2.4.1 Mostly it lasts long, but i remember it gets lower over time.
Can you provide the patch for me to reproduce this with? I can't seem to make it happen on my system.
currently i get this problem more frequently if i switch from another path to this one. (also from a patch which also has the galaxy)
Thanks for sending the patch. I'm running it now, but I can't seem to repro the problem. I'm running on Debian Linux on Intel x64. The main difference is I build the code for Rack 2.5.2, using the 2.5.2 SDK. I tried running 2.4.1 here, side-by-side with 2.5.2, but it's really annoying to get the plugins working with both versions.
Maybe you could try running 2.5.2? I know some people don't want to because of some breaking changes, but it would be interesting to know if there is a version compatibility problem.
I also want to rule out any weird voltage spikes from Venom Send at startup. Do you ever see the crazy voltage output from Galaxy with other stuff connected to its inputs?
with 2.5.2 its the same. But when muting the send or set the amount lower as maximum i cannot get the issue. However i have seen this issue also in several other patches without venom send with airwindows. It can be that galaxy/galactic is sensible to any spike from somewhere at startup. Is it possible to make at least a clipper at e.g. 12 V, Or a sensor which empties the buffers if the voltage exceeds some amount? However i understand that if you cannot reproduce it's hard to fix ....
I do have output limiters for my other modules, and with certain Galactic/Galaxy settings, very large inputs could cause outputs of reasonable level. Putting these together, I like your idea of an auto-reset if the output goes outside a reasonable range (e.g. 100V). I will work on that and report here when I have a test build for you. I really appreciate you helping me improve quality for everyone who uses Sapphire.
I thought I put an auto reset in airwin module but maybe only on nan. I could do it on voltages larger than 100 or some such also I guess!
the PAD module is the one which makes occasionally spikes at startup on my side:
when connecting to plateau, the spike makes a nice sound ... and with galaxy the issue can be reproduced.
So docb pad sends uninit floats out and that blows up galaxy?
Isn’t the fix in docb pad then? Or do I misunderstand?
I think a 50v clipper on input might make sense anyway but still that would just give you a dc blast or square wave squeal if the input is bad
Sure i am on it but not found a solution yet. As i mentioned already nevertheless something that prevents the galaxy to blast for minutes the audio interface may also make sense. e.g. like plateau which does not blow up.
Yeah galaxy has a long long long long tail - long. Not as long as infinity but still long
the airwin rack version has a reset on the rmb. Adding an if and fabs sample by default seems bad. For airwin rack what I did is if sample 0 of the block is a nan I reset and I guess I could extend that check to output outstrips 20v or some such
I added auto-reset logic to Galaxy. If the output becomes non-finite or goes beyond 100V, it resets the Galaxy engine and holds the output silent for 1/4 second.
Oh, and I had to push another commit because I forgot to set my test threshold from 3V back to 100V.
The fix attempt can be downloaded from the bottom of this page. @docb Can you try this and let me know if it helps? Oh, and I love your Etude 35 by the way!
thx.
it looks good.
the yellow trace from galaxy does now also stop the spike immediately.
Awesome! This will go out in my next maintenance release. This change makes total sense to me as a good safety feature.
Maybe you can fix this together with @baconpaul as with Airwindows Galactic i frequently get the same problem. It disappears if i initialize the module but this is clearly not optimal.