Jump To Arbitrary Pattern And Keep Play Position?

With Follow Play enabled, if i Jump To Next Position or Increase Pattern Number, the play position stays constant.
I just wanna jump to any given pattern in this manner, with keybinds or midi maps. Thinking it’s gotta be scriptable at least?

With Pattern Followed enabled how it is going to know which pattern to jump to?

As you have already mentioned this is the way it already works! Keeping you on the same line as you navigate through the patterns in the sequence via any of the possible methods.

Also Right-Click on the Cue/Play Pattern button will instantly jump to that pattern, keeping same position in the pattern.

Or Pattern Follow Off and keyboard shortcut for Play From Edited Sequence (I think the default is R-Ctrl but I have adjusted a fair few of my Play type shortcuts) will jump to the pattern you are in, keeping on the same line.

Play From Edited Sequence is nearly perfect, thanks :)
Better still though, I was hoping I could bind a key or midi button to each pattern (like you can with Seq. Trigger > Trigger XX) and still maintain position. Would be great for live jams.
In light of your info I’m even more certain this could be scripted…

Does Sequence Trigger XX go to first line of pattern? Don’t have a MIDI controller connected to check. To fit in with the rest of Renoise I would agree that this option should probably keep the same line position where possible…

Yeah as far as I can tell the Trigger mapping always cues the triggered pattern. The Follow toggle doesn’t have any effect, could be something else I’m misssing though?

With Kazakore’s tips I worked out a Midi Translator hack for this.
It looks like this:

Ctrl+Q =
Home > Next Pattern > Play From Edited Sequence

Ctrl+W =
Home > Next Pattern > Next Pattern > Play From Edited Sequence

Ctrl+E =
Home > Next Pattern > Next Pattern > Next Pattern > Play From Edited Sequence

This way I can jump around all over the place :)

I’ve not tested with lots of patterns, things might get a bit laggy jumping to say, pattern 99.

So if anyone knows whether this would be possible to script as midi maps / keybinds within Renoise I’d pay ££ for it!

Unfortunately “renoise.song().transport:trigger_sequence(sequence_pos)” always plays from the first line of the pattern (which is the opposite of right-clicking with the mouse.)

I thought I might be able to do something with changing edit position and then playing but doesn’t seem to work.

Couldn’t just edit renoise.song().transport.playback_pos.sequence although it doesn’t claim to be Read Only.

renoise.song().selected_sequence_index = renoise.song().transport.playback_pos.sequence + 5 ; renoise.song().transport:start(1)
Works exactly the same as trigger_sequence above.

renoise.song().transport:start(2) plays from current line but doesn’t seem to take into account Edit position, so always continues playing. It has made me notice there is a slight stutter on this, even though it’s only playing the same pattern from the current position, so maybe the API isn’t quite fast enough to do it smoothly.

If there was a API trigger_sequence that worked the same as right clicking in the sequence it would be easy and it’s weird they are different so may be worth suggesting…

This should work:
local pos = renoise.song().transport.playback_pos
pos.sequence = pos.sequence + 5
renoise.song().transport.playback_pos = pos

It has to be like this because it also allows you to change sequence and line position at the same time and this is the only way to be able to change both positions at the same time.

Ahh I did wonder but it was late and I couldn’t quite think how to only change the sequence and not the line. That works perfectly so sure will make Muckleby happy :)

Big thanks for figuring this out.
I’ve no idea how to use this script info atm, but now seems a good time to get my head round the process!
Cheers for the push :)
Btw, does Vv’s code jump to pattern 5? Or Jump 5 patterns ahead?
I’m thinking the latter?

renoise.song().transport.playback_pos gives you current playback position, which has two entries called “sequence” and “line” (pretty sure you can work out what they relate to.) Even though you can read them separately with renoise.song().transport.playback_pos.sequence (for example) setting just one that way didn’t want to work.

You are creating a variable which is a copy of this object.

Adding a value to .sequence part (this object orientated programming takes a little to get your head around and still does me in a little at times.)

Then returning the whole back to renoise.song().transport.playback_pos which updates the position.

TL/DR it moves you 5 patterns ahead.

You will likely want to be putting in a check for being taken beyond the beginning or end of the sequence when you actually package it with keyboard shortcuts otherwise you will get errors if you try to do so.

thanks kaza, i’ve done a little OOP elsewhere, with your notes that all seems pretty simple.
actually implementing the code was the daunting part, but i’ve got the editor open and Vv’s script is running nicely, so am getting there!
good call on the end check too, I think I will change the script to jump to absolut positions, but it still applies.
Big Ups to both of ya.

Something that might be worth bearing in mind.

Renoise API allow reading and writing to the Song Comments as far as I can remember. This might be a good place to store which sequence number you want the shortcuts to jump to in different songs.

Another option may possibly be using the Pattern Names (although not sure how well that would work as patterns and sequence are different.)

Or store into the section descriptions.

True. Probably the best and most obvious idea yet to be fair. Assuming they are easy to read from the API, which isn’t something I’ve looked at (or do they even really need to be? If you are always jumping to one or another of them…)

Was thinking a jump and loop next section script could be an idea. Realising if you click on the loop rectangle on a section line loops the entire section is what starting getting me thinking that way (although exactly what and how I’d haven’t put much thought into yet.)