We have a desire to allow “previewing” audio (notes on an on-screen keyboard the user can click on) in a plugin that also needs to take audio input (in all hosts). Is there any way to do that? We’ve found that some hosts won’t call our processBlock() function unless the transport is running. (ProTools, for example, stops calling it a few seconds after the transport is stopped.) I know an Instrument would let us generate tones, but a number of hosts don’t feed audio to Instrument plugins, since they’re generally expected to use MIDI inputs (or be simply generators that create their own audio programmatically). Is there any way to allow both tone generation without running the transport AND allowing audio to be processed like a normal effect plugin? (My assumption is there is not.)
If you report a very long “tail time” to the host, processing should never stop.
But other than that, no way to accomplish my goals?
Not that I’m aware. Also why is that solution not suitable for your project?
Won’t that only work to keep the processBlock() calls coming after stopping the transport? What if the user never starts the transport? And what about Logic? Doesn’t it simply not call the Render() function (which leads to the processBlock() call) when not running the transport? As I recall, it did not have the same behavior as Pro Tools, which keeps calling it for some time. after stopping the transport and then stops. And what about Cubase, if the user’s Preferences are to not call the plugin when no audio is present? Will tail time have any affect there? I can test this and see, I guess, but if it fails in any common use case, then it’s not a solution we can use.
Put a DBG in and test it.
Kinda what I meant by " I can test this and see, I guess"
As far as I know, as of now there is no solution that works in Logic. Infinite tail keeps it running once you started playback, that’s as good as it gets.
Are you absolutely sure about this? I just saw someone working with Melodyn in Logic and it definitely produced audio without the transport running. Or does Melodyn have a separate audio output selected that I just missed?
When I tried to figure this out a few years ago, after some googling and searching this forum, the consensus was that Logic must have some special case handling for Melodyne…
Oh yes, that’s very much possible! Well then I guess the audio tail off hack is the best option - or produce your own audio output with a separate Device Manager. I was doing that for my own software with mixed feelings about it now. It’s a great solution for my environment, where I’m performing on a sound card and (at times while that is happening) editing through the phones output stuff without disturbing the performance.
It kind of sucks once you A) render to the same device, because then they fight over what sample rate or buffer size to use (one audio device cannot do both) and B) you won’t run through all effects setup in your DAW. But for a Melodyne style application I think it might actually be a solution worth looking into and see how it fits your customer base.