ELK.... Its'a a MOS!
We wanted to take the guitar to the 21st century. Along the way, we had to craft a Music Operating System – a MOS.
- Ultra-low latency (1ms round-trip)
- Linux-based, using single Intel & ARM CPUs
- Support for VST and JUCE plugins
- Natively connected (USB, WiFi, BT, 4G)
- Full MIDI support
Why call it ELK? Because it is a MOS…and we are based in Sweden. Get it? 😉
What is ELK
Discover ELK's key features
ELK is a Music Operating System (MOS).
It allows musicians to:
- UPGRADE their instruments adding new sounds and features
- CONNECT musical instruments to external hardware and to the broader Internet
- SHARE instantly their performances online
ELK also allows hardware companies to move away from dedicated chips and use standard CPUs with no compromise in terms of low-latency, performance and scalability.
ELK makes it incredibly easy for software developers to port existing software for use in embedded environments, essentially allowing them to run the same code on desktop, mobile and embedded systems.
We work with:
ELK for hardware manufacturers
Hardware manufacturers find in ELK a scalable and upgradeable platform allowing extremely high performances at a competitive price.
ELK is also the ideal platform for fast time-to-market development, thanks to its decreased risks in product development and to a broad range of professional software partners readily available.
On top of this, ELK is the only solution allowing hardware manufacturers to produce musical instruments that are easily upgradable and natively connected, opening up a potential new post-sales revenue stream from software, content and services for their devices.
- 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
Thanks to ELK, software developers and music service providers can easily develop products for different devices starting from existing code bases, essentially using the code originally written for desktop use in embedded platforms.
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: Upgrade, Connect, Share
Whether your idea of music is to be shut in a studio that looks like the bridge of a Klingon cruiser or you are a minimalist that wants everything to sound exactly like in 1958, we think you will be surprised at just how much smartness is going to affect us as musicians. What we want to do is to make the technology so smart it is transparent.
The benefits to you are broadly going to be in three broad categories; sound, connectivity and sharing. And this is what we mean by that:
|Instantly access unlimited sounds and plugins from different software houses.|
|Constantly evolve your instrument with new features and upgrades.|
|Take full control of your instruments’ settings.|
|Store your presets in your personal cloud and carry them with you anywhere.|
|Use your presets across different platforms: desktop, mobile or embedded.|
|Easily add loops and backing tracks to your performances.|
|Easily record, edit and store your performances: on-board multitrack recording, editing and storage.|
|Easily merge HD audio recording with and video feed, also from your mobile.|
|Use all features from ANY Android or iOS device.|
|Take advantage of full USB, WiFi, Bluetooth and 4G support.|
|Stream background tracks from your favourite streaming platform or local files.|
|Easily share your performance data with music apps (learning, training, editing)|
|Easily share your perfomances on Soundcloud, YouTube, Facebook and Twitter|
|Share your settings and presets with friends and fans: Integrated online storage and community features|
|Interact with other musicians focusing on what really matters: music|
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.