Disabling processing when input is silent. Worth it?

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

Post

Jason Brian Merrill wrote:well this user would like to have a "smart disable" function in every host.
And you'd be right to desire that. If plugins could do it as well, all the better.

I've seen movie scores running on Logic that use literally hundreds of effects and instruments in a single "song". Obviously they're not all used at the same time, but that's the point. It's only feasible to do this in a host that automatically turns on/off plugins, which to my knowledge includes Logic, Samplitude and FL.

Post

This has turned into a bitch fight, ya big bunch of girly tosspots. When i was a lad we had proper fights with housebricks and fencepost bats with nails in the end. None of yer slapping and girley insults from 200 yards away..

Yer silly conts....

seriously though i did get hit on the head with half a housebrick when i was a kid, spent a few days in hospital, which could explain a lot i know...

Doesnt matter realy does it?

;-)

Post

jackson wrote:
Jason Brian Merrill wrote:well this user would like to have a "smart disable" function in every host.
And you'd be right to desire that. If plugins could do it as well, all the better.

I've seen movie scores running on Logic that use literally hundreds of effects and instruments in a single "song". Obviously they're not all used at the same time, but that's the point. It's only feasible to do this in a host that automatically turns on/off plugins, which to my knowledge includes Logic, Samplitude and FL.
you are correct.

Post

Jason Brian Merrill wrote:this ISNT asking you to join you outside.

go to PM and see what happens.

that would be taking it outside.

if you havent noticed, you are still in public ;)
Jason, I said I'd consider your opinion. OK? What more do you want?

And by outside, I meant outside of TSV's or the X-mod threads. Here in this bar, the topic IS our fight. (So bitch as much as you want in here tony, but stop with the lies and stop responding to everything I post without even bothering to read it. I never said any of the things you accuse me of -- try the QUOTE feature rather than summarizing me. As I've done to demonstrate my complaints about YOU.)

Personally, I like the CPU to stay somewhat constant. You either have enough CPU for the project you're running, or you don't. If it's going to gakk out in the middle of the song, I'd rather know that up front. But again, this is just my personal way of working, and I AM interested in what my customers (not that you are one) want.

Cheers! Maybe SCAMP 1.2 will come out in a day or two just so I can prove that I AM flexible in my opinions. Unlike some people here.

Post

Jason Brian Merrill wrote:
jackson wrote:
Jason Brian Merrill wrote:well this user would like to have a "smart disable" function in every host.
And you'd be right to desire that. If plugins could do it as well, all the better.

I've seen movie scores running on Logic that use literally hundreds of effects and instruments in a single "song". Obviously they're not all used at the same time, but that's the point. It's only feasible to do this in a host that automatically turns on/off plugins, which to my knowledge includes Logic, Samplitude and FL.
you are correct.
"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.

Incedentally tony, would you guys like to exchange NFR copies? I WOULD like to test in your host myself. Yes, there are lots of people out there using it. And I'm happy for you for that.

Post

Another question for you all:

Obviously I can't just test if the input/output is zero every sample (or just once per sampleFrame) As it's possible (however unlikely) to pass through an exact zero in the middle of a waveform. So how many zeros should I count in a row before I disable it?

And are you starting to see how this is adding a LOT of code yet?

Post

AdmiralQuality wrote:
Jason Brian Merrill wrote:
jackson wrote:
Jason Brian Merrill wrote:well this user would like to have a "smart disable" function in every host.
And you'd be right to desire that. If plugins could do it as well, all the better.

I've seen movie scores running on Logic that use literally hundreds of effects and instruments in a single "song". Obviously they're not all used at the same time, but that's the point. It's only feasible to do this in a host that automatically turns on/off plugins, which to my knowledge includes Logic, Samplitude and FL.
you are correct.
"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.
You could always implement getTail() in your plugins, so that hosts that want that information could use it. Not sure any host actually uses it, but it could definately be useful to a host.

edit: Haven't got the SDK where I am atm, so I reserve myself against remembering what getTail does incorrectly :)
Last edited by stefancrs on Thu Jul 20, 2006 3:58 pm, edited 1 time in total.

Post

AdmiralQuality wrote:
Jason Brian Merrill wrote:
jackson wrote:
Jason Brian Merrill wrote:well this user would like to have a "smart disable" function in every host.
And you'd be right to desire that. If plugins could do it as well, all the better.

I've seen movie scores running on Logic that use literally hundreds of effects and instruments in a single "song". Obviously they're not all used at the same time, but that's the point. It's only feasible to do this in a host that automatically turns on/off plugins, which to my knowledge includes Logic, Samplitude and FL.
you are correct.
"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.

Incedentally tony, would you guys like to exchange NFR copies? I WOULD like to test in your host myself. Yes, there are lots of people out there using it. And I'm happy for you for that.
you can test your plugin just fine in the demo of FLstudio, its only limitation is you cant save .flps... you can export wave and mp3 however.

Post

That 'constant CPU' logic is so much flawed. I mean, just imagine synths working like this: let's process 15 voices silently so that when the user presses 3 notes, it will eat the same as just 1 note.

As for counting zero's, what are the chances you'll be counting for more than 1 sample? In most cases even just the first sample will be non-zero. And if it's not, there's a good chance that the whole chunk is all zero. And a good asm loop will make it all transparent. What's 0.001% CPU usage compared to 15%?

Post

stefancrs wrote:You could always implement getTail() in your plugins, so that hosts that want that information could use it. Not sure any host actually uses it, but it could definately be useful to a host.
Well I'll be dipped in shit. Loot at that eh? getGetTailSize () Who knew? ;)

But yeah, I bet NOBODY implements it, eh? ;)

Anyway... c'mon, if your SCAMP or any other track was silent during a certain passage, and you were hard up for CPU at that point, wouldn't you automate a bypass of the ENTIRE track for that part?

I think some of you are being intentionally difficult.

OK, here's what I propose for upcoming changes to SCAMP (see? You ask and...ACTION!)

1. Default to stereo operation, force surround people to activate the extra channels manually. I probably should have done this long ago as it would save a LOT of misconceptions from people who try without looking at what they're trying. Cubase negotiates the channels correctly, but that's about it... even other Steinberg products like Wavelab screw this up (bit surprise there, I know ;) )

2. Check for input < threshold && output < threshold on every nth call of process (why do it every time? milliseconds dont count) and bypass the channel when both are true for more than 2 (maybe more?) successive tests. Moving any knob will instantly reactivate it (it may just turn itself right off again though, but this would let you self-oscillate)

And if that logic adds ANY measurable CPU load, then forget it, I'm not punishing everyone else just to make you guys happy.

Cool? See tony? This is how to admit you're wrong. :roll:

Post

AdmiralQuality wrote:
stefancrs wrote:You could always implement getTail() in your plugins, so that hosts that want that information could use it. Not sure any host actually uses it, but it could definately be useful to a host.
Well I'll be dipped in shit. Loot at that eh? getGetTailSize () Who knew? ;)

But yeah, I bet NOBODY implements it, eh? ;)

Anyway... c'mon, if your SCAMP or any other track was silent during a certain passage, and you were hard up for CPU at that point, wouldn't you automate a bypass of the ENTIRE track for that part?

I think some of you are being intentionally difficult.

OK, here's what I propose for upcoming changes to SCAMP (see? You ask and...ACTION!)

1. Default to stereo operation, force surround people to activate the extra channels manually. I probably should have done this long ago as it would save a LOT of misconceptions from people who try without looking at what they're trying. Cubase negotiates the channels correctly, but that's about it... even other Steinberg products like Wavelab screw this up (bit surprise there, I know ;) )

2. Check for input < threshold && output < threshold on every nth call of process (why do it every time? milliseconds dont count) and bypass the channel when both are true for more than 2 (maybe more?) successive tests. Moving any knob will instantly reactivate it (it may just turn itself right off again though, but this would let you self-oscillate)

And if that logic adds ANY measurable CPU load, then forget it, I'm not punishing everyone else just to make you guys happy.

Cool? See tony? This is how to admit you're wrong. :roll:
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.

Post

tony tony chopper wrote:That 'constant CPU' logic is so much flawed. I mean, just imagine synths working like this: let's process 15 voices silently so that when the user presses 3 notes, it will eat the same as just 1 note.

As for counting zero's, what are the chances you'll be counting for more than 1 sample? In most cases even just the first sample will be non-zero. And if it's not, there's a good chance that the whole chunk is all zero. And a good asm loop will make it all transparent. What's 0.001% CPU usage compared to 15%?
Tony, I ALREADY agreed with stefan that it's not appropriate for synths. At least read the thread before you argue points I already agree with.

And what are the chances? Not much. But it could make for a very rare bug, and if that's how you write code...

Post

This is how to admit you're wrong
well, I admit you're wrong

Post

AdmiralQuality wrote:
tony tony chopper wrote:That 'constant CPU' logic is so much flawed. I mean, just imagine synths working like this: let's process 15 voices silently so that when the user presses 3 notes, it will eat the same as just 1 note.

As for counting zero's, what are the chances you'll be counting for more than 1 sample? In most cases even just the first sample will be non-zero. And if it's not, there's a good chance that the whole chunk is all zero. And a good asm loop will make it all transparent. What's 0.001% CPU usage compared to 15%?
Tony, I ALREADY agreed with stefan that it's not appropriate for synths. At least read the thread before you argue points I already agree with.

And what are the chances? Not much. But it could make for a very rare bug, and if that's how you write code...
That's not quite what he meant I think. He probably means that you can stop counting as soon as you hit a non-zero value, which will be the case most of the time.

Post

But it could make for a very rare bug
a bug? you didn't even understand it. And it's just a simple check if a buffer is silent.. how could you make this buggy?

that you can stop counting as soon as you hit a non-zero value, which will be the case most of the time.
yes, most of the time, and when it won't be, chances are that the whole buffer is zero, so he'll have wasted 0.001% CPU for the check, and gain 5, 10, 15%?
And when almost the whole buffer will be zero except 1 sample at the end, then his plugin will eat 15.001% instead - big deal.

I mean, we're in 2006, things like adding 32bit float buffers, zeroing, multiplying, checking for zero come for almost free. Especially if you have a good library of optimized functions (and you can use Intel's IPP if you don't want to write your own).
Last edited by tony tony chopper on Thu Jul 20, 2006 4:17 pm, edited 1 time in total.

Post Reply

Return to “DSP and Plugin Development”