LMMS / lmms

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

MIDI Controller use in Automation Tracks #2059

Open theguitarplayer opened 9 years ago

theguitarplayer commented 9 years ago

In order to playback a song in the editor that has recorded automation tracks in it, it is necessary to disconnect the MIDI controller from whatever it is controlling. Otherwise the automated knob, fader, etc. will remain at whatever the MIDI Controller's knob or fader level is at. The automation tracks in the song editor should really over ride the MIDI Controller in Playback.

theguitarplayer commented 9 years ago

To clarify:

I would like it if the automation tracks would over-ride all input. The reason I want this function is because every time I record an automation track I must remove connection from the MIDI controller in order to play it back correctly. But I don't want to remove the connection. That is a lot of work to do that every time I record. So it would be easier if the automation track would over-ride the MIDI Controller levels that are controlled by faders and rotary knobs. I know I might not be explaining myself clearly but hopefully somebody understands.

Wallacoloo commented 9 years ago

@theguitarplayer I understand what you're requesting. Though I'm not convinced that I agree with it. It seems more natural to me that midi controls would override automations so that you can try new things live. Maybe the way to go is:

When play is pressed, any automation tracks initially have control over their associated values. If at any time a MIDI controller is changed, then it takes control over its value until the song is paused (once the song is unpaused, automation tracks take control once again).

This prevents automations and midi controllers from fighting each other, while also allowing for either one to override the other in a well-defined way. But is this behavior too complex to be intuitive?

theguitarplayer commented 9 years ago

Thanks for your reply Wallacoloo.

"It seems more natural to me that midi controls would override automations so that you can try new things live." If you don't want the automation track interfering when you "try new things live" wouldn't it seem more natural to mute the automation track?

Is it too complex to be intuitive? No. Auto tracks are auto tracks. We shouldn't care about the MIDI if there is an auto track. That is why auto tracks should reign supreme and over-ride the MIDI. MIDI is important for recording purposes IF there is an automation track. And IF you don't want to record any more, you simply "set record" and that should "set record" and the MIDI should be null of use because we have no more use of it to record. And if we so happen to want to record it again, we simply "clear record." That way, only the MIDI can over-ride if we let it. But if we don't let it, the auto track defaults to over-ride. The MIDI is less significant than the auto track. Why? Because when all is said and done, we are only going to care about the auto track values. The MIDI controller is good only for recording in this case. And when the MIDI controller has done its recording duties, we are not going to need it anymore for that purpose, and therefore the only important thing left is the auto track. That is why it should be able to over-ride the MIDI controller when you press play.

theguitarplayer commented 9 years ago

My bad I agree with what you are saying but it's not working that way for me. When I press pause and then play the automation track doesn't take control of what it's controlling. Is this a bug?

Wallacoloo commented 9 years ago

Depends on your definition of a bug :P

I think the original authors just didn't explicitly define this behavior. So what you're seeing probably effects everyone.

But yes, I think this warrants a code patch to change the behavior as per above, unless somebody speaks out against the proposed behavior. On Jun 5, 2015 12:10 PM, "theguitarplayer" notifications@github.com wrote:

My bad I agree with what you are saying but it's not working that way for me. When I press pause and then play the automation track doesn't take control of what it's controlling. Is this a bug?

— Reply to this email directly or view it on GitHub https://github.com/LMMS/lmms/issues/2059#issuecomment-109403606.