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

    May 17 2006 | 6:58 am
    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!

    • May 17 2006 | 9:12 am
      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.
      Append the new data from disk to the movie you are playing with the 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
      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 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
    • May 17 2006 | 5:10 pm
      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.
    • May 17 2006 | 5:15 pm
      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.
    • May 17 2006 | 5:54 pm
      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....
    • May 17 2006 | 6:20 pm
      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.
    • May 17 2006 | 7:16 pm
      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!!!!
      :-) :-) :-) :-)
    • May 17 2006 | 7:46 pm
    • May 17 2006 | 7:57 pm
      On May 17, 2006, at 2:46 PM, vade wrote:
      > 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?
    • May 17 2006 | 8:07 pm
      On May 17, 2006, at 2:46 PM, vade wrote:
      > 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!!!!"
      :-) :-) :-) :-)
    • May 17 2006 | 9:00 pm
      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~