cosinekitty / sapphire

Sapphire - free modules for VCV Rack 2
GNU General Public License v3.0
24 stars 3 forks source link

Galaxy High Voltage on startup #55

Closed docb closed 2 months ago

docb commented 2 months ago

galaxy_startup

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.

cosinekitty commented 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.

docb commented 2 months ago

Linux Ubuntu, Rack 2.4.1 Mostly it lasts long, but i remember it gets lower over time.

cosinekitty commented 2 months ago

Can you provide the patch for me to reproduce this with? I can't seem to make it happen on my system.

docb commented 2 months ago

etude35.vcv.gz

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)

cosinekitty commented 2 months ago

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?

docb commented 2 months ago

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 ....

cosinekitty commented 2 months ago

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.

baconpaul commented 2 months ago

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!

docb commented 2 months ago

the PAD module is the one which makes occasionally spikes at startup on my side:

image

when connecting to plateau, the spike makes a nice sound ... and with galaxy the issue can be reproduced.

baconpaul commented 2 months ago

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

docb commented 2 months ago

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.

baconpaul commented 2 months ago

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

cosinekitty commented 2 months ago

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!

docb commented 2 months ago

thx. it looks good. image the yellow trace from galaxy does now also stop the spike immediately.

cosinekitty commented 2 months ago

Awesome! This will go out in my next maintenance release. This change makes total sense to me as a good safety feature.