A DSP Platform for Audio and Musical Instrument Effects

carina480

While at iZotope, I searched for a hardware DSP platform we could use for algorithm development as well as for prototyping hardware effects. Of course, nowadays, you can use a desktop computer, the Steinberg SDK and a VST host for algorithm development, but there’s nothing like a real hardware prototype when you want a good demo or when you really need something you can take on the road (or for making your own high-end stomp box.)

What I discovered fell into three categories:

1) Evaluation boards (EZ-Kits) from the major DSP chip suppliers – There are several issues with these, the most serious being that they are not specifically designed for audio, and very often their analog sections, including the connectors, leave much to be desired.  These boards are designed for general evaluation and usually have much more stuff than you need if you’re focusing on audio. And as a result, they are often larger and more expensive than you’d like .

2) Open platform stomp-box kits – There are two that I know of, and in my opinion, both are seriously crippled in terms of resources (speed, data RAM and program storage space) and don’t handle stereo input.  I don’t want to be constantly reminded how little memory or how few MIPs I have to work with. Also, I want to program in C++, not assembler. Ideally, I want my algorithm to compile either for VST or my hardware platform, so a mature tool chain is very important.

3) Third party single board computers with DSP – Again, I found none designed specifically for audio. Some have add-on “daughter cards” that support decent audio interfaces, but the resulting assemblies are expensive and unwieldy for my purposes. The form factors were not good for an audio effects unit.

I want something I can run serious audio algorithms on, drop into a project box, easily interface to user controls and prototype a real product. Bottom line: we couldn’t find what we were looking for.

Reasoning that if I was looking for such a thing in vain, others might be, I’ve partnered with AeVee Labs (folks who specialize in high-end audio DSP hardware design) to come up with a dedicated audio DSP platform. Pictured above, and code-named “Carina“, it’s a BF51XF Blackfin board designed specifically to be the DSP engine of a stereo-in, stereo-out audio signal processing box.

Enough background. Here are some hardware specifics:

Processor and memory

  • BF51XF Blackfin DSP running up to 400MHz
  • 256Mbit external SDRAM (32MB)
  • 32Mbit external parallel Flash (4MB)
  • 4Mbit external serial Flash (500KB)

Audio

  • Analog Devices ADAU1361 stereo codec
  • 24-bit ADC/DAC >98dB SNR, sample rates up to 96KHz
  • Programmable routing options for multiple input and outputs
  • 2-channels balanced inputs (two 1/4″ balanced jacks)
  • Stereo unbalanced aux input (one 1/8″ stereo jack)
  • 2-channels balanced outputs (two 1/4″ balanced jacks)
  • Stereo unbalanced output(one 1/8″ stereo jack)
  • Headphone output (one 1/4″ stereo jack)

Other

  • USB to Blackfin UART for connectivity using FTDI USB drivers
  • RS-232 serial port connector option
  • SPI port and all unused Blackfin GPIO available on expansion connector
  • Flexible power options including battery connection and on-board power switch
  • JTAG connector
  • Boot mode selector switch

Note that the layout is intended to facilitate dropping the board into an enclosure. All of the I/O (and power switch) are along two adjacent sides, so that installation into an off-the-shelf enclosure should just be a matter of drilling some holes. The enclosure dimensions need not be exact.

Where we are today:

The photo above is the real deal – the first board is up and passing audio. I’m currently working on low-level code to initialize the board’s hardware resources and to handle the basics of getting block-based audio in and out of the Blackfin efficiently. As is typical for AeVee Labs, there are so far no mistakes in the hardware.

Where we’re headed:

I envision making Carina available in two forms: First, I’d like to offer this board to those needing just what we needed at iZotope – namely, a cost-effective, powerful audio DSP platform that can be used simply for algorithm development as is, or which could be the foundation of a real product. I’ll provide a firmware framework to handle all hardware initialization and routing of audio to and from the Blackfin, and an easy drop-in architecture for mono and stereo effect “plugins”. Furthermore, the framework will route serial control messages from either the USB or the expansion SPI port to the algorithm, making it straightforward to control parameters from either a host program or a custom UI hardware board. And good documentation!

Secondly, I’d like to see a finished signal processing box, in an enclosure  and complete with a general purpose user interface (pots, LEDs and a display), with the ability to create and download your own effects through the USB port. This solution would allow someone to completely focus on the algorithm component and have a great little custom audio effects unit. A stomp box on steriods!

The fly in the ointment at this point is the software development tool chain. The code is currently being developed using Analog Devices VisualDSP 5, which is great but wicked expensive. ADI recently announced a low-cost emulator, but at the moment their dev software is still big bucks. Maybe that will change…

In the meantime, there’s the free GNU tool chain. Never having used it myself, I’d love to enlist the help of those of you who have. My goal is to get to a point where someone can focus on algorithm development and where it’s easy to drop your own algorithm in a piece of powerful hardware.