jit.video~ backwards loop playback (negative rate) doesn't loop at start point

stephenhandley's icon

I'm creating a jit.movie~ object as follows:

jit.movie~ @moviefile crashtest.mov @looppoints 500 1500 @rate -0.5 @loop 1

I was expecting the movie to play backwards in a loop at half speed and when it reaches the beginning of the loop at 500ms, to jump to 1500ms. Instead of that, the movie plays through the start loop point at 500ms and only goes to 1500ms after it reaches 0ms. This seems inconsistent given that if the rate is positive i.e 0.5, playback jumps back to 500ms after reaching 1500ms. If I enable palindromic looping, then playback does what I expect and bounces between the two loop points regardless of whether the speed is negative or positive. I've attached a patch demonstrating what I'm seeing. (Max 8.5.5, MacOS 13.2)

{
    "version" : "Version 8.5.5 (9579d1d54fe) (arm64 mac)",
    "platform" : "mac",
    "arch" : "arm64",
    "osversion" : "Mac OS X Version 13.2 (Build 22D49) arm64",
    "samplerate" : 48000,
    "iovs" : 512,
    "sigvs" : 64,
    "scheduler_in_audio_interrupt" : "off",
    "audio_drivername" : "Core Audio",
    "audio_driver_subname" : "",
    "license" : "permanent full",
    "machine_id" : "f6dddeaf61ae5528fa6555faa2b40549",
    "eventinterval" : 2,
    "schedinterval" : 1.0,
    "overdrive" : "on",
    "pollthrottle" : 40,
    "queuethrottle" : 100,
    "sysqelemthrottle" : 1000,
    "refreshrate" : 33.333332061767578,
    "schedslop" : 25.0,
    "eventprobing" : 0,
    "mixerparallel" : "off",
    "mixercrossfade" : 0,
    "mixerlatency" : 30.0,
    "mixerramptime" : 10.0,
    "videoengine" : "avf",
    "gfxengine" : "glcore",
    "packages" :     {
        "Auzzie" : "2.0.1",
        "BEAP" : "1.0.4",
        "CNMAT Externals" : "1.0.5",
        "gl3" : "0.3.3",
        "hap" : "1.0.6",
        "jit.mo" : "1.1.6",
        "Jitter Tools" : "1.0.8",
        "max-mxj" : "8.2.0",
        "maxforlive-elements" : "1.0.8",
        "Mira" : "1.2.1",
        "monome" : "1.0.1",
        "Node for Max" : "2.0.4",
        "RNBO" : "1.1.2",
        "RNBO Guitar Pedals" : "1.0.0",
        "VIDDLL" : "1.2.7",
        "Vizzie" : "2.2.2"
    }

}
jit.movie~.example.maxpat
Max Patch

Source Audio's icon

I remember seeing that in older max versions too.
if you play backward with audio turned off, it loops correctly.
try to use texture output, that seems to fix it.

stephenhandley's icon

Ah interesting, yeah can reproduce the correct looping when audio is off. Just tried creating the jit.movie~ like this but I'm still seeing the looping issue

jit.movie~ @moviefile crashtest.mov @output_texture 1
Source Audio's icon

it works here

Max Patch
Copy patch and select New From Clipboard in Max.

Rob Ramirez's icon

I can reproduce the issue with negative rate and loop 1, we'll get it ticketed. Thanks for the report.

stephenhandley's icon

Awesome, thanks Rob!