Someone here (Jhno?) once gave a nice explanation of how 2dwave~ works. It made perfect sense at the time, but I’m unable to find it now.
I’m trying to tie up some visuals with a 2dwave~ based buffer mangler, and could use that explanation again.
What I’m after is some kind of Jitter equivalent to 2dwave~ ie. something that could play a QT movie in the way 2dwave~ does for audio. Is this possible, or am I barking up entirely the wrong tree here ?
2dwave~ works by reference to a buffer~, i.e. all the samples (vs.
time) loaded into RAM. Jit.qt.movie supports the ‘loadram’ message.
You can index the movie with the ‘frame’ message (and set @autostart
0). Warning: loading video into RAM will eat up a lot of memory…
The 2d effect is quite simple, similar to a modulo process. If the
movie has 128 frames, and you divide it into 16 ‘rows’, then each row
has 128/16 = 8 frames. The Y input should choose which row to play by
scaling the input phasor (0..1) to the number of rows (0..15) x the
row size (8). The X input then should choose which frame within the
row is played, by scaling the input phasor (0..1) to the row size
(0..8). The frame to play is therefore given by:
(y * numrows * rowsize) + (x * rowsize)
Of course, for Jitter, the phasors can be simulated by using a counter.
The problem is that, while 2d.wave~ can interpolate between samples,
the jit.qt.movie can only select frames by integer index. You could
simulate interpolation by using two jit.qt.movies to select the
rounded down and rounded up integer frames of the floating-point
index, and use the floating-point index modulo 1 to get the blending
factor for a jit.xfade between them.
An interesting possibility would be to use the xray.timecube 
object to index different rows/columns/pixels of the movie at
different rates. This will also allow you to run it in realtime (i.e
constantly updating the source buffer).
On Nov 28, 2008, at 6:19 AM, ROGER CARRUTHERS wrote:
> Someone here (Jhno?) once gave a nice explanation of how 2dwave~
> works. It made perfect sense at the time, but I’m unable to find it
> I’m trying to tie up some visuals with a 2dwave~ based buffer
> mangler, and could use that explanation again.
> What I’m after is some kind of Jitter equivalent to 2dwave~ ie.
> something that could play a QT movie in the way 2dwave~ does for
> audio. Is this possible, or am I barking up entirely the wrong tree
> here ?
Be seeing you
And here’s the results.
(gets more interesting towards the middle)
I used FCP for a minimal amount or pre and post editing – just the keying and a couple of cuts where it didn’t quite work – but otherwise it’s all Max/Jitter.
The audio side of it uses something similar to the patch I posted in this thread: http://www.cycling74.com/forums/index.php?t=msg&goto=175520&rid=925&S=50d5fb4a8eee0ca38dce976bcb6be40b#msg_175520
The video was made by linking the frame order to the phasors driving 2dwave~, pretty much in the way Graham suggested above,
|roger.carruthers wrote on Fri, 28 November 2008 23:19|
|Someone here (Jhno?) once gave a nice explanation of how 2dwave~ works. It made perfect sense at the time, but I’m unable to find it now.|
I was just searching and googling for this myself. I just don’t get my head round how 2dwave~ works and i get the impression that if i was in a bar with a pencil and a napkin someone could explain it to me like i was a 9 year old and it would be obvious, but 2dwave~ has always been about as clear as mud to me. I would really love the idiots guide to what the hell this thing really does. And for the love of all that is holy, if you is gonna use the words "column" or "row" please define what that is since my shoes still have L and R on them. I have no clue if by row or column you mean
etc. & co.
If anyone digs that old message up lemme know. It seems subgoogle.
Forums > MaxMSP