CoGe 1.7 released - Bulletproof Edition

04/27/2016

We're happy to announce CoGe 1.7, the latest and greatest version of our favourite VJ software. There are very serious changes under the hood, related to how CoGe rendering video, still image and Quartz Composer content - the codename behind the scenes was Bulletproof Edition, because it is.

In the past few months we've worked hard to resolve the instability problems with Quartz Composer, that started with 10.9 and OSX 10.10 then 10.11 made them even worst - more then 80% of the crash reports we've received in the past years are related to system-wide Quartz Composer memory leaks.

An other big part of the crashes we've received are related to the fact CoGe is a 32bit application, because it relies on Quicktime, which cannot working on a 64bit environment. This means, even if you have a big load of RAM, CoGe could not use more than 4 GB of RAM anyway, and this could lead into problems with large setups. The successor of Quicktime is AVFoundation which plays well in a 64bit environment, but its not a drop-in replacement of Quicktime, and lacks some important features and possibilities for us.

Switching to AVFoundation would also require us to drop support for OSX 10.8 and 10.9 and least, but we have a quite large user-base who still happy with those older OSX versions, so we had to find an other solution.

New, IPC-based rendering engine

The solution we have found is rendering media - movies, still images and Quartz Composer modules - using IPC services. IPC is stands for Inter-Process-Communication, and in practise this means content will be rendered outside of CoGe, using small helper apps, and CoGe communicating with this little helper apps transparently - pretty similar to what Syphon does.

CoGe managing this in the background, you won't notice anything about that - expect QC modules are initialised asynchronously from now.

What does it mean in practice with Quartz Composer stuff?
This means if a Quartz Composer module is crashing, that won't affect CoGe anymore, since rendering is done outside of CoGe, and rendering is done in 64bit environment.

Really!?
Yes, really, and CoGe handling this circumstance pretty smart. Even if a Quartz Composer file is crashing, CoGe automatically relaunch it in the background. The only thing you will notice is that Quartz Composer module will show a frozen frame for a second or less. Each ClipSynth and EffectChain instances have their very own IPC connection.

Any downsides?
Well, everything comes as a cost. The IPC solution CoGe is using is really low-overhead but this is still more work to do, so its possible it may affect performance if you are using a lot of Quartz Composer content. However, stability is the most important, right? Not really a downside, but since Quartz Composer stuff is rendered using 64bit from now, this means 32bit only Quartz Composer plugins - like Bangnoise's Datamosh - won't work anymore.

Video, still images?
The same things applies to movie and still image rendering with the Native Quicktime and Native Image Players. The Quicktime Player is still a 32bit process, but every ClipSynth has its own IPC connection, so you can RAM Preload even more loops. The only difference with the Image Player is it is using 64bit from now.

Other changes and improvements

Of course there are other changes and improvement too, but first thing first, because of the rendering engine changes we had to drop support for OSX 10.7 and Quartz Composer based Dry/Wet modules - for the last, we recommend to use the ISF modules anyway. Improvements:

Support for multi-argument OSC messages, like the XY-Pad of TouchOSC.

Added option to set MIDI velocity for turned-off Buttons

Added default OSC messages to Sliders In-Out points

Preview renders at half-FPS by default, added option to render at full-FPS

60FPS rendering mode has been removed, from now CoGe always rendering in sync with the refresh rate of the Fullscreen Display device