User interfaces connect to hardware directly and over complex networks. The protocols required for these connections are designed for reliability, functionality and good performance. DeusO's AES70 libraries are designed to bring all these aspects together.
DeusO is developing the tools to make the AES70 standard, Open Control Architecture (OCA), the control protocol of choice, both for controller and device side implementations. We use code generation to transform the published standards documents into accurate and performant AES70 libraries.
As a member of the OCA Alliance, DeusO actively promotes the adoption of AES70 as the control protocol for the audio and broadcast industries. We do this both by contributing to the AES70 specification itself, as well as demonstrating the benefits of AES70 at trade shows like ISE, IBC and NAB.
AES70 Optimized Device Libraries
A major part of the AES70 standard is an interface specification for objects which can be used to model the functionality of an audio device. This interface specification is published in a machine-readable format which makes it suitable for generating source code directly from the specification. This approach saves our customers both time and material hardware costs.
Code generation makes it possible to create and maintain separate implementations for specific use-cases instead of working with a One size fits all library implementation. This reduces hardware requirements and allows our libraries to scale naturally with device requirements.
libAES70.cpp is a C++11 template library. It is ideal for device implementations that need a fast, low latency control solution with minimal resource requirements.
libAES70.cpp is designed as a data structure agnostic library allowing it to be integrated seamlessly with existing application code. It avoids using dynamic memory, exceptions and rtti which makes it a perfect fit for embedded applications and real time environments such as RTOS.
C# .NET framework
libAES70 for .NET is a complete AES70 controller library written and generated in C#. In addition to implementing the full AES70 class specification, it contains convenient abstractions for common use-cases. It is suitable for developing GUI as well as server side applications.
The C# for .NET implementation contains a large collection of tests which we run against other AES70 implementations to make sure that we are both standards compliant and compatible. The library is available under a standard commercial license and is compatible both with Microsoft's Visual Studio as well as Mono.
AES70.js for Web Applications and Node.js
AES70.js is also available under the terms of the GPLv.2 to encourage the adoption of AES70 and to provide client side development tools to the open source community. You can find AES70.js at Github or using npm package manager.
Our code generation technologies provide a cost effective way for implementing AES70 gateways. The costs surrounding manual implementation can be greatly reduced while accuracy improved, and replicated over time.
An existing product's API or object structures, such as Ember+ trees, are exposed as apparent AES70 devices. Our approach to gateways includes both native installation or as a proxy (network device). This allows for extending a gateway to provide custom functionality or to incorporate transition strategies.
We demonstrated an AES70 <-> OSC gateway with the FreqMaster evaluation at ISE + NAB 2018. The product simulation exposed a series of OSC controlled DSP plugins as AES70 objects and included an AES70 compliant user interface. Linked In Article.
Code generation also keeps maintenance in mind — updates to protocols can be incorporated and regenerated at a far lower effort than strategies relying on manual programming.
Custom AES70 libraries
For full controller libraries, talk to us about the kinds of useful abstractions you might like. It's possible to custom design and generate a complete controller library with a road map for device or protocol dependent re-generation needs.
Device Side Libraries
We can guide you through the process of providing device definitions and propose the most optimal approach to integration. Considerations include space, bare-metal systems (no OS), device parameter types or private class needs (proprietary functionality).
Implementing AES70 can be a daunting task, especially when done from the ground up without the right tools and strategies. We can provide you with both the strategies and the tools.