-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Make automation of time sig more useable #5921
Comments
It's an interesting suggestion, sadly that's one of those enhancements that look visually simple, but in the coding perspective can become a nightmare. The way automation works on LMMS, we only know the value of an automation at a particular time position when we play the song on that position (lots of things happen during the "Play Song" action, one of them being calculating the value of automatable models on a time frame). So for drawing an adapted PianoRoll frame it would require us to calculate all the automation values for the time frame that the current pattern is spanning, so we know where it changes. Another complication is that the automation of the time sig is not restrained to fit the previous time signature: it can change in the space between two intervals, which would result in a PianoRoll frame that is very twisted and not pretty like the one on your example. Yet another complication is that this affects all calculations that involves screen positions (like drawing of notes, dragging notes, drawing detuning info, etcetera). It could become a mess to have to account for sudden changes on the time signature while doing those screen position calculations. One way I could see it happening is maybe creating a concept of PianoRoll regions, where you can have one region from bar 0 to bar 4 that has a time signature and another region from bar 4 to bar 8 with another time signature. User would then have to set them manually. That at least resolves some of the issues I mentioned earlier, but would still be a coding nightmare since ALL drawing methods and others that depends on screen positions would have to now account for those separate regions. It adds lots of moving pieces and is still hard to pull off, with a high possibility of adding bugs. For now the easiest way to deal with that situation is to edit the patterns of each time signature section separately, adjusting the time sig manually so the piano roll is adjusted, and then just copy and paste them into the final pattern in the right position. |
The thing I thought of for this was specially designed automation tracks (that can only be added once) that are designed specifically for time signatures and BPM (which has a similar when working with sample tracks) |
I’m seeing that after the second paragraph there’s stuff that would cause problems even for this method, but it would fix the first one, probably. |
I can also suggest easier to implement alternative: some kind of "note" that ends a bar, like it is done in various trackers. |
I don't think you need to close it, this thread can be a place of discussion of how the feature could be done. I just brought up some difficulties in terms of the coding that came on top of my head so any ideas discussed account for them. It's definitely not an easy feature to implement, but that doesn't mean it's impossible or that people can't come up with less complex alternatives! |
This is very similar to what Ian said, but rather than approaching this from the angle of automation, I think it makes more sense to think of a project using a sequence of time signatures that each last some duration. In other words, instead of having one global time signature and changing it, sections in the song editor have their own local time signatures. Somewhat relevant: skip points (#1175, #709) or the time signature rework mentioned in the old future map (#908). |
Enhancement Summary
Currently LMMS allows to change time sig during song with Automation but effect is displayed only while song plays but not while user edits it.
Justification
e.g. user wants to make a cover of Metallica's "Master of Puppets" or a cover of some Dream Theater song.
Mockup
If time sig changes during song then Piano Roll could look somehow like this:
Sorry for my bad English.
The text was updated successfully, but these errors were encountered: