Embed and Extend

Flexibility as a core design principle

Bring your Elementary app anywhere with our Embedded Runtime SDK. Plugins (VST, AU, AAX, etc), 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.