Isomet Modular Synthesiser (iMS) API  v1.4.2
iMS API
Software Library Architecture

Software Library Architecture

Figure 1 below provides a conceptual view of the architecture of the iMS Software Library. It does not represent a structured class diagram of the internal library detail but should give an initial feeling for how the library is constructed.

QDW-09-03-020 iMS Software Library Architecture.gif
(Figure 1) Library Architecture Overview

Connection List and IMS System

These two modules represent the lowest layer of communications with the iMS hardware present in the library. ConnectionList maintains an internal knowledge of how to interact with the hardware across all supported connection types. This is abstracted so that other parts of the library can communicate with the hardware irrespective of the connected interface.

IMSSystem maintains a working knowledge of the capabilities, configuration and detail of the connected system so that both the application and internal library elements can determine what it can and cannot do and how to reinterpret data in a format that is suited to the hardware.

Features

The features are a suite of functional blocks that are a bit like the library books of the library. Each knows how to perform a particular function that is associated with the overall iMS functionality.

Compensation Tables

iMS Synthesisers contain a set of frequency-addressed look-up tables for applying various compensations to the RF signal output. The tables are indexed by the nearest programmed frequency to the current frequency being output by that RF channel. Table entries are linearly spaced in frequency starting from the lowest frequency supported by that Synthesiser up to the highest frequency supported. The number of entries in the table is hardware specific.

Compensations available include:

Images / Image Files

This set of classes are used for creating the core RF image data that is at the heart of the Isomet iMS concept. An Image File can contain one or more iMS images plus a sequence table that defines the default order for playing back images, the conditions for triggering images, numbers of repeats, image point rate, delays and other vital data. An image itself is composed of image points (from 1 up to many millions), each point consisting of up to 4 RF channels with independent specification of frequency, amplitude and phase and optional synchronous output data.

Utilities

Additional Utility functions exist for supplying the version information for the API (LibVersion) and useful type definitions for frequency (in kHz and MHz), amplitude (as a percentage) and phase (degrees from 0 to 360) amonst others.