Making embedded audio devices is hard. Sure, there are plenty of easy-to-use frameworks targeted at makers using simple custom boards, and you can make very nice simple DYI projects with them. But then, scaling to an industrial product that you can safely put in the hands of a generic user, is a totally different story.
Elk is an embedded Linux distribution, highly optimized for low-latency audio, that comes with several components to streamline the development of professional audio and music devices. The supported hardware are either one of our Elk development boards, or a simple Raspberry Pi with an audio hat, or custom hardware designed for products powered by Elk. We take care of abstracting the hardware for you, so the code that you end up writing for a product is highly reusable across different hardware platforms. This is especially important these days with all the uncertainties of component sourcing, giving you the flexibility to quickly transition from one platform to another if needed.
In the design of Elk we have tried to follow a UNIX-like philosophy of having several focused components that “do one thing and do it well”. All of these can be reused for devices of different kinds such as digital FX units, synthesizers, mixers, etc. The only custom work required for each device is then just a matter of writing a small glue application that connects together Elk’s components for the particular use case.
The last ingredients needed for the product recipe are audio processing plugins. Luckily, Elk supports standard formats such as VST (both 2.x and 3.x), LV2 and an internal plugin format. If you have access to the plugins’ source code it is usually trivial to rebuild them for Elk. Or, you could take advantage of the library of plugins that have already been built for Elk by various developers.
Elk is an embedded Linux distribution, highly optimized for low-latency audio, that comes with several components to streamline the development of professional audio and music devices. The supported hardware are either one of our Elk development boards, or a simple Raspberry Pi with an audio hat, or custom hardware designed for products powered by Elk. We take care of abstracting the hardware for you, so the code that you end up writing for a product is highly reusable across different hardware platforms. This is especially important these days with all the uncertainties of component sourcing, giving you the flexibility to quickly transition from one platform to another if needed.
In the design of Elk we have tried to follow a UNIX-like philosophy of having several focused components that “do one thing and do it well”. All of these can be reused for devices of different kinds such as digital FX units, synthesizers, mixers, etc. The only custom work required for each device is then just a matter of writing a small glue application that connects together Elk’s components for the particular use case.
The last ingredients needed for the product recipe are audio processing plugins. Luckily, Elk supports standard formats such as VST (both 2.x and 3.x), LV2 and an internal plugin format. If you have access to the plugins’ source code it is usually trivial to rebuild them for Elk. Or, you could take advantage of the library of plugins that have already been built for Elk by various developers.