Tempo Swing in MPTM

Started by Saga Musix, June 13, 2015, 17:02:36

Previous topic - Next topic

Saga Musix

I've implemented tempo swing for modern tempo mode in the MPTM format. This means that you can now create swinging/shuffled patterns without having to resort to modifying the BPM, which is something that many plugins don't like.

Tempo Swing works by configuring how much each row contributes to a beat and can be configured in the Song Properties (global) or Pattern Properties (per pattern). It works by increasing or decreasing the length of each tick as required. The duration of all rows always adds up to the original duration of a beat, to keep the original promise that the tempo you specify in modern tempo mode always directly translates to real BPM - no exceptions.

Anyway, I still think that the usability of the tempo swing configuration dialog is sub-par, so I'd like to get some feedback from brave testers. How do you get along using the dialog? What could be improved?
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Diamond

Excellent, I shall definitely test.  I had thought about requesting this feature, but I wasn't sure if you would be interested since it can be done with note delays.

Diamond

This feature seems to work well so far.  Although I do have a request for a minor addition which might simplify it's usage in certain cases.  Feel free to ignore the suggestion if it makes no sense.

Although being able to adjust the rows of the beat individually is useful for more complex requirements, I think it would be useful if there were two additional sliders which would allow you to adjust the percentage of all even or odd rows at the same time/synchronized.  At least for me, this would make adding a basic swing/shuffle much easier.  Also, would it be possible to have changes applied in real-time?  It would be nice if you could hear adjustments to the effect during playback as you move the sliders without having to close the dialog to apply the changes.

.^o

quick tests.
fun for grooving rhythmics.
i think it would be simpler with the swing configuration in the dialog box.
and a possibility of saving presets and/or standard time signatures and arpéggios.

Saga Musix

Quote from: Diamond on June 14, 2015, 09:28:37
Although being able to adjust the rows of the beat individually is useful for more complex requirements, I think it would be useful if there were two additional sliders which would allow you to adjust the percentage of all even or odd rows at the same time/synchronized.  At least for me, this would make adding a basic swing/shuffle much easier.  Also, would it be possible to have changes applied in real-time?  It would be nice if you could hear adjustments to the effect during playback as you move the sliders without having to close the dialog to apply the changes.
I thought about adding something like that to cover the most-used special cases, even going as far as letting the user lock together pairs of sliders, but I think that would have been an UI nightmare. I could probably add some sort of checkbox to lock every other two rows together, but then again I also quite often use swing where the first two / last two rows are identical which would be "yet another special case". Hence I was looking for ideas how to do exactly these kind of things in a way that actually makes editing for the user easier.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Diamond

Quote from: Saga Musix on June 14, 2015, 13:12:51
I thought about adding something like that to cover the most-used special cases, even going as far as letting the user lock together pairs of sliders, but I think that would have been an UI nightmare. I could probably add some sort of checkbox to lock every other two rows together, but then again I also quite often use swing where the first two / last two rows are identical which would be "yet another special case". Hence I was looking for ideas how to do exactly these kind of things in a way that actually makes editing for the user easier.

I can see what you mean about that potentially becoming a UI nightmare.  The only possibility which occurs to me at the moment is basically what .^o GRAVOS suggested.  I.E. Allowing for the possibility of saving presets and maybe even including some default presets for standard time signatures.

Saga Musix

Quote from: .^o on June 14, 2015, 10:10:58
i think it would be simpler with the swing configuration in the dialog box.
You mean if it was part of the Song Properties / Pattern Properties dialogs? I'm afraid that would be quite complicated to implement since the complete dialog needs to be able to provide any number of dialogs, and the Song Properties dialog is for example quite big - meaning that all the additional sliders would probably not fit on a small display anymore.
However, to make editing easier, I have now implemented live preview (r5137, buildbot will have it in about an hour or so).

Presets might be a good idea, and I will re-think the idea of (optional) "edit groups", i.e. you have two groups of sliders with a user-definable group size. For example, if you set the edit group size to 2, the first two and second two sliders will be moved together, and if you have more rows the next sliders will behave the same. At least it sounds feasible, but we'll see how that turns out.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Diamond

Thanks for the live preview.  This definitely helps.

Diamond

There seems to be a bug in the latest test build where the swing settings are not correctly applied to the song when reopening a previously saved module.  The configuration of the "Tempo Swing Settings" dialog is retained, but the values are not correctly applied to playback until I open the dialog and reapply them.

Saga Musix

Actually they are applied, but due to a stupid typo the length of the swing data was accidentally extended to a whole measure instead of a beat. ::)
Will be fixed in a bit.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Diamond

Ah yes, that would also explain what I am experiencing.

Saga Musix

r5351 (soon on buildbot) adds edit groups to the tempo swing dialog: You specify how many consecutive rows will belong to the same edit group, and then all sliders belonging to the same group will be moved simulatenously. I decided against moving the sliders from other groups at the same time, since it would complicate things. You just need to touch them once so that they all have the same value, anyway.
Currently, there are always two edit groups. Would it make sense to have a configurable amount of edit groups?
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Diamond

This looks interesting and perhaps I am confused about how it works, but can you only select consecutive rows to be locked/synchronized?  So there is no way to lock only even or odd rows?

Diamond

Although it seems that if number of consecutive rows is set to 1, even and odd rows are synchronized.  Useful, but is this intentional?

Diamond

And what is this?  Do I see decimal tempo values?  Excellent!