Can a DAW handle plugins with multiple instruments?

Hi,

I’m considering to make a plugin that has some very special features which makes it necessary to put multiple instruments and effect in one plugin.

But I wonder if a DAW can handle that. When multiple instruments are in one plugin, can the DAW create tracks for each instrument separately?

You mean like a multitimbral instrument ?

A plugin lives on one track in a DAW. The user could set up special routings, sending some audio channels to different tracks, but that would be manual configuration by the user.

I mean multiple instruments.
So different MIDI channels should be routed to that plugin.
I guess that is not easy to do.

A plug-in can receive MIDI from multiple channels at a time. Many instrument plug-ins simply ignore the channel number in the MIDI messages but you can do different things for the different channels if you want to. (Such as make a multitimbral instrument, as was mentioned.)

1 Like

Mind you:

  • multiple channels of midi: yes (16 to be precise)
  • multiple ports: no

Also worth asking: your own or third party instruments?
Both is doable, but done very differently

Kontakt is an example of a plugin that can receive MIDI in 16 channels and make each channel play a different instrument. Any DAW that allows you to do that with Kontakt will work with your plugin. Maschine is one DAW I remember that doesn’t allow one plugin instance to receive multiple MIDI channel inputs.

1 Like

Why would that be different?

For third party you need the scanning and they need to be loaded dynamically, i.e. your plugin is a host at the same time.
If they are your own libraries, you can save the discovery and hard code the instruments in it. You can even just link them all into one binary.

But from that little information I cannot form a picture in my head what you want to make.

Isn’t this stuff (scanning and loading etc) handled by Juce?
That is the main reason to use Juce, isn’t it?

The necessary classes are there, yes. But you still need to set it up. By default a plugin wouldn’t scan for other plugins.
It is not a one-liner, but you don’t start with nothing either.
But it comes with a bag of (solvable) problems, like the plugin can be too short lived to finish scanning, not each instance should scan itself etc.

Anyway, I was just trying to get more information in order to assist.