Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Instrument container plugin #6938

Open
Monospace-V opened this issue Oct 14, 2023 · 2 comments
Open

Instrument container plugin #6938

Monospace-V opened this issue Oct 14, 2023 · 2 comments

Comments

@Monospace-V
Copy link
Contributor

Monospace-V commented Oct 14, 2023

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.
  1. Layering sounds and instruments
  • Multiple instruments playing the same sound. Useful from a sound design perspective.

Mockup

image

Note:

  • Previously mentioned: Drum playing plugin  #1460 (comment) but 9 years ago, when not stable enough a core.
  • Similar issue: Add drum pad instrument #4075 which brings up sample-based drumpad.
  • Related issue: Enhancement: Midi Out Plugin #793 which mentions daisy-chaining and requests a specialized MIDI-Out plugin.
  • Related issue: feature request : an instruments layer #443 which asks for instrument layering. (I'm sure there's more, but I cannot find them.)
  • Similar issue: Multiple instruments enabled at once #6118 closed in favor of this one.
  • Implementation of envelopes in the plugin could be tricky and ugly. Possible alternatives include showing the same tab of the component instrument plugin if (see point 5 of summary) when navigating through instruments, allowing users to set similar envelopes for each. Also, a set-global-envelope button for taking one instrument's parameter (volume/cutoff/reso) envelope and setting the same parameter envelope to those values. Sounds painful.
@Spekular
Copy link
Member

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.

  • Limited MIDI routing makes some effects unusable or severely restricts their functionality. For this issue's usecase: greater routing possibilities could let one clip's content be sent to several instruments. Filtering could limit which notes the instrument should respond to (minimum and maximum notes can already be set).
  • Linked clips generally make it easier to update melodies, automations, or samples that are reused; depending on the implementation they would greatly improve the feasibility of the drums-in-audio workflow in LMMS. For this issue's usecase: layered parts could be kept in sync automatically by linking the clips used on each track.
  • Track grouping would generally be good for organization, and for this issue's usecases could be used to group and collapse the instruments making up a layered sound.

@Monospace-V
Copy link
Contributor Author

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 #735 if we throw in a note on internal midi routing within a group and key-instrument mapping.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants