Playing from custom position jumps to wrong pattern

  1. Open new song

  2. Create a new pattern. Now you have two 64 bit patterns and are standing on pattern 2

  3. In scripting terminal enter: renoise.song().transport.playback_pos = renoise.SongPos(1,60)

  4. Then enter: renoise.song().transport:start(2)

  5. Playback starts at end of pattern 1 and proceeds to start of pattern 2 as expected.

  6. Press space to stop.

  7. Repeat steps 3 and 4

  8. Now playback starts at end of pattern 1 but immediately jumps to end of pattern 2.

There is more weirdness when just trying to set and play a custom position like this, but I show one example. I tried this in version 2 without problem.

I use this in a tool to be able to play from custom bookmark.

I just realized that this was only because I had jack sync enabled.

Sorry for the late reply.

Already thought it’s a problem with jack sync, but double-checked this. Can also happen in specific scenarios without Jack. Very very unlikely to happen, but can happen.

In order to make it always work we’ll need to apply the relocation and playback state change in one go, “atomically”. To do so and also to make such things easier from within Lua I’ve added a

-- start playing a the given renoise.SongPos (sequence pos and line)
renoise.song().transport:start_at(song_pos)

to the API now.

Sorry for the late reply.

Already thought it’s a problem with jack sync, but double-checked this. Can also happen in specific scenarios without Jack. Very very unlikely to happen, but can happen.

In order to make it always work we’ll need to apply the relocation and playback state change in one go, “atomically”. To do so and also to make such things easier from within Lua I’ve added a

-- start playing a the given renoise.SongPos (sequence pos and line)
renoise.song().transport:start_at(song_pos)

to the API now.

Cool. Definitely going into the next xStream update :slight_smile: