# Hosts not calling processBlockBypassed

**URL:** <https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307>\
**Category:** Audio Plugins\
**Created:** [August 12, 2015, 1:46pm UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307 "2015-08-12T13:46:39Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![dave96](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/dave96/32/8487_2.png) [@dave96](https://forum.juce.com/u/dave96)\
**Post date:** [August 12, 2015, 1:46pm UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/1 "2015-08-12T13:46:39Z")

</div>

I just started adding some anti-click fades to some plugins intending to use processBlockBypassed to find out when the host has bypassed the plugin but it looks like a lot of hosts never call this.

I've tried Logic, Reaper and BitWig with various formats and none of them call&nbsp;processBlockBypassed. Most just stop calling the processBlock method but some continue to call processBlock (BitWig) but just don't pass the audio. Presumably this is so the UI keeps responding and they do their own bypass fading.

Has anyone come across a host that actually calls this method? Or am I just being thick?

---

<div class="post-metadata">

**Author:** ![Doug](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/doug/32/1421_2.png) [@Doug](https://forum.juce.com/u/Doug)\
**Post date:** [July 21, 2016, 10:34am UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/2 "2016-07-21T10:34:20Z")

</div>

Did you ever work out what was going on with this @dave96? Just hitting a similar issue, wondering if I’ve missed something obvious.

---

<div class="post-metadata">

**Author:** ![daniel](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/daniel/32/790_2.png) [@daniel](https://forum.juce.com/u/daniel)\
**Post date:** [July 21, 2016, 2:45pm UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/3 "2016-07-21T14:45:19Z")

</div>

Did you see this thread?

> [@Bypass detection?](https://forum.juce.com/t/bypass-detection/18276/4):
>
> Just verify that everything is fine before saying victory wink I think I have read somewhere that this things isn’t working on Logic for synthesizers / instruments, and I wouldn’t be surprised if some other hosts are doing that too…

Even thouhg there is no conclusion either, it has already checked some ideas for research…

---

<div class="post-metadata">

**Author:** ![Doug](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/doug/32/1421_2.png) [@Doug](https://forum.juce.com/u/Doug)\
**Post date:** [July 23, 2016, 9:59pm UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/4 "2016-07-23T21:59:10Z")

</div>

I don’t think I came across that in my searches for some reason, thanks for the link!

---

<div class="post-metadata">

**Author:** ![gustav-scholda](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/gustav-scholda/32/4172_2.png) [@gustav-scholda](https://forum.juce.com/u/gustav-scholda)\
**Post date:** [December 13, 2019, 1:35pm UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/5 "2019-12-13T13:35:42Z")

</div>

I know this is an old thread, but is anyone else experiencing this:  
I’m on Windows 10 / VS 2019 and both Ableton 10 and Reaper 6 don’t call processBlockBypassed in my VST3. They just stop calling processBlock. That’s really annoying as I can’t do anything to declick bypass on/off switching…

---

<div class="post-metadata">

**Author:** ![gustav-scholda](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/gustav-scholda/32/4172_2.png) [@gustav-scholda](https://forum.juce.com/u/gustav-scholda)\
**Post date:** [December 13, 2019, 5:21pm UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/6 "2019-12-13T17:21:40Z")

</div>

Investigating further: Mac / VST3 / Ableton 10 behaves the same way. When bypassed neither processBlock nor processBlockBypassed are called…

---

<div class="post-metadata">

**Author:** ![gustav-scholda](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/gustav-scholda/32/4172_2.png) [@gustav-scholda](https://forum.juce.com/u/gustav-scholda)\
**Post date:** [January 13, 2020, 11:13am UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/7 "2020-01-13T11:13:24Z")

</div>

I’m still experiencing this!!! nobody else? I think this is a JUCE bug 😕

---

<div class="post-metadata">

**Author:** ![dave96](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/dave96/32/8487_2.png) [@dave96](https://forum.juce.com/u/dave96)\
**Post date:** [January 13, 2020, 11:29am UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/8 "2020-01-13T11:29:15Z")

</div>

What makes you think it’s a JUCE bug? On the surface it seems like a host optimization to me?

It would be interesting to know if the underlying plugin APIs are being called or notified of this in some way though. Is there perhaps some kind of VST3 call like “wants process callback when bypassed”?

---

<div class="post-metadata">

**Author:** ![gustav-scholda](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/gustav-scholda/32/4172_2.png) [@gustav-scholda](https://forum.juce.com/u/gustav-scholda)\
**Post date:** [January 13, 2020, 11:46am UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/9 "2020-01-13T11:46:37Z")

</div>

because it used to work but now it doesn’t. If I bypass a VST3 in Ableton 10 processBlockBypassed doesn’t get called (both on Mac and Windows). Might be the Host changed something, but then JUCE needs to adapt. Currently it’s not possible to do click-free bypassing because of this…

---

<div class="post-metadata">

**Author:** ![dave96](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/dave96/32/8487_2.png) [@dave96](https://forum.juce.com/u/dave96)\
**Post date:** [January 13, 2020, 11:47am UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/10 "2020-01-13T11:47:48Z")

</div>

Do you know when it used to work? That would be useful for doing git bisects etc.  
(As far as I was aware this never worked, hence my original post here from 2015…)

---

<div class="post-metadata">

**Author:** ![daniel](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/daniel/32/790_2.png) [@daniel](https://forum.juce.com/u/daniel)\
**Post date:** [January 13, 2020, 12:08pm UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/11 "2020-01-13T12:08:03Z")

</div>

> [@gustav-scholda](#):
>
> because it used to work but now it doesn’t. If I bypass a VST3 in Ableton 10 processBlockBypassed doesn’t get called (both on Mac and Windows).

The host might have changed as well in the meantime… was it the very same version of Ableton?  
(not saying there is nothing to see here…)

---

<div class="post-metadata">

**Author:** ![gustav-scholda](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/gustav-scholda/32/4172_2.png) [@gustav-scholda](https://forum.juce.com/u/gustav-scholda)\
**Post date:** [January 13, 2020, 12:52pm UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/12 "2020-01-13T12:52:51Z")

</div>

It was the same version which is the latest Ableton 10. It also happens with Reaper 6 on Windows. If this never worked @dave96, how do you get rid of the click when bypassing? The problem is that the host just doesn’t call processBlock anymore when bypass is active, so there is no way to implement some kind of crossfading…

---

<div class="post-metadata">

**Author:** ![dave96](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/dave96/32/8487_2.png) [@dave96](https://forum.juce.com/u/dave96)\
**Post date:** [January 13, 2020, 1:14pm UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/13 "2020-01-13T13:14:48Z")

</div>

I didn’t get rid of it. I just gave up trying in the end and moved on to something else as it seemed like a host bug.

I guess what would be interesting would be to try it on some non-JUCE based plugins and see if they suffer from the same problem?

---

<div class="post-metadata">

**Author:** ![gustav-scholda](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/gustav-scholda/32/4172_2.png) [@gustav-scholda](https://forum.juce.com/u/gustav-scholda)\
**Post date:** [January 13, 2020, 4:42pm UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/14 "2020-01-13T16:42:02Z")

</div>

I see!  
So… Is there any solution to this from the JUCE team? All I want is a click-free bypass, it kind of weirds me out that this is so difficult to achieve 🙃 @jules

---

<div class="post-metadata">

**Author:** ![Jerryuhoo](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/jerryuhoo/32/8844_2.png) [@Jerryuhoo](https://forum.juce.com/u/Jerryuhoo)\
**Post date:** [January 20, 2021, 2:00am UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/15 "2021-01-20T02:00:15Z")

</div>

Hi, did you solve this problem? I met the same problem.

---

<div class="post-metadata">

**Author:** ![gustav-scholda](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/gustav-scholda/32/4172_2.png) [@gustav-scholda](https://forum.juce.com/u/gustav-scholda)\
**Post date:** [February 22, 2021, 10:50am UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/16 "2021-02-22T10:50:53Z")

</div>

nope 🙃

---

<div class="post-metadata">

**Author:** ![anthony-nicholls](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/anthony-nicholls/32/1246_2.png) [@anthony-nicholls](https://forum.juce.com/u/anthony-nicholls)\
**Post date:** [February 22, 2021, 11:18am UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/17 "2021-02-22T11:18:19Z")

</div>

This seems to be a really old thread but let me add my 2 pennies.

IIRC If you’ve declared a bypass parameter in JUCE via `getBypassParameter`, then I don’t believe `processBlockBypassed` will ever be called (although that probably wasn’t implemented when Dave first wrote this post). If you haven’t then yes I’ve certainly seen DAW’s call this in the past.

However, Logic never will call this method as its bypass is not actually a bypass it just stops processing altogether. Reaper should have two different bypass mechanisms, one will stop processing altogether (like Logic) the other should indeed notify your bypass parameter or call `processBlockBypassed`, but it’s been years since I tested that. I’m less sure about BitWig, but that actually sounds quite smart as it means you get constant processing performance which can reduce glitches due to sudden changes in processing.

See my comment here for more information

> [@How did you grow from POC to mature product and company?](https://forum.juce.com/t/how-did-you-grow-from-poc-to-mature-product-and-company/44255/9):
>
> Just to add to this another surprise I’ve had over the years is the complexity around bypassing! Ask yourself these questions. Should bypassing be glitch free? Should bypassing maintain the plugin latency? Should bypassing free up processing resources? Bonus question, should bypassing maintain a perceivable level? Why do I ask this? because different DAWs have different ideas. Most DAWs include two concepts. Normally bypass is glitch free and maintains the same latency. Additionally the…

---

<div class="post-metadata">

**Author:** ![gustav-scholda](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/gustav-scholda/32/4172_2.png) [@gustav-scholda](https://forum.juce.com/u/gustav-scholda)\
**Post date:** [February 24, 2021, 5:58pm UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/18 "2021-02-24T17:58:28Z")

</div>

Interesting, I can report that for Reaper and Ableton 10 it will call processBlockBypassed if you implemented the bypassParameter. However in both cases the parameter is not linked and if you bypass in the DAW neither processBlock nor processBlockBypassed are called.

---

<div class="post-metadata">

**Author:** ![anthony-nicholls](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/anthony-nicholls/32/1246_2.png) [@anthony-nicholls](https://forum.juce.com/u/anthony-nicholls)\
**Post date:** [February 25, 2021, 4:19pm UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/19 "2021-02-25T16:19:24Z")

</div>

Are you testing VST2 by any chance? linking can’t be done with VST2 (at least not in both directions). Which just adds another layer of complexity to the bypass shenanigans.

---

<div class="post-metadata">

**Author:** ![gustav-scholda](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/gustav-scholda/32/4172_2.png) [@gustav-scholda](https://forum.juce.com/u/gustav-scholda)\
**Post date:** [February 25, 2021, 4:46pm UTC](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307/20 "2021-02-25T16:46:09Z")

</div>

Nope, VST2 is dead (finally)

[Next page](https://forum.juce.com/t/hosts-not-calling-processblockbypassed/15307.md?page=2)
