There is a new version of the Animata OSC plugin available. I’ve had the Z-axis support working for a long time, but I’ve just been too lazy to upload it here. Also added the option to change the IP address and port numbers. Useful when you need to send OSC from QC to a different computer running Animata. You really shouldn’t touch the port, but decided to throw in the option to change it just in case.
Version 1.2 Changes
- Added the Z Position port for the Layer patch. That means you can now move layers in Z-axis too. (requires the latest version of Animata 004)
- Added the option to configure the IP address and port number. (Please test this one)
I also updated the VDMX plugins to have the Z Position option.
Please test this and let me know if you run into any problems.
I finally installed Snow Leopard this week on my MBP. I had some critical projects going on and couldn’t afford breaking anything.
So the first thing I had to do was to update my Quartz Composer Plugins to support Snow Leopard. There were some issues because QC 4.0 runs in 64bit and my plugins had only been compiled for 32bit. But now they should work. I still need to sort out a few issues (check your console for details), but everything seemed to be working fine when I did some tests. Let me know if you have any problems.
I just finished an OSC plugin for Quartz Composer that allows the user to change the IP, port number and address space dynamically through the input ports.
The current version does not support sending QC Structures as multiple values, but I am looking into ways of implementing it. Please let me know, if you come up with a good solution. Download the plugin and the soure code.
I bought the Rane TTM 57SL mixer and Serato Video-SL a couple of weeks ago, because I wanted a good setup for AV mixing and scratching. I’ve had the Ms. Pinky vinyls for a long time. They are very nice, but the software just doesn’t cut it for my purposes.
Don’t get me wrong, I love my pink vinyls and the fact that I can do whatever I want with them using the Max/MSP patches. And the newest version of Maxi-Patch even has OSC output so it works very nicely together with VDMX. But I need something more advanced for the audio side and a rock solid system for doing AV.
I have to tell you, the 57 has now become my favourite mixer. The faders are perfect for turntablism, it feels very solid just like the 56 and the software integration works well. The only gripe I have with it, is that it uses some proprietary HID protocol to communicate with Serato Live. So I can’t use the hardware control with any other software. Hoping for a MIDI firmware update. Oh, and the other thing is that it’s only USB1.1. Haven’t had much problems with it, but I would feel more comfortable if it would be USB 2.0.
I have the M-Audio Torq and for DJ-stuff it would have been enough for me, but there was just no way to easily incorporate video for AV-sets. I was surprised how well the Serato Video-SL works. Just throw your video on the deck like you would do with an .mp3 file and you are good to go. Together with 57SL, it’s a system that “just works.” Very important for me since I’m always busy doing stuff on the turntables and want to keep my hands off the laptop as much as possible.
Now mixing videos with audio is cool by itself, but the biggest selling point for me was the Quartz Composer integration. This feature was just added in the latest Video-SL release so hopefully there will be improvements, but what they got going is pretty cool already.
You can load a .qtz file on a deck that is playing audio by dragging it on the corresponding video channel. Your basic QC files work just like that. The only special thing about it is that the patch time of your composition is being controlled by the the song position of the deck where you .qtz file is loaded. So if your composition has any some sort of animation on it (Interpolation, LFOs etc.) you can just start scratching and the animation will follow. If you don’t want this behavior (I usually don’t), just feed system time into any patch that depends on the patch time.
That’s fine for some basic stuff. But I want more control! Fortunately, Serato has included the ability to control .qtz files with all kinds of data from the Scratch Live software – needle velocity, song info etc. – and you also get some data from the hardware controls of the TTM 57SL mixer. However, this stuff is not really documented anywhere (except for a .pdf I found on the Video-SL Beta forum). So I’m gathering all the info that I know over here.
The way this works is the same way you always interact with Quartz Composer files in an external program. You publish inputs with certain names.
This image is from the .pdf I mentioned earlier. I don’t want to post it here since Serato hasn’t released it publicly and they might have a reason for that. You can find it on the forum if you are registered. http://serato.com/forum/discussion/141782 The .zip also includes a bunch of sample compositions that show how the communication works.
There are 27 parameters that you can use to drive your compositions. And the input name always starts with kSSV_SeratoData. Now I could list all of theme here, but it would just make this already too long post even longer. So I’m doing something better.
I created these clips for myself to be able to easily add the Serato input splitters to my compositions without trying to remember the syntax exactly. And since I’m such a nice guy, I’m sharing them with you.
Once downloaded, copy the .qtz files to this location:
~/Library/Application Support/Apple/Developer Tools/Quartz Composer/Clips (where /~ is your Home Folder).
The next time you launch Quartz Composer, search for Serato in the Patch Creator and double-click the clip that you want to use.
Connect the output to whatever you want to control. Remember to also publish the input of the Serato clip you have chosen by right clicking and choosing Published Inputs and the input name. Make sure you don’t change the name.
I think I haven’t tested all of them, but I know that there is at least one problem. The Serato Needle Position is not working at all. I’ve reported this to Serato, but haven’t received an answer yet. This has been fixed in Scratch Live 1.9.1. which is in public beta. You can use the song position also if you need position data. The Needle Position is the position from the beginning of your control vinyl.
Here is an example that I made pretty much the first day I got Video-SL running. It was inspired by the Visual Scratch project. The Needle Velocity controls the Y position and the fader controls the visibility of the line. It’s not perfect, but fun to mess with anyway. Sorry about the crappy scratching. I’m a bit rusty, because I didn’t have turntables in Montreal so I couldn’t practice for 9 months.
Music by the Finnish dubstep-superheroes Demonic 1 & Dr. Coil. The song is called Bottomless Pit and it’s from their Treblescience EP.
If you’ve been reading this blog for the past few days, you might have guessed that I’m working on some Serato + Animata stuff. I should have a video to show later this week. Stay tuned.
In my previous post, I promised to do something more exciting with the QC and Animata communication. You can’t get much cooler than Mr. Cool!
This is a modified rig of the Mr. Cool character I used for my Product Placement animation. I used Max/MSP when I did the animation, but QC is just much more fun.
Mouth and body movement controlled by the sound. Arms have a small LFO on them and you can trigger some other movements with the arrow keys.
I started messing with my Animata OSC plugin for Quartz Composer and trying out different kinds of data I could feed from QC to Animata. The Audio Input patch is the obvious choice, so might as well get that over with first.
The first test. Just playing various samples and seeing how the communication works. Not very exciting, since I’m not using any images in Animata.
I will probably post something more interesting tomorrow. The point with this test was more to do something I’ve been meaning to do for a long time. That is to figure out exactly what is the frequency range of the different spectrum bands of the Audio Input patch.
My testing method was not the most accurate, but should be fine for this purpose. I just want to have a rough idea of what is going on. They way I measured this was by generating different frequencies with the Max/MSP cycle~ object and then seeing at what frequency the maximum value jumped from one band to the next one. Here are my results. The frequency is in Hz:
Band 0: 0 – 580
Band 1: 580 – 1000
Band 2: 1000 – 1500
Band 3: 1500 – 2000
Band 4: 2000 – 3200
Band 5: 3200 – 4800
Band 6: 4800 – 6140
Band 7: 6140 – 8230
Band 8: 8230 – 10300
Band 9: 10300 – 12380
Band 10: 12380 – 15110
Band 11: 15110 – 17880
Band 12: 17880 – 20000
There was no point trying to measure Bands 13-15 since they go over 20kHz and my sound card can’t handle that. Actually, in normal use – normal use for me meaning music visualizations – there’s not much point using the bands above 8, since the amplitude at those frequencies is barely noticeable.
Let me know if you are doing something cool with Quartz Composer and Animata.
I stumbled on the VVOSC framework yesterday and started messing around with it. It seemed really simple and I had a Cocoa application that sent OSC to Animata running in no time. So I decided to try to create a plugin for Quartz Composer that would allow me to send Animata compatible OSC messages. This wasn’t previously possible, because the default OSC sender in QC didn’t allow to send messages with mixed data types. The peeps over at vidvox forum have been trying to find a solution for some time now.
After a couple of hours and with some tips on compiling from vade, I had the plugin working!
I was really happy about that, because I really thought that writing plugins for Quartz Composer would be out of my skill range. It turned out to be pretty simple actually.
Last week, I took part in the SenseStage workshop at the Hexagram BlackBox in Montreal. http://sensestage.hexagram.ca/workshop/introduction/. It was a workshop designed to bring together people from different disciplines (dance, theatre, sound, video, light) and cooperate in a collaborative environment with interactive technologies.
During the workshop, there were tons of sensors – light, floor pressure, accelerometers, humidity etc. – all connected to little microcontrollers which in turn were all wirelessly connected to a central computer that gathered all the data and sent it forward as OSC to any client conected to the network.
Basically, we had 5 days to complete an interactive performance sequence using the data gathered by the sensor nodes. This is what our group came up with.
We call it Treasure Islands and it’s a bit twisted interactive performance/game where a girl finds herself in a weird world where she is floating on a donut in the middle of the ocean with a mermaid talking in her head. She has to travel to all of the different Islands around her, and collect sounds from them in order to open a portal into this strange dream world for all her friends. Sounds like a good concept, doesn’t it? Check out the video and you’ll see that it actually makes sense.
There was a lot of sensor data available, but we ended up using just the pressure sensors on the floor and camera tracking. With a bit more time we could have evolved the world to be more responsive to the real world, but I’m pretty happy with the results we were able to achieve in such a short time. Our group worked really well together, which is not always the case in such collaborative projects.
Credits:
Sarah Albu – narrative, graphics, performance
Matt Waddell – sound, programming
Me – animation, programming
And I guess I need to include some more technical details for all the people who check my site for that kind of stuff (I know you’re out there).
We used camera tracking with tbeta to track Sarah and used that data to move the doughnut and to make the environment responsive to her movements. All of the real-time animation was done in Animata, which really is a perfect tool for something like this, because it allows me to animate things really fast without compromising in quality. Max was used as the middle man to convert the TUIO messages and the OSC from the sensor network into the kind of messages Animata needs to hear.
We sewed some IR LEDs on the hat to help with tracking in a dark space.
Each island is an instrument that you can play with. Stepping on a certain area would trigger loops, add effects to your voice etc. Matt could explain the sound part better than me, but the video should make it pretty clear. it doesn’t reproduce the effect of the quadraphonic sound system we used though. Some visual clues were also triggered in the animation based on her movements on the sensors.
That’s pretty much it. If you have any questions, leave a comment and I’ll try to get back to you as soon as possible.