Start a new topic

Multi-threading and Cypher2/Strobe2

Some of you have asked about why Cypher2 and Strobe2 do not use multi-threading. Here's an article from Cypher2's lead developer, Angus, on multi-threading:

"Clearly, multi-threading is absolutely necessary to take advantage of the high core counts available on modern CPUs - however, in almost every case, the process of thread-allocation and load-balancing - by which work is handed out to each core to be processed - is best handled by the DAW, not the plug-in. Say, for example, you're running Logic with two instances of Cypher2, one of Serum and one of Zebra, plus a few effects, it's by far the best for Logic to work out which core each plug-in should be run on, and move things around as necessary. Indeed, most modern DAWs are extremely good at this. In this situation, for a plug-in to do its own multi-threaded audio processing independently of the host's efforts to balance out the work on each core can actually be very counterproductive: because plug-ins have no way of reporting to the host that they're doing this extra work, so the host will get an incorrect impression of how much work each core is doing at any given time.

So although Cypher2's audio engine is not multi-threaded internally, if you are running more than one instance, any good host will be able to allocate those instances to different threads & therefore different CPU cores.

Multi-threading within a plug-in is only necessary in cases where the audio engine of a single instance is too big and heavy to fit on a single core with a decent voice count. This is indeed the case for some of the most CPU-hungry modern plug-ins, and for Strobe2 & Cypher2 when running on weaker cores such as the above-mentioned Atom and Raspberry Pi, but should not be the case running on any i-series CPU."

If you experience any performance issues with Cypher2, please don't hesitate to open a new support ticket, and our team will be happy to help.