Delay CHOP with a different delay value for each channel

Hey everyone. I’m still new to Touch Designer, and after eating a lot of tutorials and workshops, I’m trying to play with new stuff.

I’m trying to recreate a video effect where each row of an image is delayed a bit more than the previous one, creating a weird effect of slice / delay. So far I managed to create what I want, but in a really easy manner, and only by “manually” cutting 20 slices from the video input (see V1)

Test-video-delay-V1.toe (5.85 KB)

Now I think there is a better way to do that, playing with a TopToSop, a delay, and a SopToTop (see V2). The problem is that I need to give a different delay to each channel (or group of 4 channels: rgba). I created a table filled from a python script to create all the different delay, but I can’t find the way to feed the delay with this table.

Test-video-delay-V2.toe (25.7 KB)

From the Delay CHOP page, I read

But I didn’t managed to make things work…
I tried to use python expression also, but still no luck…
I know I’m missing something!
Any idea? Thanks in advance for your help!

hey kefon,

This technique is called slit-scan. Personally, I think one of the easiest ways to approach this kind of effect is to use the time-machine TOP. Take a look here and see if it’s close to what you’re experimenting with:
base_slit_scan.tox (622 Bytes)

I’d recommend against using Python here - it’s far too slow for this kind of application.

Thanks a lot for your quick answer! You rock!
This is simple and effective.
Never tried TimeMachine TOP before, pretty interesting!

But I’m still wondering about the Delay CHOP, and how you can fill it with a table to get a different delay for every channel as mentionned in the description page. This can be handy in the future ! Any idea on how to achieve that?

Thank again for the help!

The docs only have a tscript example
The python equivalent to $C is me.chanIndex

So to get a delay per channel from a table called delaysTable where each row has delayamount you would use smth like
op(“delaysTable”)[me.chanIndex,0]

Thanks Achim, doc amended to include me.chanIndex; snippet added.

Thanks Matthew re Time Machine TOP. Generally, that lets you have a separate delay per pixel.