ModPlug Central

OpenMPT => Help and Questions => Topic started by: 6xes on July 02, 2023, 03:41:58

Title: (Feature request) for instant pattern seeking within Openmpt
Post by: 6xes on July 02, 2023, 03:41:58
Pattern seeking partially exists in Openmpt.... only that it is a drag and drop affair, which would be better suited to a assignment of either a midi-press or keyboard button.

pattern seeking is when a pattern is playing.... and you wish to jump into another pattern but have the pattern not resync back to 00, rather it continues from the last numbering cycle..
ie... a pattern having 128 lines and decide to press the change to a new pattern at line 32... the new pattern instantly starts at line 33 thus remaining in sync
it would also be nice to seek to the closest beat or every 4th beat etc... but instantaneously changing patterns is very useful

this currently works with songs... by having the pattern list menu on the lefthand side and dragging and dropping a numbered pattern onto the highlighted "playing" pattern on the main in the patterns Tab(the change is instant)

it would be nice if we could have a method of scrolling through the pattern list of a project and a simple keypress or midi press would execute the same action, instead of it resetting the pattern line to zero
Title: Re: (Feature request) for instant pattern seeking within Openmpt
Post by: Saga Musix on July 02, 2023, 11:34:46
Just to confirm, what you are looking for is a variant of the Previous Order / Next Order that would keep the play cursor on the currently played row when using it during playback?
Title: Re: (Feature request) for instant pattern seeking within Openmpt
Post by: 6xes on July 02, 2023, 13:05:16
yes... thats correct..
having the choice of the patterns to sync next, would be a nice little means of toying around with all the patterns in realtime
Title: Re: (Feature request) for instant pattern seeking within Openmpt
Post by: cTrix on August 29, 2023, 08:47:17
Quote from: 6xes on July 02, 2023, 13:05:16yes... thats correct..
having the choice of the patterns to sync next, would be a nice little means of toying around with all the patterns in realtime

I'd imagine 3 modes if this feature existed: 

- Mode 1 : Pattern changes but keeps the playhead and timing position (like ProTracker)
- Mode 2 : Pattern changes at multiple of a tick... keeps play head position
- Mode 3 : Cues up the next pattern and plays it after the current pattern has ended

It comes down to how to implement it without adding any clutter to the interface (which is quite perfect at the moment).  I would certainly use this feature too, especially when pattern ordering tracks.

I guess this really belongs in "Feature Requests" too :-o  (sorry Saga!)
Title: Re: (Feature request) for instant pattern seeking within Openmpt
Post by: Saga Musix on September 08, 2023, 16:56:07
I'm currently having a stab at this. I think it makes sense to implement this feature in two places:

First off, as an extension of the order queueing mechanism in the order list (which is "mode 3" in cTrix' post, so that already exists). The current mechanism would be extended to have four queue modes:
In all four cases, playback would continue where it left off in the previously played pattern, e.g. transitioning at the end of the first measure of a pattern would start playing the second measure of the new pattern. In additition to the current queueing mechanism that uses middle-clicking or ctrl-clicking an order item (which is supported by more modifier keys to choose between the four modes), there would also be four new keyboard shortcuts to make the feature more practical.

Second, as mentioned above, it probably makes sense to have new, separate Next Order / Previous Order shortcuts. Right now only one mode is implemented (transition at end of row, so kinda like ProTracker), but maybe it would make sense to add the three other modes here as well. What do you think?
Title: Re: (Feature request) for instant pattern seeking within Openmpt
Post by: Saga Musix on September 09, 2023, 19:10:24
Okay, as of revision: 19645 (OpenMPT 1.32.05.00), I have something for you to try. Test builds of this version (or a later one) will be available from https://builds.openmpt.org/ in a few hours. Behaviours are subject to change if we reach the conclusion that the implemented behaviour does not match the request.

So, as mentioned, the first change is in the order list: It is now possible to queue the next pattern to not only play when the current pattern is finished, but also when the current measure, beat or row is finished. This can be done through the order list context menu, four new keyboard shortcuts (combinations of Shift+Alt+Q), or as before by middle-clicking or ctrl-left-clicking (using the same modifier combinations of Shift and Alt). (The combinations are: Pattern end: No modifier, Measure end: Shift, Beat end: Alt, Row end: Shift+Alt)

Apart from that, in addition to the "Previous Order" and "Next Order" shortcuts, there are now also shortcuts that can delay the pattern transition until the next measure, beat or row is reached. When the song isn't playing, they behave like the normal "Previous Order" and "Next Order" shortcuts. I know the names for those shortcuts are currently not readable in the keyboard setup because they are truncated, this will hopefully be fixed / worked around soon. For the reference, the shortcuts are ordered like this: measure, beat, row.

As a bonus fix, the "Previous Order" and "Next Order" shortcuts (as well as the newly added variations of that) now also work when the pattern editor isn't focussed. This should have always been possible because they were marked as global shortcuts, but they were only implemented in the pattern editor.

Feedback from either of you two would be highly appreciated.
Title: Re: (Feature request) for instant pattern seeking within Openmpt
Post by: 6xes on September 13, 2023, 04:16:50
ill check it out & test things... and get back to you
thanks for implementing this feature!!
awesome!
Title: Re: (Feature request) for instant pattern seeking within Openmpt
Post by: 6xes on September 13, 2023, 09:29:11
hi, Saga musix
the seeking aspect works well!!

having the seeking modes act globally(with sequences) would be a welcome addition, an indicator on the UI somewhere letting us know which seeking mode we are in would also be helpful

as i was using it... the thought of being able to decouple the playback, to then set the(blue range)start point & end point and then decide to sync, but also having the ability to save the blue-range as a sequence...
the sequences of course just acting as a defined loop

but i found the end point would always remain at the point when you held down the shift-button
if a full decoupling of the unlock-playback so we can make the selection/s of patterns...whilst it is decoupled the patterns continue as per usual... only when we execute a seek the blue selected patterns come into play from start point to end point

following the logical steps.. its all going to lead to a performance sequencer *smiles rather than a linear one
love to get your thoughts on other additional features...and whether you would go down that path?

personally i work with performance based workflows & midi controllers... being able to implement the library of songs that openMPT can play, and create quick sequences for looping purposes opens up a whole lot of possibilities!