ELK is the first ultra-low latency Music Operating System in the world. It’s developed specifically for audio applications, eliminating latency, allowing you to leverage the power of software technology in real time via strings, keys, buttons and knobs instead of a mouse.
- Ultra-low latency (below 1ms round-trip)
- Linux-based, using single Intel & ARM CPUs
- Official Support for VST plugins, also written in JUCE
- Natively connected (USB, WiFi, BT, 4G)
- Full MIDI support
What is ELK
Discover ELK's key features
ELK is a Music Operating System (MOS) for use in embedded environments which provides unmatched ultra low latency performance using general purpose CPUs or ARMs. This, combined with ELK’s SDK, which makes it easy for developers of VST plugins to support ELK, will usher in a new era where the power, flexibility and selection of audio and music software can be run in real time on embedded hardware.
ELK allows musicians and audio producers to:
- UPGRADE their instruments and audio processors with new plugins, sounds or features
- CONNECT their instruments and processors to external controllers, like mobile devices, as well as the internet
- SHARE instantly, performances, sounds and settings online
By allowing hardware manufacturers to tap into the vast ecosystem of high quality software instruments and processors, ELK empowers musicians and producers by both enhancing their existing computer based systems and allowing them to leave their computers at home when they go to the gig. Bringing all their favorite plugins and presets from their DAW with them in their ELK-enabled devices.
We work with:
ELK for hardware manufacturers
For hardware manufacturers, ELK represents a scalable, upgradeable platform allowing for extremely high performance products at competitive prices. ELK allows hardware companies to move away from dedicated chips and use standard CPUs or ARMs without any compromise in terms of latency, performance and scalability.
By dramatically reducing development times and empowering product lines which can range from very low cost to extremely high end, ELK is the ideal platform thanks to its decreased product development risk and the broad range of professional software partners readily available.
- Scalable (Intel & ARM SoCs from 10$ up)
- Competitive Performance / Price
- Faster time-to-market
- Less risks in product development
- Software partners readily available
- [Technical FAQs]
ELK for Software developers
ELK provides software developers with a new market opportunity by enabling their products to run on all the ELK-enabled hardware devices developed by ELK hardware partners.
Software developers can easily develop products for different devices starting from existing code bases, essentially using the code originally written for desktop to use in embedded platforms. Unlike dedicated DSP systems, which require extensive porting and optimization, the ELK SDK allows existing VST titles to be simply re-compiled on ELK. Many developers get their titles running on ELK the same day they receive the SDK.
ELK allows software developers and service providers to enter the new, untapped markets of musical instruments and embedded technologies focusing only on core software – while ELK takes care of all hardware-related aspects.
ELK supports UIs running on different devices (mobile, desktop, embedded displays) and allows immediate porting of existing VSTs, also written in JUCE.
- Easily build multi-device products starting from desktop code bases
- Enter new, untapped markets
- Focus only on core software
- Easily develop for multiple UIs (mobile, desktop, embedded displays)
- Easily port existing VSTs (also written in JUCE)
- Easily run your apps and services in embedded environments
- [Technical FAQs]
ELK for Musicians & Audio Producers
Whether your idea of music production is to create the most, dense, modern tracks imaginable or something that sounds like vinyl from 1958, the core of your setup is most likely a computer filled with VST plugins and software instruments.
The benefits of eliminating latency and being able to take all of your studio’s power to every part of your music creation is probably obvious for you. But to name a few…
- Use the same plugin signal chain on stage or in the rehearsing room you do in the studio.
- Play or sing straight into your favorite effect and take control of every nuance of your performance.
- Constantly upgrade and personalize your instrument and audio processors with new features and sounds.
- Store your plugin presets in your personal cloud and use them across different platforms: desktop, mobile or embedded.
- Use the internet connection that ELK brings and easily share your performance on social media.
- Share your settings and presets with fans and friends or download their settings straight to your instrument or processor.
ELK Technical FAQs
Discover key technical features of ELK MusicOS
For the audio part, ELK runs a fully featured, multitrack headless DAW, which can hosts plugins written following the VST 2.4 API, VST 3.6 API or the internal ELK plugin format.
On the non real-time part of your plugin, you have access to all the features of the underlying Linux system. Your real-time callback must be completely real-time safe, e.g. no memory allocations, system calls, etc., which most likely already is if your plugin runs fine on other platforms. Lock-free FIFOs can be safely used for the communication between RT and non-RT.
For the low-latency mode, ELK can run on any embedded X86 SOCs from the last 5 years, plus some ARM SoCs (NXP i.MX7/8, TI AM355X). With higher latency and lower performance, it can run on pretty much any CPU that runs Linux.
ELK plugin host currently doesn’t host the UI part of VST plugins, but you can run the UI in a separate process running on the same CPU (for embedded display) or in another device (e.g. for control with mobile apps). We provide an RPC framework that you can use for connecting the UI to the engine, with functionalities to control the system and the DAW as well.
We have a generic framework with a component library for many kind of controls: buttons, switches, analog potentiometers, rotary encoders, keyboards, etc. It is possible to customize the behaviour by simply editing a JSON file or with a real-time IPC system, saving lots of development time for your product. Alternatively, you can use other ICs of your choice and communicate to ELK with UART, I2C or SPI.
Yes! You can’t use traditional Linux system calls for the synchronization between the threads, but we provide a wrapper to the facilities of the underlying RTOS, with a POSIX-like API and much better performance and deterministic behaviour.
Low-latency and deterministic behaviour are also very good if you want to use the maximum power available in your CPU. With a normal Linux system, lot of CPU time is wasted in waiting the audio interrupts to be served, and you need to keep a low CPU utilization margin for managing the occasional spikes in OS activity. In ELK, the audio code is run immediately when the audio interrupt is triggered, and is never interrupted by lower priority tasks.
Moreover, having such a low latency gives you other optimizations opportunity. For example, you can use buffer sizes of 256 frames and you still have only 5ms of MIDI-to-sound latency at 48kHz. Or you can compute a serial audio chain by pipelining it into multiple cores. In few words: you get the best DSP bang for the buck that you pay for the CPU in your product.
NO, ELK has been specifically developed for embedded environments to manage efficiently audio processes, even (but of course not exclusively) where a graphical interface is not needed.
For development or testing purpose we created SDK tools running on any PC (Mac, Windows, Linux), however the final scope of ELK is to be deployed running embedded into a dedicated hardware, not a standard PC, Mac or Mobile device.