load and read many video files

dude77's icon

howdy jitter people
I'm a pretty experienced MaxMSP user but totally new to jitter.
I'm trying to program a patch that i can use for live editing of a video clip that is made out of many different .mov files (basically' it means that i'm trying to read and play many different files - one after the other in jit.qt.movie).
my problem is when i read a new file into jit.qt.movie, it takes time and mean while there is black screen in the jit.window.
if i'm trying to load different files into different jit.qt.movie, and then xfade them - they play slowly and abruptly.
i'm working an a macbook pro with 2.5 Ghz processor and 2GB of RAM.
the total size of my .mov files is about 300MB.

my question is how can i "preload" the files and trigger(read and play) them instantly with no latency? (like you do with the sfplay~ in MSP).
does it have something to do with the "loadram" message? (the reference doesn't say much about that).

please advise
thanx

Luke Woodbury's icon

Having a jit.qt.mov object for each movie and reading the movies in with a loadbang should work and 300MB is not too bad, though you want to be using the right codec, nothing too processor intensive (I use photoJPG mostly). There's a lovely example of using poly~ for this sort of situation in your examples folder: Max5/examples/jitter-examples/video/quicktime/PolyMovie

Christopher Dobrian's icon
Max Patch
Copy patch and select New From Clipboard in Max.

One thing that slows Jitter down is playing multiple movies simultaneously, so you probably want to manage the playback of the different jit.qt.movie objects so that you're only playing them when you need to do so. Note that the default setting of jit.qt.movie's 'autostart' attribute is 1 (on), so as soon as you read a movie into the object, it begins to play. I suggest setting each object's 'autostart' attribute to 0 initially -- [jit.qt.movie @autostart 0] -- then using the start and stop message to the ones you want to start and stop (presumably starting the one you are about to start banging with a qmetro object, and stopping the previous one that you were banging), possibly preceded by a time message if you want to set its starting time.

dude77's icon

thanx a lot!
the poly~ works really well, except for one thing:
when i change the video number with the "radiogroup" or send a number to the "jit.qt.movie"' all is fine. but whenever i use a bang generated by audio peaks to trigger a new video number, the size gets updated too late so that every new video gets the size of the previous one and so it's looppoints get messed up.
i've tried all kinds of weird delays but nothing seems to work...????
here's the patch (you won't be able notice this problem unless you actually send in audio but perhaps the problem is visual and it's only me that can't see it.. usually the difference is sown in the red numer boxs) :

[mod - removed uncompressed patch]

Luke Woodbury's icon

Use 'Copy Compressed' when you are pasting a patch into the forum, I can't seem to open what you've pasted.

dude77's icon
Max Patch
Copy patch and select New From Clipboard in Max.
Luke Woodbury's icon

What exactly are you trying to do with looppoints? Are you changing them on the fly?

ricopoorchico's icon

Changing looppoints on the fly is EXACTLY what I want to do, and I'd like to have a videobank that uses something like Andrew Bensons' poly~ module (VPS4). Basically, marry the rslider controls of the "Max5/examples/jitter-examples/video/quicktime/PolyMovie" tutorial with the VPS4.

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

I am having a heck of a time trying to figure out why my patch bangs out the durations of all my quicktimes upon initialization, but gets stuck on the duration length of the last clip loaded. (watch the duration number-box when you load a .mov folder to see what I mean.)

`