Beware, long post ahead! I just want to throw this idea out there, raise some discussion maybe: Is the current implementation of time signature really purposeful?
It doesn't allow the use of different time signatures in a song very conveniently: you basically have to find a time signature that "matches", ie. is divisible with, all the time signatures you want to use - this is mostly because changing time signatures mid-song is very awkward. And if you want to do fancy rhythmic things where you use overlapping different time signatures - well, things just get ugly. Also, automating tempo is already a cause of headache, automating the global time sig just increases that headache by several orders of magnitude... I think we should rather move to a model, where instead of one global time signature we could just allow setting a time signature for each pattern individually - you could mix in 5/8 patterns at the same time with 3/9 patterns, at the same time. This would be implemented for both melodic and beat patterns. This would also pave the way for adding other neat timing-based effects such as shuffle. Basically, we'd keep measuring the length of pattern in tacts, but additionally, each pattern would have a new "time sig" property, and the "real" length in ticks (to those who don't know: ticks are the internal "smallest unit of time" when it comes to notes, one tick is equivalent to a 192th note) would be acquired by multiplying the number of tacts with the pattern's own time sig. Backwards compatibility would be kept by converting all old patterns into new signatured patterns by applying the old global sig to them. And since the underlying tick system would remain unchanged, the required changes wouldn't have to go all that deep even. This would allow cleaner implementations in many cases, I seem to notice that the current time sig system causes many issues in many parts of the software... even now there are multiple open issues all related to time sig in one way or another. I believe my proposal would allow for cleaner implementations. Basically, when you open a piano roll, it would display the pattern in the time signature of the pattern. There'd be a time signature widget in the piano roll, another in automation editor and another in bb-editor. The song editor's global time grid could be entirely beat-based, or it could be adjustable as a function of time signature - so there could still be a "global time sig" widget, but the difference would be that adjusting it wouldn't change any patterns, it would only change the "grid" while keeping the position & length of patterns intact. Also the global time sig could be used as a hint for newly created patterns, they could take their time sig from the global widget. I think all in all this could be a big improvement in the way LMMS handles time signatures. What do you think? ------------------------------------------------------------------------------ Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk _______________________________________________ LMMS-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/lmms-devel
