Real time automation - improvements

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

I'm not sure if this is quite the right place to post this. I think there's a form as well - but I can't find the details of that right now.

I'm exploring with automation. I'm very new to this. However, it seems needlessly difficult. It may not be easy in other tools, such as Logic or Reaper, but it is nevertheless easier in those tools.

In particular it should be possible to do at least global automation in real time.

As I type this I was listening to Beethoven's Violin Sonata No 5, and trying to adjust the tempo. I can vary the tempo in the global automation editor - in real time - but I want to get the trajectory of the variations into that automation editor. As far as I can see, the automation editor doesn't follow the music. I should be able to fix points to modify the tempo dynamically, and also see where the points are in relation to the bars in the original track (in the Song Editor). I know that the numbering of the Song Editor and the Global Automation editor may be different, but they should actually be the same as I've aligned them.

I need to get control of this. I've established that I can do tempo variations, but I need to get the trajectory for the control recorded, so that it could be tweaked - if necessary - later.

A bit of an update. I've got better control of this, but it's still not good enough.
I found that if I set the magnification factor on the global automation track I can see more bars. However the Beethoven piece has 248 bars without repeats, and if the repeats were unrolled it would have many more. As I "play" the piece I can see the cursor move over the instrument track, but there is no corresponding movement over the automation track. Thus it's not possible to know exactly where the changes should take place.

This has perhaps been though out as an "offline" process, but it would be much better to do it dynamically. This should also be capable of handling very long pieces of music - say at least 1000 bars, though I think that some might actually be even longer than that - with repeats.

Another, but not quite directly related aspect of this is the way the cursor moves along the music track. It moves left to right, and then when it gets to the end of the displayed track it jumps back to the left, and the next section of music is loaded in. This isn't always helpful, as it's not possible to see what's coming along in advance. This doesn't always help with trying to anticipate the automation just before it's needed. It would be helpful if the music/midi tracks could be moved under the cursor, or the wrap around at least had a few bars of look ahead.

A sophistication which I don't expect in LMMS, but which I think is now in Logic, is that it's possible to see a music score moving under the cursor in that package - something which musicians would find helpful.

I'm making more progress - things are getting better - but some things in the package could be improved to make things much easier.
Another refinement to my suggestions which might apply to some parameters, but perhaps particularly to Tempo, is to have a restriction on the range of the parameters, but use a scaling factor so that the user interface shows how the parameter varies with time.

Thus under "normal" circumstances there is probably no point in having tempi set below 30 bpm or above 250 bpm, but the range goes from 0 to 999. Yes - it works - but it is usually ridiculous. So limits could be set either for the whole of the Automation track, or for a selected part of it.

For real time adjustments moving a control point up with the first of the Automation options shifts all the controls to the right up. The next option is slightly better, but the third option, which allows more curvy controls is a bit better again. With that it is possible to get a temporary rise in one parameter which drops down again, and I think it's just possible to do that in real time. Basically though, more consideration needs to be give to this aspect of automation. I suspect that few people have actually tried it to make real time tempo adjustments. If you don't believe that this is tricky, try it!

Actually there are some user adjustments which can help, but they're still not perfect. Firstly, rather than display the time in the top display, the user can switch this to show the bar number and the beat. In other systems, it's possible to have more information shown, if really needed - why not show the bar number and the time into the piece? Sometimes that is useful. Logic for example, allows more feedback by configuring the time/bar etc. window.

Once the bar number is shown it is possible to do a partial real time automation - but there is no other visual indication of which bar is being played - unlike in the tracks in the Song Editor. In the Global Automation Editor, there is no auto scroll when the play head moves beyond the bars shown in the window. This is pretty hopeless. There should be a visual indication of what is being played, and if the play head is about to move out of the window, then there should be an auto scroll, either to shift the patterns under the play head marker, or to switch rapidly back to the left hand end of the window until this situation occurs again.
dave2002-lmms wrote:
Tue Jul 14, 2020 1:50 pm
Another refinement to my suggestions ...
You told me in pm that you are a coder. Take a look at playhead movement, and implement a moving playhead in Automation-editor. Its a know issue, and it has a Feature request-id
https://github.com/LMMS/lmms/issues/2375

As for runtime changes in tempo, that can be done already
https://www.youtube.com/watch?v=sIToz0LIRIM
dave2002-lmms wrote: ↑
Tue Jul 14, 2020 2:50 pm
Another refinement to my suggestions ...
You told me in pm that you are a coder. Take a look at playhead movement, and implement a moving playhead in Automation-editor. Its a know issue, and it has a Feature request-id
https://github.com/LMMS/lmms/issues/2375

As for runtime changes in tempo, that can be done already
https://www.youtube.com/watch?v=sIToz0LIRIM
I have written voluminous amounts of code in the past, but that doesn't mean I'm up to speed on some of the code that gets written today. I will look, but I can't guarantee that I'll understand anything, or be able to do anything in a satisfactory or timely manner. I wish!

Some of the coding methods which are used these days are far worse than anything 20, 30 or even 40 years ago. I can't do much about that.

I have looked at the gitbub link - but it would take more time to see if I could fix anything.

Re the playhead movement issue, does it make a difference whether the piano roll is open or not? I'm not sure from looking at the previous reports. Also, those seem to date from years ago, so little progress in a long while. As I said, I will look .... eventually .... and if it's something simple I might spot how to fix it .... but otherwise not.

Re runtime changes in tempo - yes - I can do that, so agree - but it's doing it blind as there's confusing visual feedback.