Electronics > Projects, Designs, and Technical Stuff
Getting started with DSP for audio effects
(1/4) > >>
Jon86:
Hi all, first post after a long time away, it's good to be back :)

So I'm starting my electronic engineering degree (finally) and I'd like to expand my skillset with some DSP experience. My end goal is to be able to design digital guitar effects processors, obviously nothing insane just some simple distortion/reverb/delay kind of stuff that you see on virtually every piece of Chinese guitar gear these days.

I'm trying to find a good platform that will make development as cheap and simple as possible, if there's an Arduino equivalent in the DSP world then this is where I'd love to start. I'm quite familiar with the MSP430 platform, and I know TI do a lot of DSP products, but I'm not sure if this is the most practical place to start.

I've seen graphical DSP programming tools before, are they still a thing? Seems like this would be a great place to start. I'm familiar with C and some of it's cousins but obviously I've got zero experience with the world of DSP and DSP algorithms.

Any help gratefully received!
Howardlong:
There are two distinct areas to deal with.

o Firstly, learning DSP.

o Secondly, learning the target hardware and tools.

If you try to tackle both of these at the same time, it will be a lot more challenging. Try not to run before you can walk!

To deal with the learning DSP, I very strongly recommend developing the algorithms on a PC (usually in C) first, and then porting it to you target platform. You can use your soundcard interface, but be aware that typically there's tons of latency which will be useless for a real effects pedal, but it's an excellent way to test out your algorithms without the extra complication of cross-compiling and debugging.

For the target hardware, become comfortable with it in its simplest terms first and then port your algorithms. Inevitably, apart form the the most trivial of tasks, you'll find you need to optimise you algorithms on the target hardware, but I tend to keep the same source code on PC and target, with #ifdef...#else...#endif around the platform specific optimisations.

The hello world of the DSP world is generating a 1kHz sine wave.

I learned the hardware side with the help of the Digital Signal Processing series originally authored by the late Ralph Chassaing. Donald S Reay has taken up the mantel and has a version based on a few ARM Cortex M4 boards. Be aware that one or two hardware options mentioned in the book are difficult to find, but the author has a new board that's readily available identified on the book's website.

Note that the Cortex M4 isn't really a DSP, it just has a few extra instructions, but that may well be enough for your purposes: I've done some pretty nifty DSP stuff myself on the M4 in the past, for example this AM radio receiver which takes the RF into an on chip ADC, does a quadrature downconversion and filtering, demodulates the signal, and sends the audio to a PCM output.



MRMILSTAR:
As a previous poster said, walk before you run. Before you can do anything meaningful, start with basic DSP theory. Understand the basics such as:

* ADCs and DACs (quantization noise, dynamic range, analog anti-aliasing filters, analog reconstruction filters)
* Nyquist sampling
* Aliasing
* Digital filters
* FFTs (start with the DFT)
* Fixed-point arithmetic (even if your target processor has floating-point hardware)

Until you understand these basic concepts, trying to write code that functions properly will be extremely difficult and you will be trying to decide if your code is buggy or your theoretical knowledge is wrong. There are many textbooks and on-line sources that will give you this information. With an understanding of these basics you can then start to write working DSP software. For eventual real-time implementation on your target hardware, write in C or possibly even assembly language for specific operations. Before implementation in C on your target hardware, you could use a higher level simulation tool such as Matlab or Simulink hosted on your PC to gain a quicker understanding of your algorithm without worrying about the fine details of C programming.

As far as target hardware goes, that all depends on the complexity of your DSP software and the bandwidth of the signals you are dealing with. For simple low bandwidth applications like an audio signal generator, you might get by with an Arduino. For higher bandwidth and/or higher complexity applications, you could use a target board with a DSP on it (e.g. TMS320 series) and suitable ADC and DAC. You would then need development system software (compiler, assembler, linker, JTAG interface) to go with the DSP. Some of the single board computers may also be suitable. To really know what target hardware that you need, you have to determine the number of multiply-accumulate operations per second (MACS) that your application needs since MACS are the heart of DSP. Then find a processor that can deliver that performance.
SiliconWizard:
First you'll have to define your exact goal. Do you want to learn DSP or do you just want to get familiar with processors labeled as DSPs?

For the first one, I think your best bet would be to start with a good book on DSP - there are plenty of them. As a platform for exercising, I suggest starting with Matlab or something similar (such as Scilab). You don't need any DSP board/dedicated hardware to get started with DSP.

For the second, you can take a look at one of Analog Devices ADSP eval boards for instance. Note that they are not cheap and the software tools aren't either.
Marco:
Teensy is the arduino equivalent for audio DSP. Has a Cortex M4F.

Forget about graphical DSP programming though unless you want to shell out huge amounts of money for platforms using hugely expensive Sharc DSPs ... or alternatively if you want to tweak the knobs on the overpriced SigmaDSP toy chips. Please don't do the latter, it makes me sad.
Navigation
Message Index
Next page
There was an error while thanking
Thanking...

Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod