DSP Device for Guitar Pedal Effect

I was wondering what DSP chip would be appropriate for a guitar pedal effect. I need to sample the incoming signal preferably at 96kHz perform a simple numeric function upon each sample and output he result.

Reply to
Fred
Loading thread data ...

How simple is simple? A number of devices can do that. If you care about audio quality I wouldn't use the build int ADCs and DACs though.

Reply to
mook johnson

The function will be floating point and contain trig functions. Each sample is run through the function once and outputed.

ADC and DAC convertion will need to either be contained in the chip or sorted out separately.

I understand there are PICs out there and other similar things that can do this, I'm just unfamiliar with there devices and trying to wade though the websites to figure out what would work is kinda rough when your clueless. :)

Fred

Reply to
Fred

Are you going to build one or a million? If the latter, the cost of the silicon is important. If you only build a few, the silicon is free. The expense is the time to develop the software so you should look for an software environment you like.

You said 96kHz. Call that 100 kHz, or 10 microseconds per sample. You need a CPU that is fast enough to run your algorithim in the alloted time. Trig functions can be messy. I'd suggest getting a development board and timing things. (If you might buy a million, the FEs will be helpful. If not...)

Why do you think you need floating point? The input isn't floating. The output isn't floating.

As a (probably crazy) straw-man, you could consider table lookup. It doesn't take much time, but it sure eats memory. It might be worthwhile to implement the algorithim on a PC and look at it on a graph. Can you compress that graph? Think interpolation, or curve fitting. A cheap CPU with external memory might be less expensive than a CPU fast enough to do the trig functions.

--
These are my opinions, not necessarily my employer\'s.  I hate spam.
Reply to
Hal Murray

re about

.

Coordic.

Reply to
miso

,

I need to look at the different ways possible to do this, and hardware to implement it.

Cordic looks interesting, I still need to figure out how to get the ADC and DAC conversion done and the chip to run the function,

I also need to be able to have one user variable parameter a setting knob that the the micro-controller would track in real time.along with the input signal.

Reply to
Fred

On a sunny day (Sun, 25 Oct 2009 19:46:54 -0700 (PDT)) it happened Fred wrote in :

Whatever you choose, keep in mind that digital processing introduces delays. 'Latency' is the word. That may cause very undesirable effects in the end result.

So a bleeding fast DSP should be at an advantage here (read power guzzling). Or maybe do some of the processing in hardware, say use an FPGA. Depends on all you want to do. Maybe an analog circuit makes more sense for a guitar... But then again if your name or preference in Jimmy Hendrix., maybe all the artefacts will help a bit ;-) grin

Reply to
Jan Panteltje

Floating point at 100kHz? Ick!

If you must do this with floating point you'll need a floating-point DSP chip like an Analog Devices Sharc or a TI 6000 series ($$$, but maybe not too much of a differential for a one-off). I'd see if I couldn't do this with a fixed-point chip and some sort of approximation, or clever fixed- point math. The design work is harder, but it may be worth it.

--
www.wescottdesign.com
Reply to
Tim Wescott

I am going to build Space Shuttle. It uses diodes. Would 1N5404 be a good diode for Space Shuttle?

VLV

Reply to
Vladimir Vassilevsky

A lookup table for sin / cos is much faster and may allow the use of a cheap micro, rather than a dsp and you can generate the table with a page of C utility.

You only need to store one quadrant, so a 16k x 16 bit table gives

16bits + sign sin() or cos() function. 32 Kbytes of rom space...

Regards,

Chris

Reply to
ChrisQ

No, a 1N3712 would be *far* better for traveling through time and space, especially if you encounter wormholes along the way :-)...

Regards,

Chris

Reply to
ChrisQ

The other point being avoidance of floating point and do it in fixed point if at all possible. If you use a cheap micro, fp will be too much of a performance hog with many C libraries, not to mention the amount of code space it takes up...

Regards,

Chris

Reply to
ChrisQ

Maybe you can attach an old 80287 to a microcontroller, there are still some cheap ones at eBay:

formatting link

Many years ago I had to choose to add more RAM or a FPU chip to an Intel

80386 based computer. I decided to add 2 MB RAM, which was great, because then Windows 3 worked :-)
--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Dunno about cordic -- to get that kind of speed from an inexpensive DSP you probably need to go with something like a polynomial best-fit. This would make the "knob" adjustment easy, as you'd just change the coefficients of the polynomial.

--
www.wescottdesign.com
Reply to
Tim Wescott

C?!?

This is a job for assembly, unless you want an obnoxiously big, expensive, and power hungry part in there.

C isn't a good fit for fast DSP algorithms. Unless you luck out with a very wise compiler you're best hand-fitting the code to the application.

--
www.wescottdesign.com
Reply to
Tim Wescott

While you're doing tradeoffs, consider a cheap FPGA. It may be a good fit, particularly if your intended processing is memoryless.

--
www.wescottdesign.com
Reply to
Tim Wescott

I've written everything in C since the early 90's, even stuff like interrupt handlers. The only assembler is in the startup and that's kept as short as possible. It's the only way to get maintainable and portable code and modern compilers and cpu's are very good. Even keil C for 8051 can keep up with the later 8051 derivatives from Silicon labs and others. For example, a 400 Hz pwm sine wave inverter where the timers are reloaded every pwm cycle, 10 or so lines of C and an interrupt handler time of approx 60 uS.

You write it all in C to start with, then dip down and look at the compiler entrails and optimise the assembler *only* if it's not fast enough :-)...

Regards,

Chris

Reply to
ChrisQ

I used an LPC2103 from NXP for a DSP project (partially floating point). Worked like a charm without a single line of assembly. I doubt you need 96kHz though. 44KHz will be more than enough.

--
Failure does not prove something is impossible, failure simply
indicates you are not using the right tools...
 Click to see the full signature
Reply to
Nico Coesel

GCC has always been very nice to me with various DSP algorithms. But you'll need a CPU that can deal with pointers efficiently (like an ARM CPU).

--
Failure does not prove something is impossible, failure simply
indicates you are not using the right tools...
 Click to see the full signature
Reply to
Nico Coesel

Let me rephrase: C isn't a good fit for fast DSP algorithms on a DSP.

(hint: an ARM isn't a DSP chip).

--
www.wescottdesign.com
Reply to
Tim Wescott

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.