Music software is typically complex and subject to hard real-time and computer resource constraints. Such software is very carefully designed and implemented in a structured modular manner, often using object-oriented techniques.
Extending such software requires that both the original 'host' software and the extension modules agree an appropriate protocol (for data representation and interaction) via which each can communicate with, pass data between, negotiate with, control and be controlled by the other.
The module aims to present, explain and discuss musical data representation and data structures, event editing, data transfer, timing and sequencing constraints and real-time event data manipulation techniques in the context of music software plug-ins.
Students will study the bi-directional communication requirements/APIs that must be implemented by host and plug-in.
This module explores the major industry-standard 'plug-in' or 'extension' mechanisms and protocols as well as several examples of 'toolbox' or 'hosting' libraries and applications.
On successful completion of this module, the student will be able to
Student achievement will be measured by In-Course Assessment.
Music APIs and Libraries and Windows GUI Programming are pre-requisites for this module.
This module must be taken in conjunction with Music Application Development.