In past incarnations of Smaart, most notably SmaartLive v4 and v5, we incorporated control of 3rdparty DSP devices into the analyzer’s user interface. This integration provided an elegant tool for system engineers to directly adjust their systems as they were measuring them, and proved to be favorite feature with our users. Given when these device interfaces were first created (early to mid 2000’s), they were relatively simple in nature as were the devices they controlled. However, as the power of our industry’s control technology expanded, became more powerful, flexible and generally just cooler, it became impractical to represent and control the full capabilities of those devices and their intricate control environments as simple interfaces within the Smaart GUI.
The answer presented itself with a rather simple solution in 2004 when we undertook an integration project with a powerful new device called the Lake I/O – instead of trying to recreate the DSP’s control environment within Smaart, why not just put measurement controls and data into the 3rd party’s control environment? Unfortunately, while eventually successfully implemented and well received, it was certainly an example of “far easier said than done.” The Smaart codebase to that point had never been designed for that type of integration, and the development efforts and code contortions required were nothing that we’d ever like to repeat. Consequently, when we built the Smaart v7 codebase, we did so with far easier 3rd party collaboration in mind.
There are now two ways in which Smaart can interact with and enhance third party programs – via implementation of Smaart’s API (Application Programming Interface) or by licensing Smaart’s measurement code modules for direct integration into the 3rd party products.
The Smaart API (SAPI)
The Smaart API represents the quickest and easiest way for developers to provide Smaart integration in their products. SAPI allows 3rd party applications (Clients) to query and issue basic commands to any operating copy of Smaart (Host) as well as request the output data of any of its running measurements. Access to, and use of Smaart’s API by 3rd party developers is provided without fee on request, and because SAPI is integrated into the program, any installation of Smaart can be enabled to act as a host via a simple checkbox in the programs options controls.
The primary use case for SAPI is to allow external applications to obtain measurement data from Smaart and plot it in their own environment. Smaart measurement engines run in real time and are capable of producing large amounts of data. This data is being sent over the wire and if transmitted in real time could easily swamp the local network. To alleviate these concerns SAPI uses a request/response paradigm. No data is served unless explicitly requested by a client. This allows clients to control the update speed and thus throttle how much data is being transmitted and how often. Note that Smaart will process data independently of the update speed of clients. Thus regardless of how often a client requests data, Smaart will continue to process data in real time.
One of the design requirements for SAPI was to be platform and language independent thereby enabling clients written in any language and running on any platform access to the API. To facilitate this requirement all communication with SAPI is done over a simple TCP/IP connection.
Developers that are interested in obtaining a copy of the SAPI SDK (Software Development Kit) or for more information should contact firstname.lastname@example.org.
Our API is currently utilized in the control software for the following products*:
- Lab.Gruppen Lake LM44 and LM26 System Processors, and PLM series amplifiers.
Visit www.labgruppen.com for more information.
- Apex Intelli-series Analyzer Bridge enabled System Processors
Visit www.apex-audio.eu for more information.
- Studio 6 Digital “iRemote” app for iOS.
Visit www.studiosixdigital.com for more information.
*Each version of Smaart has its own API. The above programs do not yet support v.8’s API but do however support v.7 and v.7 Di.
Licensing Smaart Code Modules for 3rd Party Programs
For some 3rd party developers, a SAPI-based (Client/Host) solution for integrating Smaart measurement technology into their products may be too cumbersome or impractical. In those cases, licensing Smaart code modules for implementation within their applications may be the best solution. Again, the good news here is, when we built Smaart, we did it with specifically this type of code portability in mind. The fundamental object-oriented nature of our codebase makes breaking out virtually any process in Smaart for licensing into other programs or devices a relatively simple endeavor.
Again, developers that are interested in licensing Smaart code modules for integration into their products or for more information should contact email@example.com.
Smaart Measurement Code Modules are currently integrated into the following products:
- PreSonus Universal Control software, bundled for use with the StudioLive 16.4.2, 24.4.2 and AI-series mixers (16.4.2AI, 24.4.2AI, 32.4.2AI, RM16AI and RM32AI)
- Studio 6 Digital “Smaart Tools” for their AudioTools suite of apps for iOS
Visit www.studiosixdigital.com for more information.