This is the second part of the Andiamo reference manual. It describes the installation process, overview of the interface and configuration files.
At this time Andiamo can be run only as a Processing sketch. It depends on a number of external libraries: GSVideo, GLGraphics, oscP5, traer.physics, proTablet and proGPUKLT. The dependency on GSVideo doesn’t allow to export Andiamo as a stand-alone application yet, so the project should be open from the Processing PDE and run from there (or from Eclipse, but I haven’t tried this option). The distribution of Andiamo available at sourceforge consists of two zip packages: Andiamo020.zip and libraries020.zip. The first is the complete sketch folder for Andiamo v20, while the second contains all the required libraries. The contents of the library package should be copied to the contributed libraries folder. All the required libraries could be downloaded separately from their respectives sites, but newer versions might not work with Andiamo 020.
The feature tracker included in the proGPUKLT library requires a recent NVidia video card in order to work, and might prevent Andiamo from running, even if it is not used. To completely disable GPU-KLT, there is a global variable that can be set to false, DISABLE_KLT_GPU_TRACKER. This variable is defined together with other hard-coded constants in the top of the Andiamo020.pde file, right after the library import section:
Andiamo’s interface is divided in two major areas: input and output. The input area contains:
- the interface widgets for setting options, changing parameters, etc.
- the drawing surface that captures and displays the gestures generated with the graphics tablet.
- the preview window showing the current layer composition.
The output area’s sole purpose is to show the resulting layer composition in a separate screen region, in order to facilitate its display on a separate monitor or projector, without any of the interface elements overlayed on the input area.
Both input and output areas can be show in the same window, or in two separate windows. The only advantage of the first approach (one window) is a slightly better performance, since rendering two independent windows has a small penalty in terms of frame rate (around 5 or 6 fps).
Having input and output on two separate windows also facilitates switching between different applications on the screen that contains the input window (for example, to control sound from another software).
Furthermore, the output area can be disabled altogether, which can be convenient when testing or practicing. These different modes are controlled with a few global variables, located at the beginning of the Andaiamo020.pde file, after the imports section:
These global variables, highlighted in the previous figure, are: SHOW_OUTPUT_SCREEN, SINGLE_SCREEN, OUTPUT_POS_X, OUTPUT_POS_Y, inputWidth, inputHeight, outputWidth and outputHeight. SHOW_OUTPUT_SCREEN enables/disables the output region. If this variable is set to false, then the remaining ones (with the exception of inputWidth and inputHeight) don’t have any effect. SINGLE_SCREEN enables/disables the display of the separate output window. When the output window is enabled, its location can be controlled with the OUTPUT_POS_X and OUTPUT_POS_Y variables. For example, if the computer is connected to a second display (e.g: a projector) and the desktop spans across both displays, OUTPUT_POS_X should be equal to the width of the first display, if the goal is to render the output window entirely inside the second display. When SINGLE_SCREEN is false, this is, input and output areas have their own separate windows, then the size of these windows are set with inputWidth, inputHeight, outputWidth and outputHeight. The meaning of these variables change in the single screen mode, in which case inputWidth and inputHeight are taken to be the size of the whole window, while outputWidth and outputHeight are used to determine area of this window that is assigned to render the output.
The output window don’t have any function other than render the final visual result of the layer composition, and therefore it doesn’t have any interactive element. The input window (or region), on the other hand, is further subdivided in three areas: preview, messages and main menu:
The preview area contains the main rendering/drawing/interaction surface and also the contextual menus that are used during most of the program’s operation. These menus are usually hidden, and only a thin semi-transparent tab is visible on the edges of the preview area for each menu as the pen is hovered (without pressing the tablet) over the preview area.
When the pen is pressed against the tabled, then the menu tabs dissapear as well:
Hovering the pen over the menu tabs will make the menu to unfold:
The figure above shows the layer selection menu, that corresponds to the tab on the right edge of the preview area. This menu is not contextual in the sense that it doesn’t depend on the selected layer. All the layers in the current composition are shown as rectangular icons in the strip that defines the menu, and they are sorted in descending order (the top-most icon corresponds to the firs layer in the composition, and so on). From all these layers, there is one marked as selected, meaning that most of the input events (tablet, keyboard, mouse) will be channeled to it. The selected layer appears highlighted with a red outline, and to select another layer the the pen’s button (which corresponds to right button on a regular two-button mouse) has to be clicked when the cursor is over the layer to be selected. If there are more layers than space available on the strip, they can be scrolled up or down by pressing and moving the pen up and down along the strip (on a regular mouse this corresponds to click with the left button).
Another menu that is not contextual is the color selector, that corresponds to the smaller tab on the left of the preview area:
This menu allows to set the tint color (using HSB sliders) and transparency for the selected layer. Then there are two contextual menus, meaning that they contain options that depend on the selected layer, which are the top and bottom layer menus. It may also happen that certain layers lack one or both of them. In the following screen captures, the top and bottom menus shown correspond to the video layer, which will be explained in detail in the next part of this manual.
Finally, the main menu activates when hovering the pen tablet on the black area on the left of the screen:
The current layout of the main menu is quite provisional at this point, and will change substantially in future releases of Andiamo. In its current form, it allows to enable/disable the GPU-KLT tracking, add/remove filters and set the tint/transparency of the output render.