LMMS / lmms

Cross-platform music production software
https://lmms.io
GNU General Public License v2.0
8.06k stars 1k forks source link

Instrument container plugin #6938

Open Monospace-V opened 12 months ago

Monospace-V commented 12 months ago

Enhancement Summary

  1. Add a container plugin capable of loading multiple other instruments (unlimited number).
  2. By extension, ability to assign and map user-input key(range) passed to Plugin, to instrument-received key(range), so it can map entire ranges, multiple keys, or an individual key. (C4->D5 of instrument1; D4-D5->C2-C3 of instrument2; C3-D3->B3,B4,B5 of instrument3 etc). Simply put: load multiple instruments, assign keyIn to keySent.
  3. The individual instruments may have a master volume knob or something similar to the W/D mix in the effect chain.
  4. The plugin may have a master ability to put filters, envelopes, stacking and effects, so it behaves like a typical instrument plugin but with the components just being more plugins.
  5. Additionally, ability to cycle through GUIs of component instruments would be useful. Especially over the same window.

Justification

Several possible use cases due to ability to load multiple instruments and assign keys. Most common include:

  1. Drum pad / sound box functionality
    • Drumkits can be loaded as AudioFileProcessor instances for samples, but also Kicker, 3xOsc... no restriction on your percussive choices, as opposed to a typical idea of a drum kit that is limited to loading samples.
    • Since it can synthesize sounds too, it can function like an sfx Box of sorts. Highly convenient.
  2. Layering sounds and instruments
    • Multiple instruments playing the same sound. Useful from a sound design perspective.

Mockup

image

Note:

Spekular commented 12 months ago

I think, before putting too much effort into this solution, one should consider how necessary a plugin like this would be if LMMS had better internal MIDI/note-data routing. The layering workflow could also be improved via linked clips, and maybe track grouping for good measure.

These features seem more fundamental and flexible to me than an instrument container, and IMO they're among the more meaningful deficiencies when comparing LMMS to the mainstream DAWs.

Monospace-V commented 12 months ago

These features seem more fundamental and flexible to me than an instrument container, and IMO they're among the more meaningful deficiencies when comparing LMMS to the mainstream DAWs.

Fair. Many requests for it. Eventually there will be requests for a drumpad of sorts even as we add these. But this would be more functionally capable all the same. Then we'd need effects on the group track, etc... but yes. Flexibility around this would be useful. Ability to place notes on group AND within them. I could close this for https://github.com/LMMS/lmms/issues/735 if we throw in a note on internal midi routing within a group and key-instrument mapping.