Embed and Extend

Flexibility as a core design principle

Bring your Elementary app anywhere with our Embedded Runtime SDK. Plugins (VST, AU, AAX, etc), mobile apps, embedded hardware– no problem.

Designed to be integrated

Built to ensure a seamless, flexible integration into existing stacks.

Everything you need

All-in-one platform

If you've got an app that runs with the Elementary command line app, you can have that same app up and running anywhere you need.

  • Standard C++ header and static library
  • Includes all 50+ core audio blocks
  • Build and install your own custom audio blocks
  • Easily bring or detach your native interface
  • Leverage the full Node.js/npm ecosystem
  • Fits into your existing audio chain
  • Works great with JUCE
  • Works great with iPlug
  • Flexible commercial pricing models
  • Support contracts available

Extending is SimpleWriting Custom Processors

Elementary is designed with the intention that applications almost never need to drop down into custom C++ processors. But, of course with existing codebases and legacy stacks, valid reasons alway show up. That's why the Embedded Runtime SDK makes it trivial to extend the built-in library with custom audio processing blocks.

class YourCustomProcessor : public elem::Node<float>
    void process (const float** inputData,
                  int numInputChannels,
                  float** outputData,
                  int numOutputChannels,
                  int numSamples)
        for (int i = 0; i < numSamples; ++i)
            outputData[i] = whateverYouNeed(inputData[i]);

Once you've built your custom processors, you can use them exactly as you'd use any of the existing built-in library functions:

core.render(core.createNode("YourCustomProcessor", el.in()));

Want to learn more?

The Embedded Runtime SDK is only available under a commercial license. Please contact us for more information!

If you can share a little about your project, it will greatly help us help you. Feel free to include any questions or comments.