I hope someone can shed some light on this for me. Two things, 1) Changing between Stereo and Dual Mono in Logic Pro, when the sampling rate is 44.1Kz does not result in a call prepareToPlay()
2) What exactly is Dual Mono? It seems to describe an operation where a stereo plugin is broken down into two mono signals, one left and one right. But when I check my processor in this mode it usually returns mono, so is Logic creating two instances of the plugin? If so, and it’s running each with a single channel, how can developers tell which instance is which? Or does it merely bounce the left signal to both sides?
Right now I feel like bouncing it and the Mac it lives in out the top window of my office block!
Dual Mono is actually two unrelated mono instances.
The communication between them is done by the host using automation.
So if you moved a knob on one instance, and announced a parameter change, the host should pass that to the other.
There are no standard ways in the plugin API to talk to the other instance directly, although there are some hacky ways to do it if you really need to (send some custom message as a special parameter and decipher that on the other side, etc).
You can also talk to other instances via shared memory or file, but that’s also a bit hard, since the host isn’t telling the instance that you’re the “Dual Mono” of the other. As a plugin - you only know that you’re a mono instance, and hope the host handles it correctly.
Not sure (most of my dual mono testing happened in pro tools, and I don’t own Logic) but I assume it should be called on both instances. Do you have the plugin constructor called in that case?
That’s really weird, so you’re getting 2 constructors, and process calls on both, but without prepareToPlay? Does that mean that your sampleRate isn’t set, too?