Embedded synthesizer


#1

Hi, i have just discovered JUCE and i want to know i JUCE is the right choice to develop a synthesizer for ARM processor (i have a STM32F7-DISCO board) and if exist a tutorial for this combination. Thanks


#2

Well, the Seaboard Grand’s embedded synth is the Equator engine running on ARM/Linux. It’s basically almost the same code that we run as a plugin/standalone on desktop OSes, minus the UI. Haven’t got a tutorial for this though!


#3

Hi Jues, thanks for your reply
is agood good notice! I have to investigate!


#4

Hi, I’m returning to this argument.
it’s been a while and I’m still interested in the topic and I would like to know if there are tutorials that explain how to embed juce on a stm32 discovery board or the like.
Maybe a simple example step by step…

Thank you


#5

I don’t see a way to use JUCE, at least the way it is supposed to be used, on a stm32 ARM chip :frowning:

The rational for that is, this chip doesn’t have a MMU (memory management unit), which is responsible for OS style paging and virtual address space abstraction.
That being said, you can’t run a conventional Linux kernel on a chip like that (ARM Cortex-M series), and JUCE relies on OS syscalls (open, fork, socket, etc…) to do its magic.

TL;DR => this chip can’t handle an full blown OS, ergo, no JUCE :cry:

Hope this was useful, if I wasn’t clear enough, or you don’t agree with what I said, please, lets discuss more!!
:wink:


#6

thanks @jrrossi, I’ve read that the ROLI embed his synthesizer engine, I assumed it was on a arm processor or similar and not an SBC
At this point, to have that kind of performance and audio quality, what SBC should I use?

EDIT
Here a topic on SBC


#7

Is a SoC based on a ARM Cortex-A series core (look up their datasheet for more info).
These cores are designed to support complex OSes (Linux, Windows CE, etc…), that’s why they used it.

Is a system used to build Linux kernel-based OS images in a automated fashion, in a nutshell…

It is really rare find a SBC with a nice audio HW, I never found one at least, probably because they’re intended mostly for bech-marking/prototyping use.
What you could do is to use a Raspberry Pi with an external audio card, that has the required quality. There’s a few around like this one for example.

Now regarding “audio performance”, any modern ARM based SBC has a quite impressive processing power and RAM, which should be enough to handle most audio processing duties (and video too!!), unless you’re doing some seriously heavy stuff.

Embedded Linux is a insanely wide subject and there’s lots of literature around.
I don’t know your level familiarity with it, but if you’re starting, I’d suggest the following exercise:

  • get a RPi, put the default image in it.
  • Write a simple JUCE synth application, it can be veeery simple :laughing:
  • try to figure out how to upload, compile and run it in your RPi. (the standard RPi has a builtin audio output)

You’ll see that this process in cumbersome and very error prone, then you’ll should try to understand why people use OpenEmbedded/Yocto.

Hope it helps :wink:


#8

very useful reply, thanks again.
now i have to order a rpi3 and learn from zero :slightly_smiling_face:
but, even with stm and freescale are at zero, i’m a web developer and i know a little bit of teensy (but not c/c++)
for curiosity
in the case of large-scale production, it makes sense to use a commercial board such as rpi3?


#9

Well, AFAIK, rpi isn’t manufactured for production robustness, but I’d say they’re very well made, and might be suitable for a product that will not face extreme usage. But I don’t know what you have in mind.

Actually, since it is open hardware/source, I’m not sure of the legal implications of using it in a comercial product. Not sure exactly which license the HW is under too, you’ll have to check that one :wink:

But there are plenty companies that does OEM SBC suitable for all kinds of application, from medical to house appliances. The last one I checked was this one, but there are many others…

Best!


#10

my doubt (but I did not write half a line of code) is that I would not spend time (for learning from zero) and money on a product that I can not reuse in the long run.

We hypothesize an instrument designed on the basis of raspberry, in two years is ready … but they do not make raspberry … what am I doing?


#11

There are plenty of ARM processors able to run Linux, so if you build an embedded synth from scratch, it’s easier and cheaper to start with the RPi and when you have a proof of concept, you build a dedicated board with an ARM chip.


#12

Thank you @jb1