Skip to main content

AyyiGtk

-> -> Improvements to language bindings

AyyiGtk is currently the main Ayyi client application.

This conventional general purpose audio/midi sequencer gui is written in C and uses the Gtk+ toolkit, and Opengl. The code is separated into 3 layers; the application layer, the Model layer which provides reusable objects for Parts, Track, etc, and the Ayyi C client lib which provides low level access to the system.

It is built around the concept of Panels. Any number of panels can be arranged as desired. Panels can be statically linked (in-application), dynamically loaded (in-process plugins), or even separate processes (external plugins). Panels can be linked together so that selections in one panel follow selections in other windows. Multiple simultaneous views provides maximimum insight and control over the project document

Other aspects - not fully developed - include svg theming, support for standard gtk theming wherever possible, unlimited object scaling/sizing, and pervasive colour coding of document objects.

Window docking is handled by a modified version of GDL Dock. Any window pane can be dragged to any other. It is close to functionality provided by Ion or Adobe CS3, but keyboard control and full screen pane switching are not yet implemented.

The ideas behind AyyiGtk are not new, as the ui and production software genres are quite mature and well defined these days, but still lack a good implementation in FOSS.

Efforts have been made to keep the display uncluttered. Heavy use is made of context menus rather than add too many buttons. Some enhancements to menus, such as keyboard shortcuts and drag n drop are in place, but still incomplete.

See the user section for information on current functionality.

The Arrange canvas

The main canvas now uses OpenGL. You can switch to the old GnomeCanvas view at runtime using the View menu. The canvas rendering is very fast and makes use of shaders and frame buffer caching.

Contextual help

The Help window shows context sensitive html information.

Html support is provided by Webkit.