Disabling processing when input is silent. Worth it?

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

AdmiralQuality wrote:"IN A HOST" I make plug-ins. So use SCAMP in those hosts, and you're golden -- except maybe it'll then cut off the ringing tails or do they also check the effect's output? I don't know... none of those are hosts I've spent much time in and I have other people test for me in them as I don't have licenses.
Yes, after all effect's tails have finished "ringing". It would be incredibly stupid and rather useless otherwise. :hihi:

Like I said in my post, I'd be interested to see this also in plugins, as many hosts do not implement this. I'm not sure why you think the check for silence code would be a bad idea because of CPU usage; you'd only need to check every few seconds while the plugin is activated, and then the code to the detect a signal>0 is fairly simple.

Post

stefancrs wrote: I'm not even a SCAMP user, and I haven't asked for anything :) So don't do it on account of my input in this thread.
That said, I've never automated bypass on any plugin ever :)

Btw, avoid checking if you need to do your processing on a "call-to-process() basis", the frame _can_ be the entire song you know.
Didn't mean you in particular stefan, sorry.

And I haven't automated a bypass either (lots of freezing tracks though) but I tend to build songs like it's a live recording (i.e. the instruments don't disappear in mid-song... or if they do mabye thats an edit in post?). And I don't go anywhere near the CPU limit if I'm recording, and all I worry about is the CPU peak... if it's going to gakk on me, I don't care if its for one sample in the song, or thousands. The take is most likely ruined regardless.

Again I think I'm getting some unrealistic examples here. To me, it's nice to throw the plug in and SEE how much CPU it's using, without having to actually run any sound through it.
the frame _can_ be the entire song you know.
Um, if the entre song is in the frame, is anyone going to notice if it takes a couple milliseconds longer to process? Because it certainly isn't real-time then. Maybe I'm misunderstanding you? :|

HEhehe, this is ridiculous. I'm going back to work for a while. Later everyone. I'll think about your suggestions.

Post

as many hosts do not implement this
hosts don't because they simply can't. I only provide it as a hack, but surely 'stopping after 4 sec if the plugin is not fed' doesn't work for a lot of plugins, like reverbs.

The plugin should do this itself, because it knows about how it works internally. You can even bypass some, but not all effects of a synth.
But it's because a lot of plugins don't bother that hosts come up with less nice workarounds.

Post

AdmiralQuality wrote:
the frame _can_ be the entire song you know.
Um, if the entre song is in the frame, is anyone going to notice if it takes a couple milliseconds longer to process? Because it certainly isn't real-time then. Maybe I'm misunderstanding you? :|

HEhehe, this is ridiculous. I'm going back to work for a while. Later everyone. I'll think about your suggestions.
No, well, the issue is that it can be anything from 1 sample to the entire song. If you only check for silence / audio every now and then you could miss out on audio appearing for an entire frame, no? Even worse if you check it every nth frame.

Maybe I misunderstood the proposed method though?

Post

tony tony chopper wrote:
as many hosts do not implement this
hosts don't because they simply can't. I only provide it as a hack, but surely 'stopping after 4 sec if the plugin is not fed' doesn't work for a lot of plugins, like reverbs.

The plugin should do this itself, because it knows about how it works internally. You can even bypass some, but not all effects of a synth.
But it's because a lot of plugins don't bother that hosts come up with less nice workarounds.
The host COULD if the plugins implemented getTailSize though, right?

Post

stefancrs wrote:
AdmiralQuality wrote:
the frame _can_ be the entire song you know.
Um, if the entre song is in the frame, is anyone going to notice if it takes a couple milliseconds longer to process? Because it certainly isn't real-time then. Maybe I'm misunderstanding you? :|

HEhehe, this is ridiculous. I'm going back to work for a while. Later everyone. I'll think about your suggestions.
No, well, the issue is that it can be anything from 1 sample to the entire song. If you only check for silence / audio every now and then you could miss out on audio appearing for an entire frame, no? Even worse if you check it every nth frame.

Maybe I misunderstood the proposed method though?
Ah, very good point. Yes, the re-activation check has to be per-sample. But that's going to still be a lot less CPU usage than the process that was bypassed (except for very simple processes). The de-activation check can happen every other year or so. Like I said, every nth call to process().

I see no big reason not to try this. Will get back to you, but keep the votes coming please. They're helpful.

Cheers.

Post

AdmiralQuality wrote:Again I think I'm getting some unrealistic examples here. To me, it's nice to throw the plug in and SEE how much CPU it's using, without having to actually run any sound through it.
You've said this a few times now. I really think you should do a poll on this, as I just can't believe many others agree with you.

And as for you repeating this thing where you say we're being difficult; I gave a realworld example of movie scoring where automatic plugin bypassing is all but essential. Here's another: I've used Logic for years and never had CPU problems. Now I'm thinking of moving over to Ableton Live, and CPU usage is far higher, allowing me to use less plugins. Is it unfair of me to ask dev's to provide a partial solution or should I just shut up deal with the hassle of freezing or buying a new PC every year?

Post

The host COULD if the plugins implemented getTailSize
Funny I didn't know about getTailSize, but you're right I think. I'll have to see with Fred if we can pass this through the FL wrapper, so I can actually use it to improve the smart disabling.

..if we can find plugins that call it, though. That would also mean they have to be able to predict the tail size, which may be harder than to actually implement the thing themselves.

Post

stefancrs wrote: The host COULD if the plugins implemented getTailSize though, right?
Right, but just like a lot of things in VST, it was a not bad idea that was half baked in implementation and is not enforced in any way.

Also, who's to say how long the tail of an IIR is? Especially one that imposes no clipping on the input signal. So it's probably for reasons like this that nobody uses it.

Again, I like the reality model. If it's ON, it's running. But I'm some kind of freak apparently. (No need to say it tony! You'd just be agreeing with me again. :P)

Post

Also, who's to say how long the tail of an IIR is?
it'll be a couple of ms for a normal IIR and harder to predict for a self-resonating one.

Which is the problem: getTailSize offers no way for the tail size to change over time, based on the plugin settings. So if the plugin has no way to ask the host to call getTailSize at will, it's pointless.

Or almost pointless, it'd at least improve my 'smart disabling' a bit, as I wouldn't have to use an arbitrary 4 seconds setting.

Post

AdmiralQuality wrote:But if someone wants to extract the binary resources out of my software to reuse in their own software, it's lawyer time, sorry (and I'm not even American!) I didn't spend 3 weeks building interface elements just to have somebody spend 3 minutes sucking the resource out of my .dll to use in their own product. (Though I'd consider licensing them for a reasonable fee if anyone was interested, just contact me.)

The point was, in the original context, was that someone pointed out that some people think a good reason to bake the background image into the knob is to protect it from being re-used by others.
eh? Do people actually do this? I mean normal people, not Babya? Seems to me just a bit paranoid, and certainly an odd reason to waste resources like that.

Post

babya doesn't steal resources from exe's. Instead, he puts his own name in the exe's resources, and calls it his own.

Post

tony tony chopper wrote:
Also, who's to say how long the tail of an IIR is?
it'll be a couple of ms for a normal IIR and harder to predict for a self-resonating one.

Which is the problem: getTailSize offers no way for the tail size to change over time, based on the plugin settings. So if the plugin has no way to ask the host to call getTailSize at will, it's pointless.

Or almost pointless, it'd at least improve my 'smart disabling' a bit, as I wouldn't have to use an arbitrary 4 seconds setting.
Why don't you just listen to the output? As I'm suggesting I do internally in mine? Ah... right... it could be a delay effect.

So yes we agree there, as I said, "who's to say"? (I've had SCAMP start shouting at me seconds or even minutes after last setting it... because a tiny signal inside it grew into self-oscillation. And the interplay between cutoff and resonance behavior complicate this even further! Actually... crap... that means I can't do a proper reactivation check by monitoring output because there'll BE no output!

OK, forget it, SCAMP is sticking to reality! I will do the stereo default change I suggested, but I'm now decided that, for SCAMP at least, auto-bypass isn't worth it. (I USE SCAMP as an oscillator sometimes. And it's ability to SLOWLY build its resonance is part of what seperates it from lesser filters.)

And to jackson, keep in mind that you'll also lose noticable CPU if each and every of your 100's of simultansously running plugins are doing activation/reactivation checks.

It;s a trade-off. But is it worth it? Ultimately it depends on the plug, how it works, and how much CPU it uses.

Post

tony tony chopper wrote:babya doesn't steal resources from exe's. Instead, he puts his own name in the exe's resources, and calls it his own.
true, but who does steal from exes? None that I heard of, none that I heard for profit or harm anyway...

Post

Oh well, at least we all know where to find a knob.
Image
Now with improved MIDI jitter!

Post Reply

Return to “DSP and Plugin Development”