Hi giorgiomartini. I produce break beats and electro tracks and have been using ableton and some hardware synths for production. I've been djing/producing for about two years now . My real passion has always been graphics and recently decided to get back into programming. I always wanted to make live visuals for music and studied 3d animation and modeling for 2 years, i'm fluent in 3dsmax maya and a handful of other packages. I was pretty disappointed with the whole thing because i mainly wanted to do LIVE visuals instead of prerendered stuff that i would loop later on using video mixers. That's when i discovered processing vvvv, max msp/jitter etc. Out of all of the above i ended up using processing. I use ableton live to control all my visuals, if i'm syncing something to an mp3 i load the mp3 into ableton and quickly setup a midi track along with it that sends midi info and cc commands to processing. This lets processing know where beats and events are and since ableton does such a great job of beat matching everything matches beautifully. If you're using a track that you've made in abelton even better cause all the data is already there. You can use ableton as a recorder for processing: you can have a processing sketch running along with ableton live and then play with the setting and variables using rotary knobs from midi equipment and have ableton record the whole thing, all live, like a vcr. i can later go back and re-record or edit stuff manually. It's almost the same as creating a track except that instead of having your midi output to a vst or synth i send it to processing. Controlling visuals using midi equipment is simply awesome and having ableton trigger stuff is even better:)
The main reason i went with processing as opposed to vvvv, max etc is because Processing is based on java and therfore can be expanded using java libraries and opengl. I wasn't to thrilled with vvvv graphical interface, it seemed restrictive. I started using processing only with it's built in methods which where great to learn on. I then moved on to using native opengl and GLSL shaders to create more complicated sketches. Honestly at this point most of the coding i've been doing is strictly opengl but i still use processing as the core cause it's really easy to set things up and has tons of great methods geared towards artistic design. I'de highly recommend the two processing books as a starting point, not only do they teach you how to code but they also teach you basic concepts on visual design, physics, motion etc. I bought the one from ira greenberg first cause it's easier to find and available as a pdf. The forums here are also a great help, i've pestered the hell out of these people and they've always answered my questions
As far as cons, the only problem i had with processing was with speed. I mainly do 3d stuff and processing opengl is really slow compared to native opengl, but i quickly got around that by using native opengl. As i stated earlier since it's built on java you can always expand, there's really no limit.
As far as syncing music to visuals here's what i'de recommend:
1)Sonia and sonia helper, in case you want to do audio analysis as opposed to pure midi data, i use a mix of both.
2) Promidi library to input midi data and using any midi equipment you have.
3) midi yoke, this will route midi data from ableton back into the pc so that it can be picked up with promidi.
4)ableton live, best sequencer out imo especially good for live visual performance.
5) midi contollers with lots of knobs, i use 2 behringer bcr2000 that gives me a total of 64 knobs!!
Anyhow i hope that answers your question. Sorry for the long post but i'm constantly trying to convert people to processing and ableton.
peace
-stephen
ps. nice site btw