CoGe

Welcome to CoGe Wiki!

CoGe is a semi-modular, Quartz Composer® powered VJ application for Mac OS X®, designed for real-time media mixing and compositing. You can play and use a growing number of media types as sources - Quicktime® movies, Quartz Composer compositions, still pictures, Adobe Flash® animations, 3D meshes (Collada .dae format), and webpages in real-time (just for example) and then mix, composite and apply effects to them. The full rendering is done through the GPU of your graphics card for maximum performance.

With CoGe, you are able to use as many layers and many effects as you want - you are only limited by the maximum performance of your computer's GPU. For the better playback performance CoGe automatically generates and manages a RAM disk. When you load a media file, the software will automatically copy it to the RAM disk and will play it back from that.

CoGe has native Syphon support. If this is your first time hearing about Syphon, its a technology for applications to share image frames in real-time. This means you can receive frames in CoGe from other Syphon-capable software or vice versa. All this frame sharing happens on the GPU so the performance is breath-taking.

CoGe supports direct keyboard mapping as well as MIDI and OSC connectivity, which allows you to control most parameters of the software with custom keyboard shortcuts, external midi devices or with other devices (e.g another computer, your cellphone or tablet computer) via your wireless network.

CoGe is a semi-modular system, which means you can build the environment that suits you the best. Media playback, effects and mixing functions are not built-in, hard coded functions in the software but rather they are modules. A ton of modules are included with the application, and you can download many user-contributed modules or even build your own using Apple's free tool, Quartz Composer.

Quartz Composer, if you missed it, is excellent, and you should definitely take a look at it. Using its own drag-and-drop composition environment, you can create your own media source handlers, effects, and create patches for doing automations, mixing and composition. These plug in to CoGe and can be used immediately in your Projects.

The CoGe community has contributed a number of Quartz Composer modules for CoGe, and they can be downloaded from the www.cogevj.hu website.

CoGe has a flexible storage system, allowing you to save and load an entire project (including all media clip references, module layouts, etc.) or just portions of a project for flexibility and reusability. For example, create your VJ setup once, and save it as a Project. When you re-load the Project again, it loads exactly the way you left it - ready for performance. Or, if you use a common series of video clips between projects, you can store just the list of media files for loading into separate Projects or for quick building of new ones.

CoGe requires a Mac computer running MacOS X 10.6 Snow Leopard or later with a dual-core CPU. CoGe works great with Lion!

CoGe is a commercial application. In demo mode, save and load functions are disabled. When you have thoroughly evaluated CoGe, you can easily and securely unlock these features by buying a license in the www.cogevj.hu online shop. After your purchase, you will receive an email with instructions on how to activate the license.

How Does it Work?
CoGe was designed to be easy to work with, but there are some things you need to know to understand how it works, what is what, and how it all fits together.

The Rendering Chain


Take a look at the following diagram, which shows the main rendering chain:

Diving into this a bit: Layers - actually what CoGe refers to as ClipSynths and SyphonSources  - are the mechanisms that render the image data (see the next section for details) - and the rendered image is passed to the Mixer.

All Layers and the Mixer are also Syphon servers - see Syphon section for details - so the rendered image at this point is also available to any apps that have Syphon support.

In the Mixer, images from Layers and/or Syphon sources may be used in transitions and/or compositing. The Main Output window always shows the image coming from Mixer.

The Preview window renders Syphon sources, as well as the Layers of CoGe. This is important, because if you are using any other application that is sending images to Syphon, these sources will be available in the Preview Selector list and you may view the incoming frames in the Preview window.

Syphon
“Syphon is an open source Mac OS X technology that allows applications to share frames - full frame rate video or stills - with one another in realtime” - via http://syphon.v002.info

CoGe has native Syphon support. In the Syphon model, a 'server' is an application that sends frames and a 'client' receives frames. CoGe can be a server: ClipSynths, the Master Mixer and Layer Groups all pass the rendered frame to Syphon clients. CoGe also can be a client - you may playback frames provided by a Syphon server in ClipSynths and you are also able to use them in Effect and Mixer modules.

Rendering Preferences


The most important rendering-related settings can be controlled on the Rendering tab of Preferences window (open from CoGe menu). An explanation of the settings follows:


 * 1) Main output rendering size: the resolution of the main rendering canvas - CoGe will render and display the main output image in this resolution. Note: a good choice is set this value to match your media files resolution.
 * 2)  Layers rendering size: In the most cases you just want to render your layers at the size of the main output, but in some special situations you may need to render layers in a different resolution then the main output rendering size (for example, beaming out three different layers with a TripleHead2Go).
 * 3) Main output scale: changing this value will scale (zoom) the main output image. Click the Reset button to revert the Main output scale to its default value of 100%.
 * 4) Multi-sample anti-aliasing: If this feature is enabled, the rendering will perform anti-aliasing on edges. This only makes sense for Quartz Composer compositions and some kinds of effects and/or mixers which render geometric figures (for example, a cube). Note: depending on the resolution you set in the settings above, enabling this feature could lead to a decrease in performance.
 * 5) Texture Filtering Interpolation: controls the filtering of image up-/downscale
 * 6) Rendering speed: there are 2 different options. The default one is 60FPS (60FPS means  60Hz display refresh time), the second options is Display Driven. When the least is going to be  chosen CoGe will render frames in sync with the display (monitor/projector) and this could generate smoother output in some circumstances.

RAM Disk - Operation and Preferences


A RAM Disk is a block of the system memory that is attached to the file system like a disk drive. Because accessing RAM is much faster then reading from disk, CoGe automatically generates a RAM Disk on startup, and manages it. When you drop a file into a Media Slot (see the ClipSynth section), CoGe will automatically copy it to the RAM Disk and play it back from there. This provides faster media triggering and better performance if you are using many media files at the same time.

CoGe can manages this RAM disk constantly. Every 60 minutes the application checks which media files are stored in the RAM Disk, and if a media file has not been used in the the last 60 minutes CoGe will, in the background, automatically remove it if the RAM Disk Auto-Trasher function is enabled. The next time you want to use this particular media file, CoGe will load it from the original location (e.g. from disk.)

In some situations the automatic management of media clips may not what you want. In these cases, you may add or remove files from the RAM Disk manually. Simply right-click on a Media Slot (see the ClipSynth section) and click on the function you want. You may also change the RAM Disk size by opening Preferences from the CoGe menu and selecting the RAM Disk tab. The application stores this value and when you re-launch the application a RAM Disk will created using this new size.

Note: : be sure you don't use a RAM Disk that is too large. Look to see how much system memory is available and keep in mind that CoGe also needs system memory. When choosing a RAM disk size, leave at least 512 MB system memory for CoGe and other applications.

If you run out of system memory don’t worry - all things will still work, but as you run out of system memory, OS X will automatically fallback the RAM Disk to swapped memory, which is mostly uses your computer's local hard drive. When this happens, the benefit and speed of the RAM disk will be lost.

OSC Preferences


''Open Sound Control (OSC) is a protocol for communication among computers, sound synthesizers, and other multimedia devices that is optimized for modern networking technology. Bringing the benefits of modern networking technology to the world of electronic musical instruments, OSC's advantages include interoperability, accuracy, flexibility, and enhanced organization and documentation.'' - via opensoundcontrol.org

With OSC you can control most of CoGe, Sliders, Buttons, triggering Media Slots on a ClipSynth Gadget, and you are also able to receive BPM value for the  BPM Clock.

To get OSC working on your wired or wireless network, you should set up the Incoming Port in the OSC Preferences. If you need to send OSC messages from CoGe, set the Output IP and Port values too. CoGe can auto-detect OSC clients for outputs via Bonjour if, the destination OSC client supports this function.

If you have troubles with sending or receiving OSC messages, check your firewall and router settings!

If you changed either input or output settings, you must Apply the new settings!

On the OSC Preferences section, you can set up how OSC sending should operate: you can select between setting up OSC sending manually on each item, or select OSC Talkback.

For more information about how to control CoGe via OSC read the Controlling CoGe section. For more information about how to send OSC messages using built-in functionality please read the Sending MIDI and OSC messages from CoGe section.

MIDI Preferences


In the MIDI Preferences section you can enable/disable MIDI devices CoGe receive from and send to. You can also set the behavior of the MIDI sending, like OSC, manually or Talkback. CoGe lets you set up different MIDI Velocity values for sending, depends on the state of buttons, non-empty Media Slots and the selected Media Slot. If your MIDI controller device has multi-color leds and supports setting controller color via Velocity messages, this function turns into very handy, see and example here: http://www.cogevj.hu/blog/2012/coge-1-3-0-5-adds-custom-velocity-settings-for-midi-sending/

For more information about how to control CoGe via MIDI read the Controlling CoGe section. For more information about how to send OSC messages using built-in functionality please read the Sending MIDI and OSC messages from CoGe section.

The Output menu


You will find the Fullscreen toggle and a list where you can select the screen used for Fullscreen in the Output menu. You can turn on the display for outgoing MIDI/OSC messages and trigger sending a MIDI and/or OSC message with all enabled senders - this function helps you a lot when using MIDI/OSC Talkback.

In this menu you will also find the Create PNG Snapshot function. Using this feature produce a snapshot from the Main Output as a .png file - you'll find the snapshot in the Pictures folder of your account's Home directory.

Modularity


Modularity in CoGe means two things:


 * 1) Modular Interface: the application’s interface is semi-modular, which means CoGe’s user interface is not hard-coded. You can change the layout by moving windows, and you can add new (and, of course, remove) interface elements - as many as you need - for your current project.  These interface elements are ClipSynths, EffectChains, SyphonSources, LayerGroups, VideoInputs and Sequencers.. For simplicity, we will refer to these collectively as Gadgets.
 * 2)  Modular Ecosystem:  CoGe uses modules for media file playback handling, automation of parameters, all effects and mixing/compositing functions. It is important to understand that CoGe was not hard-coded with functions to make those things, and that even the most basic of media players, effects and mixing elements are controlled by plug-in modules.

A module is a Quartz Composer composition, which is constructed in a way so that it can communicate through input and output parameters with CoGe. If a module has adjustable parameters CoGe will automatically generate the user interface for it and will display buttons, sliders, etc. based on the data type of the parameters.

CoGe and its modules "talk" - meaning that CoGe provides some information to modules (e.g. BPM) and can also read values that the module publishes.

Modules are always loaded within a Gadget by right-clicking on its striped area - except for automation control modules, as these are assigned to sliders.

For more information about developing modules see section CoGe and Quartz Composer. All Modules are placed in the modules directory found in the CoGe.app directory.

CoGe uses the following module types:
 * 1) Player: Player modules handle the playback or display of various types of media, and should be placed in modules/player folder.
 * 2) Effect: Effect modules are (rather obviously) effects, and should be placed in modules/effect folder.
 * 3) Mixer: Mixer modules are those that apply transitions and/or compositing between layers. These should be placed in modules/mixer folder.
 * 4) Control: Control modules are specialized modules that allow for the automating of slider controls in CoGe modules. They should be placed in modules/control folder.
 * 5) Behavior: Behavior modules are specialized modules that allow for doing post-process with value of sliders. They should be placed in modules/behavior folder.
 * 6) Blend:  Blend modules are used for processing Dry/Wet blending with Effects. They should be placed in modules/blend folder.

Note: the modules/templates directory contains Quartz Composer templates for module developers. Note: if you installing Quartz Composer modules while CoGe is running, the new modules won't be listed until you click on Refresh Module Lists in the Interface menu

The Main User Interface
In this section I’ll describe the native elements of the application’s user interface. All of these items are windows, and work similarly to windows in other Mac applications. Each window has a title bar on the top, and can be moved by dragging this titlebar and re-sized by dragging the bottom-right hand corner. Note that some windows have a fixed size and cannot be re-sized.

CoGe's windows are not strictly closable, but each - including Gadgets - may be collapsed or expanded by clicking on the triangle in the top-left corner.

With this in mind, let's explore the interface a little more and talk about window types.

Look and Feel


By default, CoGe uses a pinkish color for the highlights by default. You may prefer one of the other highlight colors: orange, blue or green by opening the Preferences from the CoGe menu and selecting the Look and Feel tab.

Common Views
There are two types of views you will see when using CoGe, Module Containers and Module Views. These views are critical components of CoGe's modular ecosystem and will be described below.

Module Containers


A Module Container is the place where you can add and remove modules and is the enclosing container for views displayed by each of the modules, AKA "Module Views". There are three types of Module Containers, but the main difference between them is which types of Modules a Module Container may contain. This latter distinction is defined by the type of Gadget in question.

Module Containers all look like same: each is a large striped area with a message written across the center, which tells you the type of modules that may be added (Player, Mixer, Effect or LayerGroup Item).

Similarly, they also work the same way across Gadgets: to insert a module into a Module Container, right-click on the area, and select a module from the popup menu. To remove a module, click the "Del" button in the upper-right corner of the module.

Module Containers can have an arbitrary number of modules: there is no hard-coded limit to the number of modules you may place in a Container. Depending on the Gadget (and therefore Container type,) a Module Container will either only allow you to have multiple modules simultaneously active (e.g. Effects) or one active module at a time (e.g. Players.)

Module Container types:


 * Player Container : Used by ClipSynths, you can insert Player Modules here for media playback. Only one Player Module is allowed to be active at one time. See more in the ClipSynth section.


 * Effect Container : Used by EffectChains, you can insert and arrange Effect Modules here for application in various ways. Multiple modules may be active simultaneously in this container. See more in the EffectChain section.


 * Mixer Container : Used by the Master Mixer, you can insert and arrange Mixer Modules. Multiple modules may be active simultaneously in this container. See more in the Master Mixer section.


 * LayerGroup Container : Used by LayerGroups, you can insert and arrange LayerGroup Items here. See more in the LayerGroups section.

Module Views




A Module View is another name for the interface of a module, which CoGe generates automatically when it is added. The Module View contains all adjustable controls, organized vertically into rows and labelled with descriptive names, that allow either manual or automated control of module parameters. Some control types do not render directly in the Module View (e.g. Matrices and Color Wells) - instead the name of the parameter is displayed.

Common to all Module Views is a "header row" which contains standard controls:
 * 1) Re-ordering Buttons - left arrows that allow you to move a Module left and right in the container. This is important to EffectChains and the Mixer, because these act as "chains" and the order of active modules can have a profound effect on the result generated. See more in the Master Mixer and EffectChain sections.
 * 2) Module Enable/Disable Button - this button contains the name of the module, and allows you to enable or disable the module.
 * 3) Del Button - clicking the "Del" button removes the Module from the container.

Info Window


The Info window displays the rendering speed (in Frames per Second, or FPS), the size of the RAM Disk and how many Megabytes are free, and the name of the current project.

BPM Clock window


CoGe has an internal clock to which everything is synced (media clips, automations, etc.) The "tempo" or speed of this clock is expressed in Beats per Minute (BPM). The BPM Clock window displays the current tempo in BPM and the current Beat (out of four) visually represented as a moving square. Here you can review and change the current BPM Clock settings. For more info see the Working with the BPM section.

If you are unfamiliar with Beats and BPM concepts in music and video performance, it is worth giving this article a read: Tempo on Wikipedia.

Preview Source Window


CoGe provides two image output windows: the Preview window and the Main Output window. The Preview Window is flexible, allowing you to view any Syphon source (including those generated by CoGe) whereas the Main Output window always shows the output of the Master Mixer.

The Preview Source window allows you to select the image source that will be displayed by the Preview window. In CoGe, the ClipSynth and Master Mixer Gadgets are Syphon sources, so these may be previewed in the Preview Source window. If you have other Syphon applications running, you will also be able to view output from these within the Preview Source window.

By clicking an option from the menu, you may switch between viewing different image sources in the Preview window. Note: Previews are rendered on a lower-priority thread - 1/3 the speed of the current master speed (FPS) in order to minimize system resource usage.

Preview Window
The Preview window will show the image of the source you selected on the Preview Source window. The preview window also forwards mouse events to interactive modules. See the section Interactive Modules for more information.

Main Output Window
The Main Output window always displays the image coming from the Master Mixer. Put another way: this is the final rendered output - in many cases, this is the window your audience will be watching.

You can make it full-screen by choosing the Full-screen Toggle item from the Output menu or by pressing Cmd+F keys at the same time.

Note if you have a second display connected the full-screen output will always be placed on the second display.

Master Mixer Window




The Master Mixer window is the place where mixing or compositing of the image sources occur. This window has two parts:


 * On the left side, you will see the following text: "First layer or output if no mixer selected" and a vertical list of buttons corresponding to all currently available image layers - if any exist. These selector buttons allow you to choose one item at a time to be visible if no Mixing or Compositing module is active. If a Mixer Module is active, this selector will allow you to choose the first channel that will be mixed/composited.


 * On the right side, you see the Mixer Module Container. Here you can add, remove and rearrange mixer modules, as described in the Module Containers section.

It is possible to apply an EffectChain to the final output of the Master Mixer. To enable (or disable) this, Click the "fxchain on" button until it is highlighted and select the desired EffectChain from the adjacent drop down menu. As explained by the Master Mixer Rendering Chain diagram, this EffectChain will be rendered after the Mixer Modules. In other words, all mixing and compositing happens first and then effects are applied.

Note: the Master Mixer also serves as a Syphon Server, meaning that frames coming from the Main Output window can be transmitted to other Syphon-aware applications ("clients").

Working with Mixers
Much like an EffectChain, Mixer Modules work in a cascading, or chain-like manner: the output of a Mixer Module will be the the first input channel of the next mixer in the chain - if any - and the second channel is the layer source you selected with the secondImage parameter of the current Mixer Module.

Audio Analysis Window


Audio Analysis in CoGe allows you to modulate parameters using incoming sound. For example, you could change the amount two videos are mixed by tying the opacity of one source to the overall loudness of the sound in the room through automation.

The Audio Analysis window presents a visual representation of incoming audio coming in through the system-wide default audio input device. The device is assigned to the CoGe application after it is started, so if you change this device after CoGe launches, you just need to click on the Reload button to grab the new audio input device.

The window shows a 12-band EQ-style level meter (graphs "1" through "12") as well as a Volume Peak (graph "P") level meter.

If the input audio is too soft to achieve the desired effect, you can apply an effective gain boost to all values, or just for the peak, lows, mids or high values by the adjusting sliders in the window.

When you have the settings right, you can use this values that Audio Analysis captures as values to drive sliders in other modules, using the right-click Automation contextual menu on the slider you wish to modify. Simply choose Audio Analysis: and select the band/peak you want to assign to the slider.

Aligners


Given the extreme flexibility, modularity and features in CoGe, and the complexity of your project, it can sometimes occur that more windows are needed than can be comfortably viewed on your display. To address this, CoGe introduces Aligners, which are a special type of window that allows you to arrange other windows together into manageable organizational "buckets."

Aligners are designed to sort windows into smaller groups, by showing only one window at a time by layering them like a deck of cards.

By clicking one of the buttons along the top edge of an Aligner you can select which attached window you want to see. It's a standard CoGe Button Matrix, so you can assign Key/MIDI/OSC triggers to each of it's cells.

To create an Aligner, simply click on the A on the left-hand side of the titlebar for a given window. A menu will display, where you can select between creating a new Aligner and attaching the current window to it, or attaching the window to an existing Aligner.

When a window is attached to an Aligner, it displays a U on the titlebar instead of an A, clicking on this field will un-attach the window from the Aligner. Closing an Aligner will un-attach all the attached windows.

An important thing is, all attached windows of an Aligner are still capable of receiving Key/MIDI/OSC actions, regardless of whether the window is the actively displayed one or not.

You may change the name of an Aligner by clicking on the NC field on the Aligner's titlebar.

Setting up the default position of main CoGe windows


In the Behavior section of Preferences you can store the position of main CoGe Windows (all windows above this section excluding aligners.) Briefly: when this setting is selected, CoGe can remember the current state of your windows, and next time you launch they will restore to the same position and size on the screen.

To enable this feature: select "Yes" from the "Restore stored state of windows on startup" drop-down menu.

To store the current size and position of main CoGe Windows as the startup state, click the "Store Current" button. To remove these settings and restore default window positions and sizes, click the "Reset" button.

Buttons
As one of most the frequently encountered interface elements in CoGe, buttons are for switching between two states - on and off. Buttons can be easily assigned to and triggered by a key on your keyboard, a MIDI or an OSC message. Check the Controlling CoGe section for details.

Buttons may be set to work in an optional Momentary mode for MIDI/Key binding by using the the right-click (contextual) menu. If this mode is enabled, the button will only stay in its on state while the controlling MIDI pad/key is pressed.

Sliders


Sliders are the most common elements of the user interface. Sliders are used to adjust a parameter value in a given range (a parameter's name is the slider's title.) Control of the value of sliders is very flexible:
 * 1) Sliders can be manually controlled by the mouse - drag the slider left or right to decrease or increase the value
 * 2) You can set the value of a slider manually to a given value as well, by selecting Set Value: from the right-click menu
 * 3) Sliders can be mapped to keys on your computer keyboard, to toggle minimum and maximum value
 * 4) Assigning MIDI or OSC control messages to a slider allows you to control them with a variety of devices and applications.
 * 5) Mouse X and Y values can be continuously mapped to slider value
 * 6) Automation can be applied through Control modules - applying mathematical modulation (Sine, Square, LFO, Linear) and motion to the slider.
 * 7) You can assign a Behavior module for a slider

Each slider has a button on its the right side - clicking it toggles automation on or off.

You may also set a working subrange within the slider's range (sometimes called "in-out" points) to restrict the values or range of the slider. To set the minimum (in) point of a slider's subrange hold Shift key while clicking and/or dragging with the mouse on that slider. To set the maximum (out) point of a slider's subrange hold Option (Alt) key while clicking and/or dragging with the mouse on that slider.



Automation


To apply Automation to a slider is a very easy task. Right-click on the slider and select the desired modulator from the Control With: or from the Automation: section.

Items in the "Control With:" category are built-in automation algorithms and the items under the "Automation:" category are "Control Modules" such as LFOs, Interpolations and other custom algorithms built in Quartz Composer.

The built-in elements listed in the section Control With: section do the following:


 * Measure position: measure position automates slider position with the current measure (bar) of the BPM Clock window. Measure position is 0.0 on the first beat, and 1.0 after the 4th beat.
 * Mouse X and Y: these values are derived continuously from the mouse location on the screen.
 * Audio Analysis: these values are derived from Audio Analysis and automation can be linked to various EQ bands or to overall peak levels.



After you have selected something from the list, you can toggle the automation on/off by clicking on the button on the slider's right side. This automation toggle button is a standard button, which means you may set a keyboard shortcut or assign a MIDI/OSC message to it.

Automation Behavior


In the Preferences - Behavior section you can select the behavior of automation rendering. There are two options in the drop-down menu labelled "Sliders should process automation:"


 * Always : The default behavior. All automations will always be calculated, even if the module containing the slider is disabled. This behavior will produce higher CPU usage as the calculations are made and the movement of the sliders will continue to be drawn.
 * Only when parent module turned on : This behavior will lead to less CPU usage since the calculation and rendering of automation will be skipped if the parent module is turned off.

Syncing automation between sliders


With CoGe you are able to link the automation of one slider to another, effectively keeping them in sync. To do this, you need at least one slider with automation assigned and toggled "on", which will be the source. Now that you have one slider automated, it can serve as the source for multiple other sliders. Right-click the destination slider, and select the Use Source: menu item. You will see a menu displaying the current Gadget names and a submenu below that that lists all the automated sliders you can use as a source. Select a source you want to sync to, and toggle it on/off with the button on the current slider's right side.

As source slider Automation is changed, all destination slider automations change with it - staying in sync with the source slider. This is powerful behavior, but don't worry too much - using linked automation is safe. If the source slider disappears (say you delete a module), all the linked destination sliders will apply directly the automation previously used by the source to themselves.

An additional feature: The Sequencer's trigger state is also listed as a syncing source. You can read more about on this feature in the Sequencer section.

Behaviors
You can apply a Behavior module for a Slider from the right-click menu. Behavior modules able to do post-processing with the sliders current value, like inverting the value, apply smoothing and more.

Popup menus
Popup menus are simple interface items for selecting one value from a number of choices with the mouse.

Matrixes/Radio Buttons
Matrixes are a group of buttons where you can select only one button of a group at a time (these are also often called "radio buttons"). Since each item is a button, it has all the features of buttons, such as Key/MIDI/OSC assignment.

Color Wells
A Color Well, also known as a "color picker" is a standard Mac OS-like color chooser, which, for certain parameters, lets you select colors and, if supported, opacity value. A Color Well will also display 4 sliders for RGBA values.

Text fields
Within CoGe, a design choice was made to disable immediate one-click editing of many of the text fields you will encounter - especially those that are parameters within Module Views. This was done because editable text fields can catch/intercept mapped keyboard triggers or can interfere with key mapping.

If you encounter an "uneditable" text field, simply double-click it to edit the text. When you are done, press "Enter" to store the new value and disable the field again.

Within text fields, standard copy and paste functions work, and you can also drop files from the Finder into them to bring a file path into the text field.

Gadgets


Gadgets are the building blocks of the modular ecosystem and interface. Gadgets are the most important components of the application, because these items manage layers, effects, etc. and most of the gadget types work in a relationship with the others. Each of them has a special functionality, and you can create as many as you want of them. The basic Gadgets in CoGe are:


 * ClipSynth
 * EffectChain
 * Sequencer
 * SyphonSource
 * LayerGroup

Each of these will be explained in a section below.

CoGe creates a new, automatically-generated and unique name for each new Gadget you add to a project. The typical name is the gadget type followed by a number. If you would like to rename a particular Gadget to something more memorable, you can click on the NC (Name Change) button on the left side of a Gadget's titlebar. You will be provided with a small dialog where you can type the new title for the window. Note: CoGe uses the Titles (names) of Gadgets as unique identifiers inside the application. CoGe won't let you use the same name for more then one gadget.

ClipSynth


At the heart of CoGe is the need to play back media files. A "ClipSynth" is a flexible gadget designed to allow for the collection and playback of many types of media: videos, 3D models, etc. Because of this functionality, ClipSynths are arguably the most common and most important layer source gadgets.

The design of the ClipSynth is fairly simple.

Just below the first row of buttons and drop-down menus is a collection of Media Slots, where you load your media files. To load a file into a Media Slot, simply drag the file from the Finder into a slot.

Below the Media Slot area is a Module Container that holds the various Player Modules that are needed to play back each of the types of media you have loaded. Right-click the striped area and select the players you wish to add. Note: if you have "APS" (Auto Player Select) enabled (the button at the top left of the ClipSynth) then the default players (as defined in CoGe's Preferences) will be automatically added to the Player Modules as media is selected. In other words, if you load a movie file, and don't load a player type, CoGe will load one for you automatically.

The other controls along the top perform the following functions:
 * APS : Auto Player Select - as described above, if enabled, CoGe will load an appropriate player for media clips that don't have one explicitly defined. If disabled, you will need to ensure every media type has a corresponding player.
 * sequencer on and pop-up menu: these two controls enable/disable and select a Sequencer Gadget that will automatically trigger various Media Slots, based on the Sequencer configuration. See that section for more details.
 * fxchain on and pop-up menu: it is possible to apply an EffectChain to the output of a ClipSynth. This is useful when you want a specific effect to apply to all media played back from a collection of items, before it is (potentially) further-processed in later EffectChains or through the Master Mixer.
 * actions menu: The Actions menu allows you to perform various save operations on the list of Media Clips.
 * show players: Enabling or disabling this button shows or hides the Module Container containing the Player Modules. This is sometimes useful to clean up a project's layout.
 * media banks: a matrix with 16 cells, representing the current media bank

More detail on these functions is in the following sections.

Each ClipSynth has a Syphon Server (Output) at the end of the rendering chain with it's name, which allows you to "connect" a ClipSynth's output to one or more Syphon capable application(s).

Media Slots


Media Slots are a basic building block in CoGe. The primary purpose of a CoGe Media Slot is triggering and loading media files. Each ClipSynth has 16 Media Banks, with 16 Media Slots on each, and is designed so that only one of the Media Slots can be active (or playing) at one time. The currently playing Media Slot is highlighted.

Loading a file in a Media Slot is easy: drag and drop a file from the Finder onto it. CoGe automatically generates a preview image of the file (using the Mac OS X QuickLook feature) and displays the name of the file underneath the preview.

You can also drop a CoGe Media Preset file to a Media Slot to load a Media Preset on a ClipSynth. Media Presets are explained in a later section.

To trigger a Slot, you either use your mouse to click on it, or you can trigger it using mapped Key/MIDI/OSC controls.

The Media Slots will show a white circle in the bottom-right corner if the file is loaded on the RAM Disk.

Media Slots Contextual (right-click) Menu
When right-clicked, a Media Slot will display a menu with some additional options:


 * Add Media to RAM Disk: add the file to the RAM Disk. This will not move the original file.
 * Remove Media from RAM disk: remove the file from the RAM Disk. This will NOT remove the file it contains, just remove it from the RAM Disk.
 * Remove Media from Slot: Removes the file from the Media Slot. The slot will return to an empty state.
 * Show in Finder: Reveals the location of the original file (i.e. this function will not open the RAM disk)

Swapping Media Slots


In some cases, you may want to rearrange or "swap" media slots. For example, say you are using the Sequencer to trigger media slots and they are in the wrong order. To swap the location of two Media Slots, hold down the Shift key while you clicking on the first slot. The cursor will "pick up" a copy of the thumbnail. When you click on the second slot the first and second slot media will be swapped.

Note that this works between different ClipSynths too, so you can swap slots between ClipSynth-X and ClipSynth-Y.

Media Banks
A Media Bank is a collection of contents in Media Slots. A ClipSynth has 16 Media Banks, each Media Banks stores the paths of the media files in Media Slots. So when you change the current, selected Media Bank the new file paths will be loaded and available for playback, but Key/MIDI/OSC bindings, MIDI/OSC sending preferences won't change, because those are global values.

Players
Players are the Player Modules inside the Player Container, that handle the playback of the Media Slots content. Many Players come with CoGe, and as with all Modules, you can create your own using Quartz Composer.

To load a module into the container, right-click the container area, and select one from the list.

An arbitrary number of Player modules may be added, but only one can be active at a time.

Toggle Players on and off by clicking the button that contains the name of the module.

APS - Auto Player Select


CoGe also able to automagically create and select a player for a Media Type.

You can define the default Player that gets loaded by APS in the CoGe Preferences.

When this function is enabled (by clicking on the APS button on the ClipSynth's top-left corner) and you trigger a Media File, CoGe search the Player Container for an appropriate Player. If found, the application will automagically switch to that Player. If one cannot be found, CoGe will add a default Player module for the media type, and use it to begin playback.

The number and type of automatically-detected Media Types in the Preferences are hard-coded in the application, but the list will grow with future releases.

EffectChain




An EffectChain contains Effect Modules to use with layers - ClipSynths, SyphonSources, LayerGroups and VideoInputs - and with the Master Mixer. This type of gadget has one section: a Module Container where you can load and manage Effect Modules, and a button to save the EffectChain as a Preset. Effect Modules can be system-wide Core Image Filters or Quartz Composer based Effect modules for CoGe.

All of the Module Views in the EffectChain has a special, Dry/Wet slider with a Blend mode selector, to make you able to fade between the effect off and on state, processed with the selected Quartz Composer based Blend module.

You can use arbitrary number of Effect Modules in an EffectChain, and you can re-order them (see the Module Views section.)

The EffectChain renders effects in a chain. The first turned on Effect Module will use the incoming image from the layer source the EffectChain is applied to. Subsequent enabled Effects will use the image coming from the previous Effect, and so on.

For example, if you have two enabled effects: the first a Vertical Mirror, the second one a CMYK, the Vertical Mirror effect will apply on the "dry" image coming from the targeted layer, and the CMYK effect will be applied to the Vertical Mirror-ed image.

An EffectChain only renders its enabled effects if the layer or Master Mixer that it is assigned to is in use, and the Effect Chain is enabled within that gadget.

The flexibility of CoGe allows you to assign the same EffectChain to multiple layers and the Master Mixer or assign different EffectChains to all or some of these.

Sequencer


A Sequencer is designed so that you can rhythmically trigger the various Media Slots of one or more ClipSynths in a specified order. If you are familiar with step sequencers from the world of electronic music composition, the basic idea of CoGe's sequencer will make sense quickly. With the Sequencer you can also send values between 0.0 and 1.0 on points where Trigger are enabled. This values can be linked to sliders as a syncing source with the name Current Value.

The Sequencer gadget is comprised of a row of sixteen "trigger" buttons, which correspond to the sixteen Media Slots in a ClipSynth. By enabling these, you are signaling the sequencer to play back the media in the corresponding Media Slot. Below the row of trigger buttons is a visual indicator showing the current step in the sequence that is firing.

The playback speed and cadence of the Sequencer is determined by the position of the standard CoGe Slider labelled "Driver." Like all sliders in CoGe, you can control how it moves with your mouse, MIDI/OSC or automation. Right-click the slider and choose the automation or source you wish to move the slider. To activate the sequencer, click the button next to the slider.

CoGe also includes some shortcuts for setting up typical playback sequences. The 2nd and 4th buttons will light up every second and fourth trigger, and the entire sequence can be shifted left or right using the < and > buttons.

An additional creative possibility: a sequencer's current triggering state ("on" or "off") also can be linked to other sliders as a syncing source. When a trigger button is on, the linked slider will move to its maximum, and when it is off, the linked slider will move to its minimum.

SyphonSource




A SyphonSource is a simple layer source, and contains only two interface elements. It pulls in the frames from a Syphon Server source, and allows you to apply on EffectChain to it before using the rendered image in CoGe. The outgoing image from a SyphonSource can be used in the Master Mixer - it will be listed with the ClipSynths - and in all modules programmed in Quartz Composer to use an inputImages parameter.

With the Source: Popup menu you can select any available Syphon server. With the other popup menu you may select an EffectChain and the fxchain on button will toggle on/off the EffectChain you have selected.

SyphonSources also function as a Syphon Server at the end of their rendering chain. With this functionality, it is easy to pull in frames from one Syphon Server, apply effects to them in CoGe, and feed them back to another Syphon Client.

Layer Group


A Layer Group is a gadget for managing multiple CoGe Layer Sources, such as ClipSynths and SyphonSources.

A Layer Group is a layer source too, so you can mix them together with other layers in the Master Mixer.

Layer Groups also have a Syphon Server at the end of their rendering chain, so you can use a Layer Group output as a source for other Syphon-capable applications.

As you might expect, you can apply an EffectChain to a whole Layer Group or to individual Layers within.

A Layer inside a Layer Group is called a Layer Item. You may add a Layer Item to a Layer Group by right-clicking on the Layer Items Container - the striped area inside the Layer Group - and selecting one from the list. The newly added Layer Item will be the new top layer.

All Layer Items have the following controls:


 * On/Off button: This button is labelled with the Layer Source's name, and can be used to toggle a Layer Item on or off. To change the source for the Layer Item, right-click it, and choose a new one.
 * Blend mode popup: This popup menu lets you select the - Core Image based - blend mode of the Layer. These blend modes are system-wide, GPU accelerated Core Image blending modes.
 * Opacity slider: A Slider where you can change the current Layer's opacity.
 * FX Toggle Button and FX Chain select popup: You can apply an effect chain to each Layer Item, and enable that Effect Chain using these controls.
 * Re-order buttons: Two buttons with Up and Down arrows. With these buttons you are able to change a Layer Item's position inside the group.
 * Close button: A Button labelled X for removing the layer from the Layer Container.

Video Input
The VideoInput Gadget in CoGe supports the use of Quicktime-compatible video input devices (connected via USB, FireWire, PCI or Thunderbolt) such as webcams, digitizers and capture cards as a Layer Source. A VideoInput Gadget has its own Syphon Server like any other Layer Sources in CoGe.

The VideoInput Gadget is laid out just like the SyphonSource Gadget, and it works in a similar way. The first popup list is used to the source device. You can apply an EffectChain to the input by enabling the "fxchain on" button and selecting an existing EffectChain from the rightmost popup list.

Also like the SyphonSource Gadget, you can use arbitrary amount of VideoInputs. However, capturing live video requires significant computing resources and bandwidth. The bandwidth needed is dependent on the dimensions of the incoming video signal and as a result, the maximum number of usable Video Inputs is restricted to the speed of the chosen input bus.

For example, you can only use one FireWire input at a time. This is not a restriction of CoGe, but rather a restriction of the bandwidth of the FireWire bus. If you need multiple sources, the recommended way is to use different source types (e.g. one USB + one FireWire + one Thunderbolt.)

Video Input in CoGe always uses the the video input hardware's native resolution and codec, so it may resize to fit the rendering resolution settings.

Controlling CoGe


CoGe supports easy binding of keyboard keys, MIDI and OSC controllers to most of the interface elements - including buttons, sliders, matrixes and media slots. Each element of the interface may have one key, one MIDI and one OSC binding at the same time. This section describes how to accomplish this using CoGe's mapping features.

Using Key/MIDI/OSC Maps


Assigning Key, MIDI and OSC mappings to interface elements in CoGe is easy. By using the Show/Edit menu items under the Maps menu, you can turn on the mapping mode for the kind of controller you wish to assign a function to. The method for binding controls is the same for all types:


 * Select the mapping mode you are interested in by choosing an item from the Maps menu, or by using the associated keyboard shortcuts: Key - CMD+k; MIDI - CMD+m; OSC - CMD+O.
 * All bindable interface controls will show a red overlay.
 * Select an element by clicking on it. The currently selected interface element will show a white border.
 * Now press a key, use a MIDI control or do something with your OSC client.
 * CoGe will bind the control, and display the bound control in white text on the interface.

If you want to remove a binding from an interface element, select it while a mapping mode is active, and press the Delete key.

When you are done assigning bindings, select the menu item (or press the keyboard shortcut) of the mapping mode again, and the mode will be toggled off.

To quickly review bindings for a given mode, select the Show/Edit menu item for Keys, MIDI or OSC.

Notes:
 * CoGe binds the first incoming Key/MIDI/OSC signal to interface elements. You cannot bind a control 'chord', for example.
 * For Key bindings, you may only use alphanumeric characters, punctuation and the Space key, special keys like function keys cannot be used.
 * To set the OSC Port and IP address, open Preferences from the CoGe menu and click the "OSC" tab.
 * With incoming OSC messages, CoGe expects floating point values between 0.0 and 1.0, for example: /thenamespace 0.32

Assign Detected MIDI/OSC Inputs to controls


In some cases using the Key/MIDI/OSC mapping modes are not the most practical method for binding controls.

For example, if you want to assign MIDI/OSC events from an other application or if you want to use another type of MIDI control rather then a note or a slider/fader. In many cases like these, more than one MIDI or OSC signal is being passed, so it is difficult to predict whether the first one CoGe sees (and then binds to) will be the right one. What is needed is some way of directly selecting a MIDI or OSC message as the binding.



During a session, CoGe stores all incoming MIDI and OSC signals that provide a usable value, including MIDI Velocity/Pressure/Aftertouch messages.

You can display these incoming signals in the Detected MIDI/OSC Inputs window. You can remove signals from the list by clicking on the elements and pressing the Delete key.

All of these signals may be assigned to interface elements in CoGe. Right-click a slider, button, Media Slot or Matrix Cell and choose an item from the Assign: section. To remove a MIDI/OSC mapping from a slider/button, choose Remove from this same menu.

Sending MIDI and OSC messages from CoGe
CoGe has built-in functionality for sending the actual tempo (BPM), and every control items how can controlled by MIDI and OSC also can send MIDI and OSC messsages. This makes CoGe not only a powerful consumer of OSC and MIDI, but a publisher too.

Sending the BPM with OSC


In CoGe, you can send the current BPM via OSC by turning on the BPM Send button on the BPM Clock.

With this feature enabled, CoGe will send a message to the outgoing IP and Port defined in the OSC Preferences when the BPM value changes, with the namespace /cogebpm and the current BPM value as a float.

An example for the sent message: /cogebpm 128.0

Using the MIDI and OSC Talkback
When MIDI or OSC Talkback selected as the sending option on the MIDI Preferences or OSC Preferences sending will automatically enabled for those controls which have mapped or assigned MIDI or OSC controls - with the mapped or assigned control settings (MIDI channel, Note/CC, OSC namespace).

By using Talkback function, whenever a control - which has mapper or assigned MIDI or OSC control - get action from you by mouse, keyboard, MIDI or OSC, an exact same message will be sent back to the MIDI device and/or OSC client with the new value. If you MIDI device and/or OSC client are capable to receive messages, they will show the actual state of the control like in CoGe.

Sending values and states with MIDI or OSC




Almost every controls in CoGe can send MIDI and OSC messages - except matrixes. You can enable this feature by right-clicking an element, and selecting Enable MIDI/OSC sending. You can also edit the sending-related preferences from the right-click menu also.

MIDI messages will be sent to all available MIDI devices (have enabled output port in MIDI Preferences) on the channel set up in the sending preferences.

OSC messages will be sent to the outgoing IP and Port you defined in OSC Preferences, with the name you defined for each slider/button. By default, CoGe uses the title of the slider/button as the OSC namespace. An important thing to remember with these values: CoGe will always send float values between 0.0 and 1.0, so a turned-off button will send a value of 0.0 and a turned-on button will send a value of 1.0 with the name you defined.

Displaying controls sending MIDI or OSC messages
If you have a project with lots of controls sending MIDI or OSC messages, its a good thing to pointing out how-sends-for-how. You can display the enabled - so currently working - MIDI and OSC senders from the Output menu, by clicking on the Show/Hide Enabled MIDI or OSC senders. All enabled senders will be marked with blue on the CoGe interface, with a white text displaying the MIDI Channel and Note or CC number, and the value sent - 0-126 when the sender type is CC, or Noteon/Noteoff whenever the sender type is Note. For OSC senders, you will see the full message last time sent.

Projects
A project file (with the extension .coge) stores everything you set up: all the information about the user interface, window locations, the state of the user interface elements, applied automations, loaded media files, set Key/MIDI/OSC assignments, the size of the RAM disk, and all preferences including rendering size, fps, etc.

In other words, when you select "Save Project" from the File menu (or press CMD-S), you can be sure that CoGe will have everything the way you want it when you reload the project (from File menu Load Project, or by a double-clicking on the project file).

When a saved file is loaded, you will see the name of the project in the Info window, next to the label "Current project:". Subsequent saves will overwrite the file. To save a copy of the file with a different name, choose Save Project As... from the file menu or just press CMD+SHIFT+s.

Upon loading a project, CoGe will do a quick search for all the files used by the project including media files and modules. If something is missing, CoGe will ask you to manually relocate the file, do a Spotlight search for it, or Skip the searching and continue the project loading without that file.

When a project is saved or loaded, CoGe will display a message about the success of the operation.

Project files can be previewed in Finder via Quicklook, by selecting the project file and pressing the spacebar or by selecting Quicklook from the Finder's options.

Presets
Whereas Projects store entire CoGe layouts, Presets are a way of saving part of one project for reuse in another. There are several types of preset in CoGe, and can be previewed in the Finder with Quicklook.

CoGe Media Preset
A Media Preset (extension .cpr) contains all of the file paths of a ClipSynth's Media Slots. It can be saved by selecting and clicking on the Save Media Preset menu item from a ClipSynth's actions: popup menu. To load a Media Preset file, drag and drop the file to one of ClipSynth's Media Slots.

CoGe ClipSynth Preset
A ClipSynth Preset (extension .ccs) - contains all of the information about a ClipSynth, including all the filepaths on the Media Slots, loaded modules, the selected modules, Media Slot, assigned Key/MIDI/OSC controls, etc. It basically stores a complete ClipSynth for later reuse. It can be saved by selecting and clicking on the Save Synth menu item from a ClipSynth's actions: popup menu. To load a ClipSynth file, just double-click on it in the Finder.

CoGe EffectChain Preset
An EffectChain Preset (extension .cfx) contains all of the information about an EffectChain, including all the loaded modules, current states, assigned Key/MID/OSC controls, etc. It basically stores a complete EffectChain for later reuse. It can be saved by selecting and clicking on the Save Chain button on an EffectChain. To load an EffectChain file, just double-click on it in the Finder.

The Projects and Presets Explorer


The Projects and Presets Explorer - available from the File menu is designed to help you to browse, preview and load your project and preset files in a very simple way. For each type (project, preset) it presents you with a table displaying various aspects of the file.

For both types, you can see a list of file names, which is sortable. The QuickLook column contains buttons that, when pressed, let you preview the file by showing OS X's QuickLook view. At the right side of the table is a column of Load buttons. Clicking these will let you load the project or preset.

For presets, there's an additional sortable column displaying the type (e.g. EffectChain, Media Preset, ClipSynth etc.)

Note that, when you try to load a CoGe Media Preset file, CoGe will ask into which ClipSynth the file should be loaded.

CoGe and Quartz Composer
As the Modularity section already described it, CoGe uses Quartz Composer heavily for its modular ecosystem. In this section you'll find the module-specific input types with some notes. For a basic overview about how to create a Quartz Composer module for CoGe with published inputs please read this tutorial: http://www.cogevj.hu/blog/2011/create-a-simple-effect-for-coge-with-quartz-composer-part-1-rotation/

Note: if you installing Quartz Composer modules while CoGe is running, the new modules won't be listed until you click on Refresh Module Lists in the Interface menu

Standard Input Types
When you publish an input from a Quartz Composer composition, it will appear in CoGe as a standard UI element - depends on the type. Types not listed here won't be appear on CoGe's interface.


 * Number: a standard CoGe Slider between the Minimal and Maximal values you set up in Quartz Composer's Input Splitter Inspector.
 * Index (without Labeled Indicies: a standard CoGe Slider between the Minimal and Maximal values you set up in Quartz Composer's Input Splitter Inspector.
 * Index (WITH Labeled Indicies): a standard CoGe Matrix/Radio Button.
 * Boolean: a standard CoGe Button.
 * String: a standard CoGe Text Field.
 * Color: a standard CoGe Color Well, with a color picker and 4 sliders for RGBA values.

Special Input Types
Each of the module types have some special named input for getting special values from CoGe if needed, but almost all modules types have required inputs or outputs as well. Special inputs and outputs always needs to be ported from Quartz Composer by using those special names, listed below.

You can also find this special names in Quartz Composer files inside your CoGe folder's modules/templates folder.

Special Input Names for Effects

 * inputImage: required Image type input, CoGe will send the current frame to the effect thru this input port.
 * inputImages: optional Image type input. If exists in a module, CoGe will create a Matrix/Radio Button on its interface populated with the available layer sources (ClipSynths, VideoInputs, etc.)
 * fontName: optional String type input. If exists in a module, CoGe will create a Popup menu on its interface populated with the available fonts with font-preview as well. Best use with the Image With String Quartz Composer patch.
 * currentBeat: optional Number type input. CoGe send values between 0-3 thru this port, represents the current beat from CoGe's BPM Clock window. Won't create anything on CoGe's interface.
 * measurePosition: optional Number type input. CoGe send values between 0-1 thru this port, represents the current bar (a bar is 4 beats) position  from CoGe's BPM Clock window. Won't create anything on CoGe's interface.
 * bpm: optional Number type input. CoGe sends the current BPM  from CoGe's BPM Clock window. Won't create anything on CoGe's interface.
 * pixelsWide: optional Number type input. CoGe sends the rendering width thru this port, in pixels. Won't create anything on CoGe's interface.
 * pixelsHigh: optional Number type input. CoGe sends the rendering height thru this port, in pixels. Won't create anything on CoGe's interface.

Output to CoGe


If your module output type is an image (when your module is an Effect, for example), its highly recommended to use a renderer patch like Billboard, Sprite, etc. with a Clear patch to render your composition.

But if your composition's last patch something which has an image type output, you can use a published image type with outputImage name alternatively - CoGe will care about it and will render it together with the next renderable patch, which possibly saves some performance for your.

Tutorials

 * Prepare your movie files for CoGe: http://www.cogevj.hu/blog/2012/prepare-your-movie-files-for-coge/
 * MIDI and OSC Talkback: http://www.cogevj.hu/blog/2012/coge-1-3-midi-osc-talkback/
 * Connecting CoGe to MadMapper via Syphon: http://www.cogevj.hu/blog/?p=49
 * Sending multiple layers from CoGe to MadMapper: http://www.cogevj.hu/blog/2012/sending-multiple-layers-from-coge-to-madmapper/
 * Record your set via Syphon Recorder: http://www.cogevj.hu/blog/?p=66
 * Midi Clock Sync with Ableton Live: http://www.cogevj.hu/blog/?p=112
 * Sending MIDI messages directly to CoGe from Ableton Live: http://www.cogevj.hu/blog/?p=127
 * Using TouchOSC with CoGe: http://www.cogevj.hu/blog/?p=143
 * Using Lemur with CoGe: http://www.cogevj.hu/blog/2013/using-lemur-with-coge/
 * Create a simple effect for CoGe with Quartz Composer - Part 1. - Rotation: http://www.cogevj.hu/blog/?p=195
 * Using animated gifs in CoGe and Quartz Composer: http://www.cogevj.hu/blog/2012/animated-gifs-in-coge-and-quartz-composer/
 * iPhone/iPad as an input in CoGe using Airbeam and Syphon: http://www.cogevj.hu/blog/2012/iphoneipad-as-an-input-in-coge-using-airbeam-and-syphon/

Video tutorials
Video tutorials are available on Vimeo: http://vimeo.com/album/1644643

3rd party tutorials
Beginners Tutorial by Ian Campbell: http://vimeo.com/groups/coge/videos/28405881

How could I record the output to video?
On the software side, with Syphon Recorder: http://syphon.v002.info/recorder/ You can even use capture cards or multimedia recorders on the hardware side.

I lost my license. What should I do?
Drop me a message from the website (http://www.cogevj.hu) with your order details (e-mail and Order ID).

Is CoGe compatible with 10.9 Mavericks?
Yes, basically it is, however, you should read this info: http://www.cogevj.hu/forums/viewtopic.php?f=23&t=1937

I have some feature requests!
Cool! Please read this topic: http://www.cogevj.hu/forums/viewtopic.php?f=23&t=1702

Where can I find info about the changes in the latest releases?
Here you go: http://www.cogevj.hu/forums/viewtopic.php?f=23&t=740

Do you provide public betas?
Of course: http://www.cogevj.hu/forums/viewtopic.php?f=23&t=1069

I found a bug. What should I do?
Please report the bug to me, by using the forums (http://www.cogevj.hu/forums) or via e-mail (http://www.cogevj.hu).

CoGe crashed. What should I do?
When you will launch the app next time, a crash reporter window should appear. Please fill the form, describe what did you do before the app crashed, and please give me your contact details, so I can ask you about the issue and even let you know about the progress on fixing the issue. Don't worry if you have no internet connection, the app will remember that issue and will send me the report next time when you will online. More info: http://www.cogevj.hu/forums/viewtopic.php?f=23&t=575&p=2408#p2408