Do you think that Jitter would be able to do this project?

Julia's icon

Hey all.. :)

I'm trying to spec out a real-time video project, and some friends suggested I look into Jitter. The processing seems pretty straightforward, but I have only basic experience with MAX/MSP. If anyone comments on whether this is feasible in Jitter, I'd be really happy.

The project is basically to 'speed up a party in realtime.' So I'll take a surveillance camera looking over a party, speed it up by 5X, and output it to a TV at the party. So for instance, if the camera has been filming for 5 minutes, it would playback in 1 minute. At the end of the minute of fast playback, it would then play the 6 minutes that have elapsed in 1 minute and 12 seconds or so. So it would keep repeating, getting longer and longer.

I've looked through some tutorials, and I see how to speed up playback. But the devil is in the details--so any suggestions would be lovely.

I've tried to break up the project in 5 parts:

1. Video from a surveillance camera is positioned over a crowded party. The camera uses a video RCA out (which I'm still trying to figure out how to connect to MAX... I think I need to borrow my friend's G5 with the vid card). But let's say I use an iSight to make it easy

2. I'd want to capture all the footage from the party (say 4 hours worth). so, I imagine that I take incoming footage and put it in a buffer. Let's call it the 'capture buffer.' (Does Jitter work like this?)

3. Once the footage has begun recording, I'd want to copy the capture buffer to another 'playback buffer' , which is sent to playback, sped up by 5 times. (I saw the tutorial on speeding up video, but it seems like I have to save the video as a file first. is that right?)

4. At the end of the playback buffer I'd want to copy the capture buffer again (which would now be longer, having captured more footage during the playback) and send it to the playback buffer. So, the footage would be replayed again, at 5 times speed, but go a little bit longer.

5. Ideally this repetitive, sped up footage of the party would be outputted to a TV. That way people can watch a sped up version of the party they are at on TV. :)

Again, any suggestions or references would be super. Thank you!

Mattijs's icon

Hi Julia,

I am pretty sure this is possible in Jitter. I'd say:

Use the jit.qt.grab object to capture video from your video digitizer hardware and save it to disk once in a while.

-or- (if this results in gaps in the captured video)

Route the jit.qt.grab object's video output into two alternating jit.qt.record objects and let these objects write to disk once in a while.

then

Append the new data from disk to the movie you are playing with the jit.qt.movie object. I didn't try this before but I assume it is possible to append the new data as a quicktime reference, which means it wouldn't be necessary to actually move data on your disk (meaning this shouldn't be a time-consuming operation).

Speeding up a movie is a basic functionality of jit.qt.movie.

360 x 288 photo-jpeg compression should be fine if you want to send the output to a tv, which makes recording 4 hours of video reasonable.

Have a look at the help files of these objects. You will probably find working examples of the 5 parts you defined. Especially the 'p editing' in the help file of jit.qt.movie will probably be interesting for you.

We use an ADVC-100 video digitizer with the jit.qt.grab object to get RCA (composite) video into the computer. I recommend this hardware (when you are working on mac, never tested on pc), especially if audio quality is not your primary concern.

Outputting the video to a tv would probably require a scan converter to convert your VGA signal to composite video. I don't like these things though, I always have the feeling this should be possible to do in an easy way and certainly shouldn't have to be so expensive. Anyone has a hint here?

Good luck!
Mattijs

Andrew Benson's icon

Hi Julia,
Basically, you are trying to do real-time time-lapse photography. You'll
really only need to use jit.qt.grab and jit.matrixset if your computer
has enough RAM. Just set a metro to grab a frame every ~second or
whatever, and write it into the jit.matrixset. The jit.matrixset help
patch should get you there.

If your computer has S-video out, that can be sent to TV with minimal
effort and hardware.

Good luck and Happy Patching
Andrew B.

Wesley Smith's icon

FWIW,
I did something like this a while ago using a 3d buffer coupled with
jit.xfade. I would accumulate every N frames into a 3dbuffer and
xfade between successive frames, creating a sped up look to the live
video.

wes

Gregory Taylor's icon

On May 17, 2006, at 12:15 PM, Wesley Smith wrote:

> FWIW,
> I did something like this a while ago using a 3d buffer coupled with
> jit.xfade. I would accumulate every N frames into a 3dbuffer and
> xfade between successive frames, creating a sped up look to the live
> video.

Crossfades? Phooey! For that real Davey and Goliath/Wallace
and Grommit/Ray Harryhausen/Gumby/animated desktop toy
fun, here's something bone-simple from workshopland.

The metamessage here? There is almost always more than one
way to achieve a given end. Some are elegant and erudite and
require a certain level of propellorheadedness [a la matrix
demiurges Andrew and Wesley], and um... some are not.

I think it's a lot more interesting to slow humans down than to
speed them up. But I also found The 24-hour stretch of
Beethoven's Ninth to be a salutary experience as well
[a 20 minute subdominant? now *that's* what I call leaning
into something]. At any rate, it's not your usual throbbing
donut or playing "pin the sample on the donkey I see on
the webcam in the gallery," request, so let's all sing wo-hee-la
and share....

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

Wesley Smith's icon

Well, I was doing a cubic pass from [0, 1] on the crossfade so it
wasn't so linear looking and muddy grey all the time. Most of the
fade was spent near the actual frames. The xfade was just to provide
that oh so subtle transition.

Actually, now that I think about more, the patch had a dual
purpose...slowmo and speedup. I think the xfade only happened on the
slowmo and I just showed raw frame on the speed up.

wes

Gregory Taylor's icon

Ah. Now *that's* interesting. Perhaps I should invent a
fake newbie identity and post fake patch grovels designed
to flood the newsgroup with stuff I might find more
personally interesting....

Hi! I have an end-of-term project where I need to
combine slitscanning and very long crossfades.
Can someone send me a patch that does this?
And can you make it so that I can hide the menu
bar on your patch? Thanks!!!!

:-) :-) :-) :-)

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

Gregory Taylor's icon

On May 17, 2006, at 2:46 PM, vade wrote:

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

> max v2;
>

.....

Now who's gonna clean up all the coffee that squirted out
my nose because I was laughing so hard and got all over
this new ish of EQ?

Gregory Taylor's icon

On May 17, 2006, at 2:46 PM, vade wrote:

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

> max v2;
>

...

and you forgot the epilepsy disclaimer.

"Hi! I've got an end-of-term project where I'd
like to simulate really hokey 70's laser light
shows. Can you send me a patch? Thanks!!!!"

:-) :-) :-) :-)

Julia's icon

I've tried using forums before, but this is amazingly helpful. :> I've had friends use Jitter and modify existing patches, but it is really intimidating to try to use a new program for a very specific effect, when you aren't even sure if it will be useful. So thanks for the encouraging suggestions!!

I'll try to post my progress-- I think I have a good sense of where to go now, but I might toss out a few more questions..

I really liked the comment about slowing down Beethoven.. Did it maintain the original pitch? Was it based off of a score or a recording?

I'm interested in how changing time changes the way we interperet emotions. Have you ever seen the movie Koyanisquatsi? Gorgeous.

Thanks again~