MIDI knobs

Got a great idea for the future of LMMS? Post it here.
Forum rules

Make sure to search to see if your idea has been posted before! Check our issue tracker as well, just to make sure you are not posting a duplicate: https://github.com/LMMS/lmms/issues

Hello,

It would be fantastic if we could have more MIDI knobs to control CC messages. Currently, when one loads a VST with VeSTige, there only knobs we get are Volume, Pan and Pitch Bend. Maybe we could have a button on VeSTige that opens a new window with 127 knobs for all 127 CC. This way, it would be possible to control modulation wheels, breath control, etc.

This would be particularly useful when using Kontakt 5 with LMMS (see discussion here: http://lmms.tuxfamily.org/forum/viewtop ... f=7&t=1409 ). Basically, Kontakt works perfectly well via Wine but LMMS cannot automate any of its knobs. On the other hand, any knob in Kontakt can learn from which MIDI CC they should receive.

Regards,
Gilberto Agostinho
Have you tried the wrench icon?

Image
I have, but the problem is some VSTs (such as Kontakt 5) do not display those knobs properly. But my wished feature was different: those knobs in the wrench icon only show certain parameters of the VST, but what I am asking is related to MIDI controller numbers regardless of any VST (such as the panning knob).

One example: when using REAPER, I can automatize ANY of the 127 MIDI CC and this information is passed along to the VST plugin. If that plugin can use the information, then it will (e.g., sending some values to CC#1 will make use of the modulation wheel) else the information is ignored. This works extremely well and allows you to automate basically anything you'd like to!

Best regards,
Gilberto
Just to make my idea more clear, have a look how REAPER handles MIDI control change messages.

Here is their piano roll with the possibility to automate a CC:
Image

And here is a list of all 128 possible CC:
Image



Note that I did not select any synth or VST to play this MIDI track, it is totally unassigned to any form of playback. Thus, this CC data that I automated there is simply MIDI information that is written to the track. If a synth or sampler can use this information, then it will do automatically (in the case above, the mod wheel of the sampler will be automated if it has a mod wheel!).

Ardour3 also uses a similar idea to REAPER. What is good about this solution is that there is no need to interact with the GUI of a plugin or synth, as long as LMMS would pass this MIDI information intact to the plugin/synth, it will react to everything!
The first picture doesn't show.

I think I get what you are asking about, but it is still very vague for me, and I can't really picture how it would look like. Does LMMS only support like 5 MIDI channels now, and you want to increase it to 127? No, that got to be wrong, cause you can select each channel as of now. Does LMMS import MIDI bad (excluding automation and other MIDI effects), and then it probably sends/receives MIDI signals badly to/from instruments?
It's strage that the first image is not showing to you, both are showing fine here. Anyway, the second one is more important.

What I am asking is not related to MIDI channels nor about how LMMS import MIDI files, but rather to control changes (usually abbreviated as CC) that are special types of MIDI messages. Basically, a MIDI channel contains a lot of information such as notes on and off, but also information about 128 layers called controls. For example, layer no. 7 (i.e., CC#7) is responsible for volume and every MIDI instrument/sampler/interface knows that. So similar to MIDI notes, this layer can receive values between 0 and 127 representing the volume at a certain time. Most (if not all) programs, plugins, samplers, etc. already know which CC does what, so when they are reading a channel and they receive a change of CC#7, it will automatically change the volume of that channel - this includes LMMS, and that is why when you load a MIDI file, LMMS already knows the volume of each note! The same is true for bank (CC#0), panning (CC#10) and mod wheel (CC#1).

Here is a list of all these CC: http://nickfever.com/402/production-tip ... i-cc-list/

The beauty of using CCs is that some samplers and VST plugins allow you to assign such parameters to their knobs and controls.

I really liked LMMS since the first time I loaded it up, but the lack of feature has been a real pain for me (which is the reason I am currently using REAPER). When you load a VST in LMMS via VeSTige, you can only automate its bank, volume and panning parameters (on top of vestige), or certain other parameters via the wrench tool, but these last ones are related to the VST plugin in use but not to the track itself. This automation via wrench tool has limitations: some plugins show few or no options there, and also there are some very customizable plugins out there (such as Kontakt 5, which allows any CC to control any knob on its GUI).

Therefore, automation becomes trivial: take a CC that is not being used for anything (such as CC#14, which has no default interpretation of its values). Now ask your sampler to use CC#14 to control some knob, and there you have it! If you automate CC#14 and this value is passed along all the MIDI date to the sampler, it WILL automatically move its knobs even though you can't automate its GUI directly with LMMS.

And the beauty of it is that this information is written in the MIDI file itself, so after editing some CC using a software A and synthetizer X, you can still open it in software B and sampler Y and use the same information as before!

Does this make a bit more sense now?
Yeah, kind of makes sense. I have never used Reaper or been aware of the CC signals, but I can understand that there is something else than just the note signals in the new plugins. I advice you to file an enhancement on github so that this could be worked on by a developer https://github.com/LMMS/lmms/issues
Thanks for the suggestion, I just opened an issue at Github (I couldn't mark it as enhancement though, I believe only developers can label issues). Here is the link: https://github.com/LMMS/lmms/issues/1159