Forums > Jitter

making a video generator from sound

October 17, 2006 | 1:36 pm

hey, I was just wondering if anyone can please give me a kick start making a video generator. I’m trying to make something pretty simple, that is controlled by an audio signal into a matrix. I’ve started by leeching patches from jitter tutorial 27 to just get a scrolling RGB wave. I’m trying to develop it now, so the audio triggers, for example expansion of a R / G / B shape. How would I go about doing this? is it a case of sending lists to jit.poke? I’m pretty new to the jitter side of things, and it’s all a little overwhelming for me right now.
What I’d love to achieve is something as as advanced as the projection on daito manabe video on the artist’s page…

http://www.synthesisters.com/download/videos/daito_manabe_web.mov

if you havn’t seen it already.
if anyone could please help point me in the right direction I’d be very grateful
thanks
tom


October 17, 2006 | 1:37 pm

oh yeah, and this is what I got so far:

#P window setfont "Fixedwidth Serif" 10.;
#P window linecount 1;
#P newex 148 625 98 1441802 receive~ h_sync;
#P window setfont "Sans Serif" 9.;
#P flonum 710 321 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 578 340 27 196617 *~;
#P newex 453 340 27 196617 *~;
#P number 404 116 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 337 146 32 196617 *~ 3;
#P user ezadc~ 337 100 381 133 0;
#P window setfont "Fixedwidth Serif" 10.;
#P newex 148 447 98 1441802 receive~ h_sync;
#P newex 149 299 98 1441802 receive~ h_sync;
#P message 441 471 32 1441802 0.25;
#P newex 441 449 53 1441802 loadbang;
#P newex 441 567 80 1441802 send~ h_sync;
#P newex 389 639 50 1441802 s reset;
#P newex 389 616 38 1441802 edge~;
#P newex 389 593 43 1441802 ==~ 1.;
#P newex 389 567 50 1441802 change~;
#P newex 441 538 52 1441802 *~ 300.;
#P flonum 441 494 35 10 0 0 0 22 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 441 514 76 1441802 cycle~ 0.25;
#P window setfont "Sans Serif" 9.;
#P message 796 70 33 196617 clear;
#P toggle 723 55 15 0;
#P newex 723 80 52 196617 metro 50;
#P newex 252 550 71 196617 receive~ blue;
#P window setfont "Fixedwidth Serif" 10.;
#P newex 138 602 43 1441802 sig~ 1;
#P newex 252 591 53 1441802 *~ 119.5;
#P newex 252 614 53 1441802 +~ 119.5;
#P newex 138 647 124 1441802 jit.poke~ scope 2 3;
#B color 5;
#P window setfont "Sans Serif" 9.;
#P newex 252 383 78 196617 receive~ green;
#P window setfont "Fixedwidth Serif" 10.;
#P newex 138 424 43 1441802 sig~ 1;
#P newex 252 424 53 1441802 *~ 119.5;
#P newex 252 447 53 1441802 +~ 119.5;
#P newex 138 480 124 1441802 jit.poke~ scope 2 2;
#B color 5;
#P window setfont "Sans Serif" 9.;
#P newex 251 232 68 196617 receive~ red;
#P user jit.pwindow 795 173 220 139 0 1 0 0 1 0;
#P window setfont "Fixedwidth Serif" 10.;
#P message 542 240 26 1441802 500;
#P message 496 240 26 1441802 250;
#P newex 496 218 53 1441802 loadbang;
#P flonum 663 272 35 10 0 0 0 22 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 617 272 35 10 0 0 0 22 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 617 350 68 1441802 send~ blue;
#P newex 493 350 73 1441802 send~ green;
#P newex 402 272 62 1441802 send~ red;
#P newex 617 301 73 1441802 tapout~ 500;
#P newex 493 301 73 1441802 tapout~ 250;
#P newex 493 272 73 1441802 tapin~ 1000;
#P newex 796 114 193 1441802 jit.matrix scope 4 char 320 240;
#P newex 139 273 43 1441802 sig~ 1;
#P newex 251 273 53 1441802 *~ 119.5;
#P newex 251 296 53 1441802 +~ 119.5;
#P newex 139 329 122 1441802 jit.poke~ scope 2 1;
#B color 5;
#P toggle 259 68 15 0;
#P window setfont "Sans Serif" 9.;
#P message 211 92 30 196617 open;
#P message 281 92 37 196617 loop 1;
#N sfplay~ 1 120960 0 ;
#P newobj 259 122 44 196617 sfplay~;
#P newex 402 155 96 196617 receive~ amplitude;
#P connect 26 0 23 0;
#P connect 31 0 28 0;
#P connect 8 0 5 0;
#P connect 46 0 5 1;
#P connect 47 0 23 1;
#P connect 54 0 28 1;
#P connect 22 0 7 0;
#P connect 7 0 6 0;
#P connect 6 0 5 2;
#P connect 27 0 25 0;
#P connect 25 0 24 0;
#P connect 24 0 23 2;
#P connect 32 0 30 0;
#P connect 30 0 29 0;
#P connect 29 0 28 2;
#P connect 4 0 1 0;
#P connect 2 0 1 0;
#P connect 3 0 1 0;
#P connect 48 0 49 0;
#P connect 1 0 49 0;
#P connect 50 0 49 1;
#P fasten 38 0 39 0 446 561 394 561;
#P fasten 39 0 40 0 394 591 394 591;
#P connect 40 0 41 0;
#P connect 41 0 42 0;
#P connect 0 0 13 0;
#P connect 49 0 13 0;
#P connect 44 0 45 0;
#P connect 45 0 37 0;
#P connect 37 0 36 0;
#P connect 36 0 38 0;
#P connect 38 0 43 0;
#P fasten 11 0 51 0 498 327 458 327;
#P fasten 53 0 51 1 715 336 475 336;
#P fasten 52 0 10 0 583 373 446 373 446 268 498 268;
#P fasten 51 0 10 0 458 366 447 366 447 267 498 267;
#P connect 49 0 10 0;
#P fasten 0 0 10 0 407 267 498 267;
#P connect 10 0 11 0;
#P fasten 16 0 11 0 622 294 498 294;
#P connect 11 0 14 0;
#P connect 18 0 19 0;
#P fasten 18 0 20 0 501 238 547 238;
#P fasten 12 0 52 0 622 330 583 330;
#P fasten 19 0 16 0 501 270 622 270;
#P fasten 10 0 12 0 498 294 622 294;
#P fasten 17 0 12 0 668 294 622 294;
#P connect 12 0 15 0;
#P fasten 20 0 17 0 547 270 668 270;
#P connect 34 0 33 0;
#P connect 35 0 9 0;
#P fasten 33 0 9 0 728 101 801 101;
#P connect 9 0 21 0;
#P window clipboard copycount 55;


October 17, 2006 | 2:25 pm

I recommend having a look at my Recipes:

http://cycling74.com/story/2006/2/6/114353/4118
http://cycling74.com/story/2006/2/14/161736/108

http://cycling74.com/story/2006/2/17/153427/406

There are a number of audio-driven approaches to video in there. Maybe
that will spark some ideas.

Andrew B.


October 17, 2006 | 11:47 pm

wow… cool, never saw them… a LOT to get my head around! Scene process is a thing of beauty… how sdhould I go about making react to an audio source? Is there a way to manually alter all the parameters?
thanks
t


October 18, 2006 | 12:20 am


October 18, 2006 | 1:03 am


October 18, 2006 | 1:51 am

thank you very much jean.
to be honest, I’m not at all clued up on open GL. So far I’ve kinda learnt max in a very impatient way, only really picking up objects and their purpose if I think I need to use them. My journey through Jitter so far has been similar… Too much trial and error with me!
What I’m thinking it’d be nice to achieve is something using the recipe ’21.sceneprocess’ but with the visual wave depth and brightness controlled by amplitude. From my fiddling around, a lot of the jitter object parameters are fixed, so a $1 doesn’t seem to work. I’ve tried replacing the numbers in each object just to see what it does.
Gonna try and incorporate tutorial 28 with it maybe?
man… I thought max was hard!


October 18, 2006 | 1:35 pm


October 18, 2006 | 9:26 pm

hey, just wondering if I could please get one more pointer offa one of you…
How do I go about getting video signal out of jit.gl.render and into a matrix whic can be read by a jit.pwindow? I’m still messing around with the Scene process recipe. There is only a video player windoe external to the patch… howcan I solve this?
thanks
tom


October 18, 2006 | 9:41 pm

If you want to render directly to a pwindow, just delete the jit.window
first, and then instantiate a jit.pwindow instead. Once you’ve got your
pwindow, give it the same name as the jit.gl.objects in your patch
(using the inspector).

Cheers,
Andrew B.

register wrote:
> hey, just wondering if I could please get one more pointer offa one of you…
> How do I go about getting video signal out of jit.gl.render and into a matrix whic can be read by a jit.pwindow? I’m still messing around with the Scene process recipe. There is only a video player windoe external to the patch… howcan I solve this?
> thanks
> tom


October 18, 2006 | 10:06 pm

excellent, thank you!
sadly this doesn’t quite solve my problem…it have 2 jit.pwindow’s next to each other (one of whic from the scenerendering and they’re both goig into a jit.xfade… the signal from the jit.gl.render is not visable through the xfade sadly.. do you have any idea why this might be?
the side that does show up is sourcing from .mov’s… and already goes through one jit.xfade (though I don’t think this is a problem)… I’m just unsire why the window from jit.gl.render is not coming through the other side of jit.xade…
thank you so much for all your help!
tom


October 18, 2006 | 10:18 pm

Sadly, you’re not going to be able to do this without rasterizing the
OpenGL scene to pixel data. This will of course come with a cost in
efficiency, but there are a number of methods to get the scene back into
matrix-land. Check out the jitter-examples/render/ folder. I believe
there is an example in there for rendering to matrix.

I have to warn you that this is extremely difficult territory for
someone who has little experience with Jitter. You will be best off
getting a real handle on the matrix stuff before diving too far into
OpenGL. Just my 2 cents. If you need a quick audio–>video solution
look at the VideoSynth 1 & 2 recipes for some inspiration

Cheers,
Andrew B.

register wrote:
> excellent, thank you!
> sadly this doesn’t quite solve my problem…it have 2 jit.pwindow’s next to each other (one of whic from the scenerendering and they’re both goig into a jit.xfade… the signal from the jit.gl.render is not visable through the xfade sadly.. do you have any idea why this might be?
> the side that does show up is sourcing from .mov’s… and already goes through one jit.xfade (though I don’t think this is a problem)… I’m just unsire why the window from jit.gl.render is not coming through the other side of jit.xade…
> thank you so much for all your help!
> tom


October 19, 2006 | 3:46 am

damn… i see what you mean! open GL looks pretty tough stuff… gonna have to try and find the time to thoroughly go through all the tutorials…
if anyone could please give me one more bit of help…
I’ve gone right back to basics. dstrect to change placing of a matrix… how can I got it so it doesn’t live a mark of the previous position when the size is changed?
thanks very much…
sorry if all my incompetence is causing anyone pain.


October 19, 2006 | 4:08 am

put a ‘clear’ message to the matrix before you send the scr/dest dim
messages perhaps?

v a d e //

http://www.vade.info
abstrakt.vade.info

On Oct 18, 2006, at 11:46 PM, register wrote:

>
> damn… i see what you mean! open GL looks pretty tough stuff…
> gonna have to try and find the time to thoroughly go through all
> the tutorials…
> if anyone could please give me one more bit of help…
> I’ve gone right back to basics. dstrect to change placing of a
> matrix… how can I got it so it doesn’t live a mark of the
> previous position when the size is changed?
> thanks very much…
> sorry if all my incompetence is causing anyone pain.


October 19, 2006 | 1:42 pm

>put a ‘clear’ message to the matrix before you send the scr/dest dim
>messages perhaps?

Or – better still – take a look at the Tutorial on Matrix Positioning
and learn how things work so that you’ll know *why* you’d
need to do it [or not do it].


Viewing 15 posts - 1 through 15 (of 15 total)