Low-level DSP dev, educational potential & general Qs

Hi everyone,

I’ve been considering using ELK Audio OS with Raspberry PI 4 (dev kit in essence) for my own personal research (but potentially also for DSP students), but been trying out to understand several things which I may not be able to found precisely thru provided documentation and few scientific papers I found on the ELK subject:

1/ Is ELK OS meant to be used via SUSHI and higher-layers of ELK software? Is it possible to omit Sushi completely and do C/C++ development in some low-level framework for developing DSP apps of your own (basically accessing driver I/O buffers directly and doing my processing)?

2/ If I got it well, devkit with RPI you provide allows only analog I/O? That means if I want digital I/O (external I2S pins for example) I should assembly my own RPI + specific audio hat board and basically could get only ELK audio OS for using it on this HW? That should be doable?

3/ If that ‘low-level’ dev framework, as I would call it, is not available, what’s the ELK policy on going into the ELK core and trying to build my own simple framework for the purposes of point from 1/ ? Is it completely closed and under proprietary licences or that could be done for research/educational purposes only?

4/ Considering questions above, I am interested in your own general estimation on educational potential of ELK OS for DSP computer engineering students? But, I will probably get my own estimation if I can get answers. So, basically, I am in search for some BELA-level educational potential, but for a different platform as they are fixed to BeagleBone and ELK seems to be making steps to overcome that , just trying to find out is it still DSP dev friendly or it has different purpose.

The best
Nenad

  1. Sushi is our plugin host. It’s meant for plugin developers to develop new plugins or port their existing plugins and run them on our hw platforms (e.g. Rpi) with the latency of a DSP processor.
    Yes, for DSP research you can omit Sushi and use Raspa, which is our library to interact directly with the realtime audio driver. There are some examples apps in Raspa repo which you can take a look.

  2. You have to use the specific hats as mentioned in the documentation. If you want to use the I2S pins to use some other hat (codec) then you will have to port the audio driver for that codec. We support the hifiberry and Rpi audio hats currently for RPi.

2 Likes

Hi Nenad and welcome to the forums, just to add to Nitins answer above:

One of the main benefits of Elk Audio OS is that the developer can write his or her DSP code in the form of a vst-plugin and do that on a regular laptop or desktop with all the availiable tools. This abstracts away a lot of the nitty gritty details of working with an embedded platform and integrating with external knobs, sliders and midi keyboards.

Maybe for educational purposes you could use something like JUCE and have students build a plugin, which they could later move to an Elk board? As that’s more the development workflow we’re suggesting, rather than coding directly against the HW.

You can obviously use our low level audio API Raspa directly and bypass sushi, it has an API similar to that of JACK. But this does reduce the usefulnes of ELk Audio OS a lot and makes it similar to BELA board or DAISY.

Elk is licensed under a GPL license so for educational purposes it’s fine to edit the codebase as much as you like.

1 Like

Hi Nitin & Gustav,

thanks for quick and detailed answers, which def. given me a clearer picture of the ELK use-case.

Yes, I am aware that using ELK in a low level would take away all the abstractions you guys added for making it easier for developing apps, but as I said I am trying to see all the options as BELA and other platforms are basically fixed to the chosen hardware whereas ELK has better portability level which could be useful for my own future research. Students as well should be focused on both DSP and embedded, real-time part of the development as the course is imagined in that way (JUCE alike they used in previous DSP courses).

Anyway, I will take a look at Raspa more closely, and try to decide based on all the information. This would be all for now, maybe I come up with more questions at some point!

Thanks,
Nenad

1 Like

Nenad, for your purpose Electrosmith’s Daisy is way more interesting.
https://www.electro-smith.com/daisy