Guitar Effects Processor using DSP

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
******************************
Summary, for those who cant be bothered reading 3500 characters:

I want to build a guitar effects processor using DSP. Anyone have any experiance in this/advice/useful links?

******************************

Hi,

I have decided to embark on a perticularly ambitious project (ambitious for me, at least). A few years ago, i built some analogue guitar effects in my garage using a handful of simple components. Last week, I decided to bring things up to date by trying to build an effects processor using DSP. The problem: I dont know anything about DSP. Im hoping someone in the forum does!

~~~The ideal/probable outcome of this project~~~

IDEALLY, i would like to build a unit with several memory 'patches' that can be programmed from a computer, using a GUI that i will write (if i ever get that far!). The patches would consist of a number of effects in a user specified orientation. The unit, once programmed, could then be disconnected from the computer and
taken into the 'field' (a stage/ my bedroom). The unit itself would have some means of switching between the patches, and a few pots to control parameters on each patch.

REALISTICALLY, i dont know if it will ever get that far. I know little about DSP, and im not sure how realistic the above specification is. the MAIN idea behind this project is simply to learn, and get familiar with DSP techniques. I wont be disappointed if i never build the ideal system. As long as i know a bit more about DSP programming, ill be happy!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


After searching the internet (and this site), it seems that im not the only person to try this sort of thing. However, all other examples i found used chips that are now unavailable. The 'standard' way of building DSP digital effects units seems to be using evaluation boards. First, though, a suitable chip needs to be identified.

I have searched the Texas Instruments and Freescale (formerly Motorola, i believe) websites and found their audio processing chips. I have also dismatled my Line 6 Spider II guitar amplifier and identified the chip used in there (Freescale DSP56362, running at 120MHz). However, it seems that using any of the chips I have found would be complete overkill for this application.

Even the chip in the Spider II seems to have been designed for the decoding of various audio formats. The kinds of things i want to be able to do are:
Delay effects (reverb, delay, chorus, flanging etc)
Volume effects (tremolo)
Equalisation and filtering effects (standard multiband EQ, wah)
and perhaps:
Pitch shifting effects (unintelligent harmoniser)

Programming and running these effects, to my knowlege, wont require a hugely complicated DSP chip.

So, some questions now.

Firstly, has anyone else attempted a similar project? If so, could you please share your experiances, along with any advice/links to useful websites.

Does anyone know about audio processing chips and evaluation boards? At the moment it looks like i may end up spending a few hundred dollars on something which is designed for far more than i will ever use it for. Are there any good sources for older/cheaper evaluation boards? (price is quite a big issue here - im a student!)

What about the possibillity of making the system entirely software based? I would settle for a software approach if funds will not allow a unit that can be operated as a standalone system, although the latter is preferable. Anybody have any information/suggestions on this idea?

Thanks for taking the time to read all of that!

Rob
 
It can't hurt to go overkill on the DSP you're using... You might not use the extra clock cycles, but if you're experimenting in lots of ways - putting EQ before and after an effect or something - then it's easy to suck up a lot of cycles.

Also, you can program a faster DSP in straight C/C++ and not worry about efficiency loss. Using a slower DSP to do the same code requires either assembly code, or using so many intrinsics that you might as well have written assembly code anyway.

I've worked quite a bit with the Analog Devices SHARC series of DSPs - namely the 21061, 21065L and 2181. These chips are designed for audio processing and almost nothing else. I'm fond of their tools, and their evaluation boards (built in USB emulator) are great and they're relatively cheap.

I'd price a few Analog Devices SHARC EZ-KITs - you might get a deal from Analog directly, or you could try Arrow Electronics which also tends to be cheap. Get the fastest one that's within your price range, and give it a shot.
 
I read in your profile that you are an electrical engineering student. Does your school have any DSP courses? They might have a lab somewhere with a couple of eval boards which you could use to program the chips, that way you wouldn't have to buy anything. I think most eval boards have sockets for the processor, so you could program your own DSP and simply take it out of the socket and put it into any board you design, which can have all of the same "functionality" that you made use of on the eval board, but at much lower cost. (i.e. A/D converted, D/A converter, inputs, output, power, ground, clock, and perhaps a few other things).

There are many free filter design programs, you just have to know a little bit about the type of filter you are creating, and how the specific algorithm you want to use works. If you have access to MATLAB with the digital filter design packages, then even better. ;) The main thing to consider regarding processor speed is that you must be able to do all the computations required for each sample before the next one arrives. The longer the filter (which usually means "better") the more computations you have to do. To quote an example, I believe Dolby Digital surround sound uses a 512-tap FIR filter.

You might consider using a floating-point DSP in your effects processor. They cost a good deal more than fixed point DSPs (maybe something like $40 instead of $10), but it would mean that you don't have to do nasty fixed-point math to implement filters (which almost invariably have floating-point coefficients). Even if you are using a floating-point library (so you don't have to do any extra work to be able to use floating-point numbers), you will save an amazing amount of CPU time if you have native floating-point support on the DSP. The free floating-point libraries available for most fixed-point DSPs have a reputation of being horribly inefficient. I think most audio companies will buy very nice libraries, or will have one their employees hand optimize the filter algorithm to work on fixed point DSPs.

One final note, and I'll shut up for now. You might be able to talk TI or Freescale to donate an eval board to your school. Especially if you tell them you are using it in a design project. They are always looking to get engineers hooked on using their stuff. :D
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.