Using JUCE and Analog Devices Embedded DSP Systems

Hi everyone,

I’m working on a project that involves using JUCE for UI and I’m considering using an Analog Devices Embedded DSP system for the hardware.

I was wondering if anyone on the forum has experience using JUCE with these systems in the past? Any insights or advice would be greatly appreciated.

Specifically, I’m interested in knowing:

  • Are there any known challenges or compatibility issues when using JUCE with Analog Devices Embedded DSP systems?
  • Are there any specific examples or tutorials available that demonstrate this integration?

Thanks in advance for your help!

1 Like

Since it’s embedded, I am not sure what you are expecting to get out of using Juce with the DSP hardware? I am assuming the device will have no operating system as such. But Juce, however, is largely designed around abstracting operating system differences. Do you have another system like Linux controlling the DSP hardware?

I’m sorry, I just realized I misspoke in the initial post…

It’s the EV-21593-SOM evaluation board and uses a RTOS (I think Free RTOS). DSP will be done using CCES / SigmaDSP which are Analog Devices’ DSP programming tools, I’m interested in using JUCE for only the UI elements and cross-compatibility between Windows and Mac.

Basically, host program would run on computer and use JUCE UI for controlling the DSP in a friendly and familiar way. DSP would all run on separate hardware (AD 21593). It’s for a real-time sound design instrument.

I used Analog Devices SHARC embedded DSP. Basically, all DSP part you have to program in C/C++ using their internal libraries. You cannot install and use JUCE directly. What you can do, you can install separate Linux on their module and use it as a tool to build user interface etc. However, I skipped the idea to use JUCE there just because JUCE supports only X-Windows on Linux, which is not very practical nowadays for embedded devices. I would rather use qt or something else if you need to have graphical UI. Anyway, Analog Devices DSP routines (at least for SHARC) and internal support for i/o are really good, so you do not need JUCE in fact for that part.

Edit. In the meantime you wrote already something similar :slight_smile: If you are going to use Win/Mac just for UI to control your hardware, JUCE is a good solution.

Thanks for the reply!

Good to know you’ve worked with SHARC processors before. This will be my first go.

Are there any reasons you can think of for why JUCE UI and SHARC embedded DSP wouldn’t work together well/be future proof? Curious what the other options are.

I think that if you have a separate pc/mac/linux with a JUCE app and you want to control your hardware, then it is perfectly ok and will work for ages. Another case would be if you have for example your AD SHARC board and you want everything (DSP + GUI) on that board, then JUCE is problematic in its current stage (basically due to the fact it is dependent on X-Windows, does not support Wayland, etc.), so it is really hard to run it on some small embedded Linux distro and in this case qt would be much more convenient solution.

It sounds like you want to develop a front end app for some hardware, so it really just comes down to how you communicate with the device, yes? What is the path of connection between your device and the host program? usb? pci? network? etc? you will need to write the code for interfacing to the hardware, and communicating in your protocol, but JUCE can manage all the OS related things for you.

2 Likes

It’ll be a DAI through USB. Probably 8 channels of I/O. Maybe more if possible.

Programming the DSP is done through CCES (cross-core embedded studio) in C++/C, JUCE only need to be used for the UI and mapping the UI controls to real-time DSP + maybe changing the order of some DSP modules. I’ll have to do some more research on the protocol for interfacing with the hardware from JUCE (which is all in C++ from what I gather?)

Thanks again!

Thanks! Good to know :slightly_smiling_face:

isn’t this how X32 digital mixer works?