Animata OSC Plugin

waxtastic's picture

The open source, real-time animation tool Animata can be controlled externally via OSC. However, it has been previously impossible to send compatible messages from Quartz Composer, because the default OSC patch in Quartz Composer doesn’t natively support mixing different data types in your messages.

This is why I decided to create the Animata OSC plugin for Quartz Composer.

Direct link to the plugin and source code. http://mansteri.com/download/software/animataoscplugin/AnimataOSCPlugin.zip

Other information: http://mansteri.com/2009/07/quartz-composer-to-animata-osc-plugin/

I will post some sample files and videos later.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

cybero's picture
Re: Animata OSC Plugin

Congratulations

.lov.'s picture
Re: Animata OSC Plugin

Nice one!

steve holmes's picture
Re: Animata OSC Plugin

Really looking forward to having a play with this one. Cheers Steve

waxtastic's picture
Re: Animata OSC Plugin

Thanks a lot. I'll try to add another patch to the plugin that receives the OSC input from Animata joints. Shouldn't be too hard.

gtoledo3's picture
Re: Animata OSC Plugin

Now don't quit there :) The next step is actually bringing the animata data files INTO Quartz Composer!

Not having used Animata... what are the advantages of using QC to generate values like this to send to it? There are a decent amount of novel ways to generate values in QC, but I guess from the clips of Animata I've seen, it looked like Animata had that down internally. Is the idea that now you could use audio or mouse or something to power an Animata character's movement?

waxtastic's picture
Re: Animata OSC Plugin

Yeah rendering of Animata files inside Quartz Composer would be really cool. I made a feature request about that a while ago, but I think that it's a little out of my league. Doesn't stop me from trying though.

There's no internal audio input etc. in Animata. The only internal animation capabilities are dragging things one by one with your mouse and a simple LFO generator.

I've been previously working with Max/MSP and Animata. Sending audio to move things around, custom buttons and sliders etc. But the limitation with that is that I can't load Max patches into VDMX. And I prefer working with QC anyway. And this plugin makes working with Animata super easy.

Right now I'm mostly interested in doing some stuff for Serato Video-SL. http://www.serato.com/video-sl. Video-SL supports .qtz files also. This allows me to control Animata with my turntables and mixer. Scratching animations etc. Also some multitouch TUIO stuff.

gtoledo3's picture
Re: Animata OSC Plugin

Cool, thanks for the insight on Animata.

Have you used qtz's within SL yet? I've done some Serato interfacing myself, sans SL or 3rd party products. It seems that the turntables put out velocity and position info. I'm curious how robust the SL feature set is... I thought the product page wasn't too specific.

Hmm, so I guess that leaves you setting up your animata stuff as a screen grab. That poor computer is going to be groaning :)

waxtastic's picture
Re: Animata OSC Plugin

Serato + .qtz actually work pretty well together although the .qtz support was only added in the most recent Video-SL update. I only got it a few weeks ago when I bought the TTM 57SL mixer, so haven't messed with it a lot yet.

The documentation about the available data to .qtz is really well hidden. I had to dig for it in the Serato Video-SL beta forums. I finally found a pdf with all the available protocols.

A total of 27 parameters from Serato to QC are available. Vinyl position, velocity, FFT stuff from the audio, info from the hardware controls of the 57SL mixer, song info etc.

For example, kSSV_SeratoDataNeedleVelocity will give you the velocity of the vinyl.

I'll probably write a tutorial over the weekend about that stuff and upload all the QC clips I've created of the protocols.

Can't find the pdf right now, but if you want to see it I'll dig it up and send it to you.

Quote:
Hmm, so I guess that leaves you setting up your animata stuff as a screen grab. That poor computer is going to be groaning :)

Actually if I do the Serato stuff I can just let Animata run by itself. I don't have to route it through VDMX. And since the .qtz doesn't have to render anything in Serato, it runs pretty fast.

echolab's picture
Re: Animata OSC Plugin

give thanks_very useful.

gtoledo3's picture
Re: Animata OSC Plugin

Interesting... yeah, it would be greatly appreciated to see that pdf... gtoledo3@gmail.com

My info has just come from looking at setups from internally used qtz's, and I'm really surprised to see there are that many available params from what you indicate. Most stuff I had seen felt like a mix of the iTunes protocol, with some animation protocol type parameters added in (like velocity for "pace" and position in lieu of "patch time"). The fact that it is getting fed FFT stuff from the software glossed over my head, I guess I was thinking it was all stock QC stuff doing the audio analysis.

But I'm guessing the protocol is all based on what the structure is within SL. Whereas my thought has been to intercept before it hits the software at all.

So something like "song info" would be derived from software, whereas the hardware itself probably puts out way less info, I'm thinking (or knowing rather).

Keep me posted on the protocol upload stuff/pdf of it working "in" Serato, and I'll keep word on any notable findings I have about doing it in way that pumps it straight into QC, and bypasses the current software, should that prove to be a reasonable method.

waxtastic's picture
Re: Animata OSC Plugin

Well the hardware side of serato is only really a USB sound card and a vinyl record with the timecode as an audio signal. The velocity and position are processed in the software, before they do anything. The actual audio (mp3 files) is handled 100% in the software. It just gets passed out to your dj mixer.

The only hardware stuff that is passed is just some HID info from the TTM 57SL. That probably goes through the software also since it's very closed stuff. You need Rane hardware and Serato software to run any of that. MixEmergency seems to be able to pick up the position and velocity also, but everything else seems to come from software http://www.inklen.com/mixemergency/manual/quartzcompositions/ Which makes sense really. Don't know how much they have to pay Serato for the licensing.

Trying to hack the serato timecode might be more trouble than it's worth. If you want to mess with timecode vinyl, I recommend MsPinky. http://www.mspinky.com/ When you buy the software and vinyls, you get access to the SDK which seems fairly straightforward. I'm actually going through it right now since I've gotten excited about this plugin development stuff. Might try that as my next project.

waxtastic's picture
Re: Animata OSC Plugin

Just a quick note that I realized after writing the post above.

Ms Pinky's Maxi Patch-AO sends OSC that you can use in QC. So you can get the position and velocity easily. Would be cool to have a plugin though.

Getting seriously off topic now.

gtoledo3's picture
Re: Animata OSC Plugin

Thankfully, this is where my background in audio engineering, and actually having to learn how old school timecode and 2" reel to reel work led me to an extremely obvious (to me at least), way of figuring out what is going on with the Serato time code, and two different really viable methods of approaching it and extrapolating what it "should do" to audio or video, entirely inside of QC. I don't think it's as much of a hack involved as it is analog timecode stripe technology basics, so to speak.

Yep, it's like I was saying in my original post, and you re-confirm from your experience (thanks)... the hardware just puts out position and velocity. I'm aware of that MixEmergency thing as well, saw it on Create Digital Motion, in doing some searches on Serato stuff.

Thanks for the head's up on MsPinky, that looks like a whole other barrel of worms :)

In "my mind" I have a really good approach to this, it's just that time is always a factor.

gtoledo3's picture
Re: Animata OSC Plugin

Oh killer, I hadn't gotten that far.

Well.

Yeah, it would be cool to have a plugin for sure so that nothing else is necessary, but I like that they already have this setup to send OSC. Hmmm, says I.

franz's picture
Re: off-topic

fyi, i'm tryied both serato and mspinky, and found mspinky way less reliable than serato, imho. But the price is very different too ....
Serato is used by french band Birdy Nam Nam tho'.... http://www.youtube.com/watch?v=0PqvDwBOp9Y

do you know v-scratch ? http://www.v-scratch.net/

he's using a simple optical mouse to get velocity info. check his set-up, it is very smart

.lov.'s picture
Re: off-topic

hoho, v-scratch is phunktastic :)

Nick's picture
Re: Animata OSC Plugin

waxtastic wrote:
MixEmergency seems to be able to pick up the position and velocity also, but everything else seems to come from software http://www.inklen.com/mixemergency/manual/quartzcompositions/ Which makes sense really.
Hi, I'm from Inklen and am responsible for MixEmergency. If you're interested in getting QCs working with MixEmergency, need help/advice with QCs, or have requests for other properties to be passed through, you can contact me on our forum or by e-mail: http://www.inklen.com/contact/

We are very interested in the development of Quartz Compositions - and can see massive potential for their use with turtablism.

waxtastic's picture
Re: Animata OSC Plugin

The first video and a sample file is up. http://mansteri.com/2009/07/quartz-composer-audio-spectrum-animata/

Not the most exciting example, but I will be making a lot more.

There's also some info about the frequencies of the audio input spectrum that some people might find useful.

dust's picture
Re: Animata OSC Plugin

that would be awesome george hooking up an old fostex 2inch reel. actually had that idea in a film class with an old projector everybody's all new media out trying to hook arduinos up to everything. im like if new media is a digital representation of analogues equipment wouldn't it be neat to hook up some old analog gear to control digital media.

i know serato and traktor are all the rage, i have gone the vci-100 traktor route myself. haven't tried hooking up my vci-100 to qc yet tried with isadora in class one day but isadora didn't like the high resolution midi.

just like you i would like to see the serato traktor qtz file if its got fft in it that would be interesting to see a qc implementation.

dust's picture
Re: Animata OSC Plugin

some cool sample in the video composition ;)

gtoledo3's picture
Re: Animata OSC Plugin

Cool... yeah, that was like the only thing that was making sense to me :) But I guess you did say that all that Animata has is an lfo, and it's not very complex on that end? I guess from seeing the physics stuff, I wrongfully assumed there would be a ton of options.

Now, you could also set up tables of bone names and lengths, and trigger through (multiplexer + index switching is probably the easiest, quickest way). You could do some stuff like add smoothing on bone length parameter so that when you snap through presets, the bones will grow in a slick way. Can you send to mode than one "bone"... as in, can you set up a bone structure input, or is the idea to just have a few "animata bone osc" patches around.

Man, life is too short, this is way interesting, but I could see myself getting wrapped up in it :)

dust's picture
Re: Animata OSC Plugin

so its working the osc plug in not sure if the svn build is needed for layers but bones and joints work from the binary i installed. i like the lack of features to tell you the truth you can get way two wrapped up in maya and traditional 3d animation programs.

here is an simple animata i did in qc while playing with animata program. i just took a picture of this willy doll from the 50's ventriloquist type of doll the one that actually has strings in the back etc... it works in both qc and animata, i can see now why you would want qc 2 animata osc stuff not much for animation control the animata is but i like the principle of adding stuff.

i figured out control click on a vert to deselect haven't figured out how to undo in animata its bugging me anyone can tell me how to undo, and don't hit the esc button.

PreviewAttachmentSize
willytalk.qtz178.73 KB

waxtastic's picture
Re: Animata OSC Plugin

You can build the bone structures in Animata. Like skeletons and very complex character animation rigs. It's basically like building IK chains in any 3D animation program.

Then the easier way to control the rig is by moving the the joints around or setting some control bones to move the joints.

Working on a new example right now.

waxtastic's picture
Re: Animata OSC Plugin

Yeah svn build is needed for the layers.

There is NO UNDO in Animata. So make sure you save incremental copies if working on bigger projects. Animata has it's own quirks and could do with some improvements, but I still use it in my work every chance I get.

waxtastic's picture
Re: Animata OSC Plugin

gtoledo3's picture
Re: Animata OSC Plugin

This makes me laugh... I have a really extensive series of macros and setups to emulate this kind of thing IN QC...

I love when you slip to the faceted mode so that one can see exactly how the mesh is deforming.

You know... if one wants to spend a heck of a lot of time on the presetup, you can do stuff like this in QC completely. It's just that you have to get your 3D planes, or parametric objects, hook them to warp patches that make sense, manually place all the objects, sometimes grouping them together... adding smooths when appropriate so that some pieces will move quicker than others when triggered for various scenarios... grouping appropriate parts together via macros with translation/rotations getting powered by the same values, but with different math in between, etc etc...

Long ago around here I posted some kind of "parametric head"... I believe I posted the one that responds to sound, so that if you feed vocal tracks, it looks like it's mouth is moving. That was like step one down that road for me.

I'm guessing that the Animata toolset helps create the characters quickly, and that's why it's so nice though? I keep NOT wanting to even open Animata because it's like getting into a whole other can o worms :)

How is the Animata rendering engine (assuming there is one?). Also, it looks like it's making a 3D mesh, but it always renders 2D?

waxtastic's picture
Re: Animata OSC Plugin

I've done lots of animation rigs in QC also, but they are always a pain to edit.

Well yeah, You can spend weeks trying to do something like that in QC and perhaps eventually succeed. Or do it in 15 minutes in Animata. That video doesn't really show how nice the deformations in Animata are. I would hate to try to build bone weight mapping or Inverse Kinematics in QC. Although the Animata weight mapping isn't as advanced as in most 3d programs, it does a good job.

I guess Animata could be called 2.5D. No volume, but there is depth. It's a bit limited though since only the layers can move in the Z-channel. It would be nice to be able to move the joints in Z-axis and rotate the camera.

dust's picture
Re: Animata OSC Plugin

i spent a day playing with animata. i can see its allure. im most defiantly going to use it some day for puppet kind of stuff. its funny had the praying mantes breakdancing today. i like the lack of controls but i am used to more traditional 3d techniques as far ik and fk's are concerned so it is a bit frustrating when things start flipping where as in a traditional rig they don't because you can set boundaries. it is streamlined though so as far as prep time there isn't to much weight painting and there are not that many verts so it can be a very fast way to do simple things. i think although the gl context it is rendered in obviously has 3d capabilities i think inherently the program is supposed to be 2d.

dust's picture
Re: Animata OSC Plugin

i made the example file praying mantis dance with animata. here is the quartz file and a video of the joint names to make this quartz composer file to work with the praying mantis

http://d0cut0uch.no-ip.info/qc/pray.mov

PreviewAttachmentSize
mantis.qtz9.18 KB

jjdelorimier's picture
Re: Animata OSC Plugin

This Plugin is not working for me and it is installed in the correct folder, Im running 10.5.8 with QC 3.1, If someone could shed some light as to why the plugin won't install. It doesn't show up in my patches and the sample files don't work. I really made something cool in this program and really need to control it thru quartz/vdmx. Please help me someone! thanks.

i installed it in hd/library/graphics/quartz composer Plug-Ins

I have installed most of the kineme plugs and vades plugs CoGe plugs and the datamosh plug without any problems. thanks again.