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 adjust their systems as they were measuring them directly, and it proved to be a favorite feature with our users. When these device interfaces were first created (early to mid-2000s), they were relatively simple, 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 complex control environments as simple interfaces within the Smaart GUI.
The answer presented itself with a relatively 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 undoubtedly 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 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) and 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. 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 program’s options controls.
The primary use case for SAPI is to allow external applications to obtain measurement data from Smaart and plot it in their environment. Smaart measurement engines run in real-time and produce 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 information is being transmitted and how often. Note that Smaart will process data independently of the update speed of clients. Therefore 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, enabling clients to write any on any platform to access language and run the API. All communication with SAPI is done over a simple TCP/IP connection to facilitate this requirement.
For more information, developers interested in obtaining a copy of the SAPI SDK (Software Development Kit) 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 API. The above programs do not yet support v.8’s API but support v. seven 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 that when we built Smaart, we did it with 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 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.