MIDI Reactive Visuals

yungvilan's icon

I'm completely new to max and I'm currently working on a patch for some midi reactive visuals, I was hoping some of you may be able to give me a helping hand?
I want some effects (contrast, brightness, saturation) to be reactive to midi signals but my effects don't seem to be doing anything and I'm not too sure what else I've forgotten that may be needed so I'll leave a screen print of the patch below.

AudioLemon's icon

Maybe have a read of the Max tutorial on Basic MIDI. Also Max Basic Tutorial 3 Numbers and Lists - should help. Once you've read them it should be simple enough to pick an object and send it MIDI notes. You might have to use the [scale] object to scale MIDI values to values you can use with the object you choose.

AudioLemon's icon

sorry not MIDI notes - MIDI CC's

yungvilan's icon

Thanks! That's such a big help :D I've been stuck on this patch for a month so now I have some info to go ahead with.

Andro's icon

Send your movie into a jit.gl.slab effect (brocosa if I'm correct) this has the brightness,contrast and saturation effects all in one and works with very basic messages. Eg. brightness $1. Then plug this into a video plane.
With this setup you move your video processing onto the GPU which is far more efficient.

yungvilan's icon

I honestly have a very basic understanding of Max (I'm currently learning it at uni but my tutors only deal with Synths not visuals) so if you could elaborate on what you said would be great!

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

Here you go. I used jit.gl.pix for the brightness/contrast/saturation instead of jit.gl.slab. I really advise you checking out the cycling 74 examples map for amazing examples of video processing !

yungvilan's icon

Thank you so much! You've been such a great help. I've incorporated it into my patch and it's working very nicely! I just need to tweak some little things and it'll be perfect. I'll check them out, I had a look before and found it very interesting but was a little over whelming since I had no idea about what they were talking about, I'm starting to understand it all though I think it's just something I'll pick up over time.

Andro's icon

I found open gl much easier to learn than jitter matrixes (which I'm still learning now) the hardest thing to get your head around is the destination context.
Every open gl object such as jit.gl.pix,jit.gl.videplane need a destination context (in the case of this patch the context is jit.gl.render Movie) by stating the destination you tell each object "what it's associated with".
The jit.gl.render then sends its output to jit.window.
Just try getting some jit.gl.slab/jit.gl.pix effects from the example folder and inserting them into the video feed, you can plug them all into each other, eg, slab 1 to slab 2 to slab 3 and so on. By putting a gate between each jit.gl.slab you can send the video to the effect or bypass it completely.
The videoplane is just there as a "virtual window", any texture you send it will be displayed as if it's in a window.
So you could easily make 2 videoplanes each with their own movie and put one on each half of the screen by moving them with the position $1 $2 $3 (x y z) command.
Just experiment and you'll be off in no time !