Crucial factors for projects

Hello again

After a longer break I thought I should revisit some projects but this time I need to find a dev environment that suits me. I will use VS to test build apps on Windows and subversion to handle repository for simple update and build directly on Rpi4 with some adaptions. Last time cross compling on a Linux was unnecessary complicated and time consuming. Also needed to create number of extra apps running along sushi for communcation for OSC, serial interface, curl and so on and this time all can be built in one binary.

So currently the 3 most important issues.

  1. Sound quality, this is fine using and HifiBerry DAC+ADC
  2. Boot time, if building a product people would like to have it up and running in seconds
  3. Latency, output only like a synth with midi input could be ok with a couple of ms but a guitar effect need to be “Elk OS” specs.

So regarding 2, if using Elk OS could boot time be optimized somehow?
Will an A2 class card be faster than A1?
Is a 5 instead of Rpi4 worth changing to?

And about 3, to build directly my current solution is to use jack on a regular OS which is faster ALSA / asound. But if using Elk OS I understand raspa is the way to go. Is this possible to build directly without crosscompiling, if not is it / will it be avaiable as a lib in the OS. raspaloop is running perfect and would be the starting point.

Best regards
/Olof

Help Olof and welcome back. Glad that you’re interested in using Elk audio OS. Let me try to unpack your questions one at a time.

Boot time is an issue for all linux based devices, but it iis still pretty short compared to a desktop computer. It should def be possible to have sound running in 5-6 seconds if loading the audio code isn’t too heavy. See a longer discussion here Startup & Shutdown
It’s possible to optimise further, but then you need to customise your image and really remove everything you don’t need.

I’m not sure what you mean with class A1 and A2 here.

We currently don’t support RPi5 and we can’t provide a timeline for when, so I would recommend going for a RPi4. It is still pretty damn powerful, so I have no doubts it should be sufficient. RPi 3, 4 or 5 would likely not make difference for latency though.

Some notes on dev environment:
Building on the board works fine if you’re using a dev image. I do that myself sometimes. Though for a large codebase, building on a RPi is pretty slow. If you’re on a linux or Mac dev machine, sshfs works well for mirroring the filesystem on the board on your local filesystem. Using that it is very quick to make edits to the code and recompile on the board.

Any app running natively on an Elk device would need to be cross-compiled for that architecture, not just audio apps. Raspa though needs specific libraries and would be hard to get running on a non Elk OS.

If you want to build your own sound engine and not use sushi, I would suggest you to build that app with support both for raspa and another audio framework (like jack or portaudio) so you can test and run on a non Elk-device too. This is what we did with sushi and enabled us to do a lot of development without an Elk board.

Hi Gustav,

Thank you. I will check out the startup. A1/A2 are the speed classes of microSD cards, but they apply to both read and write speeds, depending on the size of bursts. I’m not sure if the Raspberry Pi 4 can benefit from them.

Yes, the 5 is the future. I have a Raspberry Pi 5 now, mainly for another project because of its hardware timestamping to run PTP and sync units at the microsecond level, as it is said. For audio, the first test actually found the HiFiBerry when adding a slave in the boot config, but JACK did not start, and I haven’t investigated further. I am sticking with the 4 for now.

About development, my current projects, for example, a synth, build in seconds directly on the Raspberry Pi 4 since it is very lightweight and is based on JACK, which is started separately. I have not thought of using a dev image. Is that available on GitHub? Or did I not read the dev section properly where it can be found?

Today, as I said, I am using JACK to process a buffer when compiling on the Raspberry Pi with a different OS and portaudio to make tests directly on Windows with Visual Studio. I sync changes with Subversion or FileZilla.

But the future plan is to run Elk OS if possible, of course, now on the 4 and 5 when possible.