Does it make sense to put several plugin formats in a single binary?

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

Post

My plugins support several formats, to be specific VST2, VST3, and AudioUnit. Each format is totally independent and separated bundle/binary.

Recently, as an experiment, I made a single all-in-one binary that exports entry points for each format and made all plugin binaries hardlinks to a single inode on the disk. The size of this all-in-one single binary is less than sizes of all three or any two combined. It is totally expected since they share a lot of common processing code. Also, because all these three are effectively the same file on disk, DAW loads it only once, even if I use all three formats in the same project. All common resources inside bundle can be also hardlinked. AudioUnit is not an option for windows, but VST's can still be merged together.

So the question is, other than hassle with installation and updates, are there potential problems if I deliver different formats as hardlinks to the same physical binary? Maybe somebody did or does deliver plugins this way? Are there pros?

Post

JUCE used to work this way until a few years ago, it was great. It was no longer possible with AUv3 for some reason.

Faster build times, smaller downloads.

But I'd really advise hard links. Just make your installer install it twice. Do any installers even support hard links? I don't think users understand hard links at all, especially on Windows.

Post

FigBug wrote: Sat Jun 06, 2020 1:04 pm But I'd really advise hard links. Just make your installer install it twice.
Unfortunately installing twice does not have pluses of hardlinks. In that case it is really better to have designated binary for each format.
FigBug wrote: Sat Jun 06, 2020 1:04 pm Do any installers even support hard links? I don't think users understand hard links at all, especially on Windows.
They don't support hardlinks per se but they do support scripting and hardlinking may be implemented in scripts.

Post Reply

Return to “DSP and Plugin Development”