Forums

Audio DSP Board

Started by ebudae 4 months ago14 replieslatest reply 4 months ago251 views

Hello! I am new to DSP and I want to have a board which will have my audio software effect. 

It will be something like a spectral compressor/limiter and I will experiment with it. I have see TI boards but I have no idea which is best for me. Is there any guide for beginners? Most likely I will use 100 fft calls/ second + some param eq or band gain, which I will make filters for.

Also I don't want to spend 1000 euro but I want to have room for good processing. I can make threads.

Is there any guide somewhere that I could read? Or help me? 

Thank you

[ - ]
Reply by ChuckMcMMay 17, 2022

I suggest separating "I am new" and "want a board" :-), let me explain.

It is hard to pick a board that will work without a good understanding of what you are asking of it. It is hard to understand what you are asking of it without an understanding of what it takes to do what you want do.

So first, might be to develop an understanding of what sort of DSP code you need to achieve your spectral compressor/limiter. You can do that by learning and writing software that could run on pretty much any personal computer (laptop, desktop, what ever) created in the last 10 years. You can even do this using a Raspberry Pi 4 which is generally very cost effective. 

Once you have written a system that does what you want on the computer, then you can start on the journey of finding a dedicated board that will implement your algorithms.

[ - ]
Reply by aa1wwMay 17, 2022

I have to agree with @ChuckMcM.  GNU Octave software can give you a powerful sandbox in which to play DSP.  Youtuber "DSPcorner" has an hour and a half video on Octave basics at:


and another video on how to filter a signal (time-domain approach) at:

 

These videos don't teach DSP.  The "SP" part of "DSP" is a pretty huge topic but you can learn a lot about from online sources as well as sources like The Radio Amateur's Handbook from ARRL (might even find a pdf if you scout around).

Don't be discouraged if it looks like a lot of information.  People around here can suggest tutorials.  A first step might be to understand the following equation:

V(t) = A*sin(2*pi*f*t + theta)

And then to understand that every signal you'll encounter can be built from a pile of these sine waves.

Best wishes and forgive if I underestimated your existed knowledge on the topic.

Coop, aa1ww

[ - ]
Reply by ebudaeMay 18, 2022

Thank you very much! 

I will definitely go though these videos, I am sure I can learn something new from them, actually I know about this equation, and many similar like them, using it for FM, sorry when I said I am new I meant to choose a board... Sorry for this misunderstanding from my side.

I know about the Fourier transforms and the reconstruction of a signal given their amplitude and phase over time, 

so, my problem is choosing a board that can take an input, do some fft, calculate the amount of gr for each band ( probably 32 bands , 100 fft each second, 75% overlap ) and sum the signals at the end.

Thank you very much !


[ - ]
Reply by ebudaeMay 18, 2022

Thank you for your reply! 

Sorry I could not reply earlier.

With 'I am new' I mean I am new choosing boards by myself. I have been programming over 8 years, and done some electronic circuitry, LP, HP... and did some rPi, fpga and similar stuff but not too much. I have found the imput rate of the rpi not be enough for this without a shield specific for this task, and the rpi is out of stock worldwide. I would go with any board of Texas instrumnts, because I am curious about how to work with those now. I can write in c, c++, python, matlab... the code is ready, I only need some guide or approval on choosing the boards, I don't want to spend a lot more money than I need but I want power. 

I have seen https://www.ti.com/tool/TMDSEVM6657 but It's more than I need to spend for this, I believe. I would also like to have either bluetooth or ethernet but that's not important right now.

Thank you very much

[ - ]
Reply by lamabrewMay 17, 2022

You didn't put detail in as to why you want a board vs. doing something on a Windows/Linux PC.  If you're experimenting not having to cross compile makes things faster/easier, as well as ease of creating input files and analyzing the output.

You don't mention programming language preference and that would also be a consideration.

If experimenting Matlab/Octave would seem like the place to start.  Or perhaps JUCE audio?  There's a lot of Python DSP out there too.  The list is huge.

If you do want to end up on a board, and the FFT is your biggest computational load and at 10msec per, and I'll assume 48 kHz sample rate and 50% overlap, that's around and 8K FFT size in 10 msec. Raspberry Pi can do that as could a lot of other similar boards.  You could even move the FFT to the GPU to free up the main core(s) if needed.

If power was a concern then ADI's SHARC-MINI would be the way to go as its FFT accelerator can meet your needs a dozen+ times over.  But you would need to learn a lot of stuff to use it effectively.

Summary: think more about what will make experimenting the easiest for you, once everything is working the way you want you can start thinking about hardware that meets your other (unstated) requirements.

[ - ]
Reply by ebudaeMay 18, 2022

Hi, thank you

My goal is to translate the code I already have to a TI board. As you said, the FFT is your biggest computational load and at 10msec per, 48 kHz sample rate and 50% overlap, that's around and 8K FFT size in 10 msec, 

I thought to do 75% overlp, but maybe 50% is reasonable. I want to try a TI board but the list is too big and I dont really understand how to choose there. Power is not a problem. Ideally I would like the machine to run a C or c++ code. Not worried about cross compiling. 

Sorry I wrote my post in a fast way and didn't know what to say exactly. This seems a much better community than all others I know, hopefully I can someday give something too.

Thank you!!

[ - ]
Reply by lamabrewMay 20, 2022

Your application will run on a fast ARM core, though there's parts in the TI family that include a DSP (C6x) core.  I think it comes down to what you want to get out of doing this project, i.e. if the experience of using a DSP processor is important to you or not.

As for TI based boards, there's a lot of choice between the original BeagleBoards and the many clones.

There's enough expansion options that you can add an ADC/DAC, though some boards may be more limited than others in terms of bringing out the full complement of audio I/O.  OTOH you don't need much.

[ - ]
Reply by dszaboMay 17, 2022
Bela.io and Elk OS seem like a hot ticket, but I’ve not tried it. 
[ - ]
Reply by CrandlesMay 17, 2022

I have a Bela board and like it. It's quite beginner friendly and there's a nice set of lectures to get started with things.

I don't think he specifically covers spectral compressors/limiters but there is a section on frequency domain processing and you could likely figure out the rest on your own with enough practice.

[ - ]
Reply by ebudaeMay 18, 2022

This is a really interesting thing, Thank you for sharing!!

[ - ]
Reply by ebudaeMay 18, 2022

Thank you very much! I will look at them

[ - ]
Reply by dudelsoundMay 17, 2022

if you can do c, try this:

NXP LPCXpresso55S69 - its about 40€+tax and has one  Cortex M33 core with float support (plus a second one without), also there is an audio codec with the usual jacks. Development env is free after registration.


[ - ]
Reply by ebudaeMay 18, 2022

This is very nice, I think I will get this along with others!

[ - ]
Reply by artmezMay 17, 2022

A good, really low cost but very capable choice with lots of backing that isn't a big commercial push is the Teensy 4.1: https://www.pjrc.com/store/teensy41.html PRJ is out of stock, but it's carried by lots of others (e.g. Digikey, Adafruit, Sparkfun, etc.)

Check out the web site. They also have several audio tutorial videos along with audio libraries. Lots of followers on the web too.