Best Platform for Audio

30 Aug 2015

Hi my first post here

I'm currently using Teensy 3.1 platform for audio. using its internal DAC I was hoping someone could recommend what platform on mbed might be the next step. I was looking for Built in Audio codec Fast as possible processor Most of my experiments involve audio in - process Filter calculations- Audio Out (Real Time) so thats really tough on the Teensy I mistakenly purchased a STM32F7 only to find its not supported yet (Yes I'm Old and stupid) any advice would be great thanking you all in advise

OldMan (yes i really am that old)

30 Aug 2015

Are you looking for some basic audio, such as beeps, tones, maybe some basic text, etc, or are you looking at real audio, for for example a radio? Several targets have a built-in DAC, but in general won't be alot different from Teensy DAC. If you want real audio you will need an external audio DAC.

30 Aug 2015

hi thanks for the reply the stuff i'm into is real audio processing. with things such as audio filters its extremely hard or near enough impossible to get away from floating point calculations. Im thinking a board with associated audio codec and high processing speed. Even with the teensy overclocked to 144mhz it feels the strain. i still a bit confused as to what is the fastest thats comparable to the teensy there are so many ..i think i need to go down the route of an external Audio Codec. Thats why the STM32F7 seemed so appealing as it had all i needed.

30 Aug 2015

I don't think there is a standard dev board supported by mbed where a seperate audio codec (ADC/DAC) is included, but of course you can buy the two seperate. For sure you want an external DAC/ADC for this: The internal ones are not suited for this, unless you find an MCU with an audio ADC/DAC integrated. Then it might also be relevant what this board would have as input/output: It could be SPI, but often also I2S will be used for audio. I guess most of the faster MCUs support I2S, but it is something to check.

The STM32F7 would indeed have alot of processing power, but we have no idea when it would be activated. The code seems to be done, but for some reason mbed staff pretty much refuses to communicate. Mbed has alot of nice things, any communication with the community is not one of them. So it might be ready tomorrow, it might take months.

The Teensy is an M4 MCU, you work with floats apparantly alot, so an M4 with floating point unit included would be better. But you also overclocked it already quite far apparantly, so that reduced the advantage you obtain.

In the past I made a tool to scrape data from mbed library (should look into improving it again), now my html skills are non-existent, but still it gives an overview: What you want is an M4F, sadly I have not been able to automatically obtain clock speeds from the mbed lib (close to impossible).

So looking purely at floating point processing power, the fastest one is the LPC4337 running at 204MHz. This is followed by the K64F, K22F and LPC4088 running at 120MHz, and then you got a bunch of Nucleo ones running at 100MHz. From this the first one I would look at is the LPC4337. Note that I don't have that board, so I have no idea how well it is supported. And you should check out what kind of connections you need to drive an audio DAC.

Finally something to consider: Another thing I never used is an audio DSP, but it might be well suitable for your needs.

30 Aug 2015

Hi Erik Thanks ever so much for the advise. and taking the time to reply. The STM32F7 saga is just annoying really I'm trying to cobble together something in Keil but getting past a blinking LED is all pretty new to me. Once again thanks

30 Aug 2015

It might already be possible to build the mbed lib offline, assuming the thing is indeed completely supported by the mbed library code. Gonna check real quick if I update my local mbed copy to latest if that works :).

30 Aug 2015

Okay: The bad news: I ran exporter for the non-compiled mbed lib. Which takes about 10 seconds to compile normally, now add the complete list of ST driver libs and it takes ages to compile. It should (hopefully) to incremental compiles, so after first time it should compile in a normal time.

The good news: I could succesfully run exporter for the F7.

The unknown news: It seems to compile, but I have free version of uvision and that complains it is too large. (No idea why a blinky program would be too large).

That was all old news.

Instaedit: When busy anyway, also version with precompiled mbed lib (with uARM, which is ridiculous on such a device, but it is smaller than regular. It comes at cost of missing some more advances C lib functions).

Instaedit2: Of course I overwrote the old version. Can easily compile it again, but lets start with this one: You can see if it works, should allow you to use all mbed stuff in keil. If that works I can easily depending on what you need/want export it with uncompiled mbed sources, precompiled with regular ARM instead of uARM lib, and for IAR toolchain.


This compiles for me, but can't check more than that.

30 Aug 2015


i don't know what i'm doing but i'll give it a go

have to do it later tonight as i have to cook dinner for my children etc etc etc

i'll report back when i can

thanks again

30 Aug 2015

Hi Michael,

Have you considered using PJRC's Audio Shield for Teensy 3? It's listed on the PJRC website for $14.25. It contains an SGTL5000 AC97 Codec, a micro SD card socket and a site for a serial Flash chip. It comes with an audio library (Arduino) which I guess you could recompile for mbed.

Hope this helps.

30 Aug 2015

You could also consider this audio codec shield from the components page: That is compatible with the FRDM-K64F board which should have enough processing power.

The FRDM-K22F has sites for the SGTL5000 and associated components if you have a way to solder the fine pitch QFN.

31 Aug 2015

hi Erik Everything compiles it downloads to the board the led light comes on ...but does not blink tried different waits and timers ...but still nothing .. if i run the code with the just myled = 0; then it loads and the led is off i pretty sure the command is ok it just doesn't like ...wait ...wait_ms or wait_us

what do you think ????


31 Aug 2015

thanks paul and greg for your suggestions

I have a teensy audio board

It uses spi and i2c to work . i was really looking around to test other systems

31 Aug 2015

It was worth a try Michael, but then I guess the code base of it still has issues. You also did try wait_ms/wait_us? I know one issue in the past has been a wrongly setup floating point unit, and with those other two waits it doesnt use floats. That said, even if it would work it is a bit pointless for you without FPU working.

31 Aug 2015

thanks anyway Erik everything is worth a try