OP-XY "Skip parameter lock" step component NOT working with parameter smoothing, right?

Howdy.

Summary: I’m trying to figure out whether the “Skip Parameter Lock” step component is actually compatible with parameter-lock smoothing on the XY, or if I’m just misunderstanding how it works. With smoothing turned up to the maximum, I set up a simple bar with two parameter locks (e.g., Timbre = 20 on step 3 and Timbre = 80 on step 9). Smoothing correctly interpolates between those values, but as soon as I add “Skip Parameter Lock” on those steps (e.g., “use every 2nd parameter lock”) to make the sweep happen only every other bar, the behavior becomes inconsistent: the sweep still partially happens, and the parameter abruptly drops back to its default (0) on the “skipped” passes. The interpolation looks like it’s precomputed and then “punched out” where skips are applied. In practice, this leads to audible jumps (e.g., 70 → 0 → 80) instead of a clean “no sweep / sweep / no sweep / sweep” pattern. Using skip on all steps litters the bar with components where I never explicitly created locks in the first place, and makes it harder to work with. This feels unintuitive to me, but maybe I’m missing something.

Consider the following bar with 16 steps and no parameters:

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

Now pick a synth (say, “epiano”) and a synth parameter to work with (say, Timbre). Set the parameter to a default value of 0 first. We’re going to put a note on step #3 and lock Timbre to 20, then another note at step #9 and lock Timbre to 80 there:

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
20 80

Keep an eye on Timbre and play that track with parameter smoothing disabled in the Bar page. The parameter will, as expected, suddenly jump up from its default value of 0 to 20 when the playhead hits step #3, then again to 80 at step #9:

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
00 00 20 20 20 20 20 20 80 80 80 80 80 80 80 80

Now go to the Bar page and set parameter smoothing to its maximum (a diagonal line, or ramp). The Timbre parameter will, as expected, smoothly ramp up to 20, then ramp up to 80, where it stays:

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
00 10 20 30 40 50 60 70 80 80 80 80 80 80 80 80

So far, so good. From a song perspective, say I’m on scene #1. This track has just one bar, so it repeats every 16 steps. Meanwhile, I have another track that I recorded live, which has four bars, runs at half speed, and is essentially un-quantized data. I like it the way it is and don’t want to touch it—definitely not split it over several patterns.

What I do want is for that parameter sweep above to run only once every two bars. In other words, the XY should go through 16 steps without the sweep once, then I want the sweep on the next 16 steps. Then back to no sweep, etc. I can’t do it with a duplicate pattern because of the other track, which needs to play at the same time, in the same scene.

You’d think this would be the perfect job for the “Skip Parameter Lock” step component. My expectation was that the XY would look ahead of the playhead, check whether there’s a parameter lock later in the track, and calculate the interpolation up to that parameter lock, then do the same for the next one. If there’s no parameter lock ahead because it is about to be skipped, there’s nothing to smooth.

With that in mind, I placed a “Skip Parameter Lock” component on steps #3 and #9, setting it to “use every 2nd parameter lock”, hoping the parameter locks would “disappear” for one pass through the bar and “reappear” on the next.

In other words, I want to hear this bar (the notes on step #3 and #9 play with Timbre at 0):

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

…followed by this bar (the notes on step #3 and #9 play with Timbre smoothing):

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
00 10 20 30 40 50 60 70 80 80 80 80 80 80 80 80

But that’s not what happens.

I hear this bar instead (notice the 0 on #3 and #9):

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
00 10 00 30 40 50 60 70 00 80 80 80 80 80 80 80
?? ??

Followed by this bar (as expected):

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
00 10 20 30 40 50 60 70 80 80 80 80 80 80 80 80

Smoothing is still happening when the parameter lock is supposed to be skipped, but the parameter drops back to its default value of 0 at step #3 and step #9 (a half-step before to be more accurate). You can’t miss that abrupt change when it jumps from 70 down to 0 back to 80 for example (assuming your notes are long enough).

It’s as if the sweep is “baked in” first and then the parameter locks that should be skipped are plucked out of that series. Placing the same “skip parameter lock” component on all steps seems to confirm that theory: you end up having to skip every step before 3, every step in the sweep, and every step after 9 — potentially across all 64 steps if you’re using multiple bars.

On top of that, every step now has a component set, which makes it much harder to spot any other step components you might have placed on that track. And conceptually, why should I have to skip parameter locks that I never explicitly created? Those interpolated values aren’t mine — they’re generated by the XY in between my actual locks.

I might reach out to TE, but wanted to double-check with the community first.

Thanks.

UPDATE: I changed from every 4th to every 2nd for clarity and reproducibility. Nevertheless, I have created this project multiple times while writing this, and sometimes step #3 would go back to 0 but not step #9, sometimes the opposite, sometimes both. Sometimes placing that step component on all steps would solve the problem, sometimes not.

1 Like

It does work you just need to put the skip parameter lock on all trigs between the two steps you set the fix point on.

No, this won’t work, because interpolation would still happen before and resonate after your sweep. You probably tried on step 1 to step 16 on one bar with short notes. Put a sweet between #3 and #9 on the first bar of 4, and you will need to litter that skip component manually on ALL 64 steps. Having to skip parameter locks that I never explicitly created seems… questionable. Hence my question.

1 Like

It doesn’t work. It’s a bug TE support confirmed months ago, it’s not user error. (August 2025)

Raise a ticket it’s essential’ as a feature for me and if more of us send tickets about it they could fix that.

Here’s my conv with support.

Hi there,
I guess I found a bug. I was sequencing my digitone with the op xy and doing some midi cc automation. Then I applied a skip p.lock step component and all worked fine till I applied slewing on the midi cc. Basically when you apply slewing on automations skip p.lock doesn’t work anymore. I have even tried to make the automation happen 1 every 6 bar to give the sequencer the time to get back to 0 but nothing works. I’ve also tried with little increments like 0—>5 to see if it skips the automation but that didn’t work neither.

Still the skip p.locks works as soon as I don’t apply slew.

Are you able to replicate this scenario? Is it something that can be fixed with a fw update?

thank you for contacting us!

thank you for reporting this to us! we can indeed reproduce this issue!
we have now forwarded this issue to our dev team, they will look into it and try to find a solution as soon as possible.

we’ll get back to you in case we need more details. meanwhile, we really appreciate your cooperation, which helps us to improve!

don’t hesitate to contact us if needed! meanwhile, have a nice day.

kindly,
teenage engineering support

1 Like

Thanks, yes, I reported this behavior to TE earlier this week; I’ve been sending them quite a few emails since I got the XY. :slightly_smiling_face:

You mentioned this is a bug TE already confirmed; do you remember where that was communicated so I can look it up next time? I wasn’t able to find anything about it when I wrote this.

Nowhere.

They Just confirmed by email when I reported as you can read in my previous post where I attached my conversation with the support