Sigma DSP Boards

Hi there, I am wanting to step up my game and I am looking into more powerful processors for my audio synthesis/processing projects. I have been looking at the Sigma DSP boards and have a wealth of questions regarding them and the Sigma Studio software that you program them with.

I have already tried contacting Analog Devices directly as well as posting in the Engineer Zone forum associated with Analog Devices, both to no avail. Has anyone out there used these before or have any insight into them?

**Edit: I have altered the questions bellow as I have gained a little more knowledge about the DSP chips in the last 24 hours.

  1. Sigma Studio compiles a project into code to upload to the chip (or can it only upload it to the evaluation board?) but I've seen a video of someone using an arduino to boot the program still, can the chip not boot itself? I guess a broader question would be, do I need a microcontroller to work with a DSP chip or can the DSP chip work as standalone?

  2. I know the boards are mainly geared towards signal processing with a few basic waveform generators available, but can they also do more complex signal generation like wavetables? Or will I need a microcontroller to do that part?

  3. In sigma studio, how do you processes midi commands? I'm guessing you use the serial ins to recieve the midi stream, and from there there is probably a serial in module in sigma studio, then how do you get the dsp board to decode it? Again, is this the job of a seperate microcontroller?

I have never worked with a DSP board before, only arduino microcontrollers, so any other hints/tips/advice anyone might have will be welcomed too. Thanks in advance for any insight you guys might have!

Pete

Anyone out there with some knowledge on this subject?

I think I might have worded the beggining of my first question badly, but I think you can still gleen what I mean. Sorry.

Questions 2 and 3 are most important really. I've been playing round with sigma studio and I can programming it all fine so far, but I want midi control and wavetable signal generation if possible.

Thanks in advance,

Pete

I dont know the answers to any of your questions, but this interests me alot !
I have (in the past) looked into DSP and FPGA, both very complex

I had a little read of the datasheet HERE and it looks like it can be controlled by an Arduino via SPI

I havent got to the bottom of the program/control/studio/wavetables side yet

The midi would probably have to be decoded in the arduino and then the commands sent to the DSP

Really good section on programming on page 14 of that datasheet !

Nice one man! So from reading that, it sounds like it can run without the aid of a microcontroller if desired. But I think you're right, to utelize midi I would need to decode it before using it to control the DSP chip.

Shame there isn't a code block like synthmaker and max/msp have, that would make it really flexible. Page 14 does also mention 3rd party algarythms though, I should look into that!

If I can't achieve everything I want on a Sigma board, my next option is a Blackfinn or Shark, but I am struggling to work out how to even output sound and program interupts on Crosscore studio. It's all about the drivers I think, but I'm thourally confused! Don't think I'm nearly experienced enough to embark on such an escapade. I'm struggling to get any response on Analog's own community forum aswell, so not sure if there is good enough support for a novice like me. Shame, if I could just figure out the sound and interupts I'd be laughing!

Cheers anyway man, I'll let you what I do and how I get on. What's your DSP project anyways?

Pete

I read that if you power up the eval board without programming anything, the default will allow inputs to be connected to outputs except they are muted, so nothing will come out, I guess you would have to use the studio to release that

as far as I can see I dont think you can actually run some repeating/looping software/program within the device, I think the programming just means programming the parameters that changes sounds (filter/vol etc)

I dont know anything about blackfinn or shark or even crosscore, only what I have recently read about sigma devices.

All I can recommend is start simple and get one thing going, write/read the unit using SPI from a microcontroller, perhaps just to unmute the outputs or something

I was looking at making my own DSP guitar effect unit, but ended up looking into FPGA for DMX & Video/VGA processing (a whole different story !!)

:)

filters and volume controls still require repeating loops of convolution and multiplication. There are already algorythms for simple sine, saw, triangle, square and nosie signals as well as algorythms for look up tables... arrays essentially. That's all the makings of wavetable synthesis right there! There's enough going on already that loops of code must also be managable. Maybe I need to learn how to program 3rd party algorythms for it... though if I'm going to that trouble, I'd probably do just aswell to struggle along with crosscore studio...

I donno, there's never an easy answer. I really need to make friends with a coding genius. Any in the south wales area? lol

Pete

good luck with that Pete, please use this thread to keep us(me) updated, this could be quite an exciting project (although I feel quite a sad geek for getting excited by this kind of thing !)

Regards Bob (Kent, not Wales. Geek, not Genius !)

Will do! I’ll keep you posted. Don’t worry, I’m geekily excited by it all too :smiley:

I’m from kent, only moved wales way 2 years ago. If I still lived in kent I reckon I could have found a coding buddy by now. You a man of kent or a kentish man?

Btw, if anyone here knows a microprocessor cut out for dsp with similar power as the blackfins and sigma boards, that is easier for novices to get to grips with, feel free to chime in aswell. I’m open to alternatives.

Pete

Hmmm, didn't realise the intel edison was running 500Mhz and a 100Mhz controller, that could probably take care of of midi and my wavetable needs at a fraction of the cost of the blackfin (if you include evaluation boards), then run the signal through a sigma dsp board. The edison is also programmable via arduino IDE, so I already have the sketches written (I'm guessing I'll need to slightly alter them though to work properly).

Anyone with any experience of the edison for audio signal generation? I might just start a new thread for this actually...

I'm actually an Essex boy living in Kent :)

Ah! So you didn't even fight off william the conqueror?!? Lol

Well, sounds like edison might be the one. I think my plan will be to start with the edison, then I'll get a Sigma DSP chip to process the audio. Got some excellent experimental effects that I've already part programmed in Sigma Studio. That should be enough to build my whole synth!

Hi to everyone just in case you think ADAU1701+Arduino it's interesting, take a look to Aida DSP project. It's open source and can benefits from the help of the community. The project has been exposed at miniMakerfaire and Synthmeeting in the city of Turin, IT.

www.aidadsp.com

http://www.aidadsp.com/

Hello Attorney and mcnobby (and all the others),

I am a long time user of the SigmaDSP, and I can answer to your questions. First of all, you have to know that the SigmaDSP are not “classical DSP” in the sense they can’t be programmed in C or assembly. AD did not publish the machine code specification, so the only way to program their chip is to use SigmaStudio. This tool uses “function blocks” that you have to connect to create a program. Once compiled, you have a binary file to download in the DSP over SPI or I2C.

In other terms, you can not do with these DSP anything which is not in one of their preprogrammed modules. As an example, you have a set of oscillators for classical waveforms, but if you want to make a FM system, you can’t because the sinus module does not have a frequency modulation input. The only way is to ask AD to add this in a future version.

Technically, these chips are designed for audio processing (like loudpseaker, mixing desks, amplifiers, etc…) it’s rather hard to use them in something else (like a modular synthesizer application). Moreover, the RAM is very, very limited, especially on ADAU1701.

There are currently two open source projects around the Arduino based on these chips: the FreeDSP project and the AidaDSP project.

FreeDSP is obviously already dying from what I can see (they were initially offering to provide kits, and they never went to this possibility, so only the file are available now as Creative Common).

AidaDSP seems more advanced and as far as I kknow, their hardware is available for 99 euros.

Note that using the SigmaDSP along with Arduino will require you two things: loading the binary file in the DSP (for that, you have a good support from AidaDSP who is prodiving the tools to translate the binary file from SigmaDSP to something you can download via the Arduino)
The second thing you will need to deal with is the parameter changes… and that’s where the fun begins…

Technically, SigmaStudio allow you to change any parameter in the program you are writing for the DSP, and hear immediately the effect. But it works only when SigmaStudio is coupled to the DSP via their USB module. It does not work at all through the Arduino. If you want to change a parameter from the Arduino, you have to compute the values within the Arduino, which is not an easy task (you need to deal with floating point valus, then translate them to the specific Q5.23 format the DSP uses, this will load seriously most of the Arduinos based on a 8 bit AVR)
You may think that the parameters are coded as 0…100%, but it’s not the case. The parameters are most of the time expressed on a logarithmic scale, so you will need to emulate the SigmaStudio way of computing parameters in the Arduino (and since the source code of the modules is not available…)

However, I have to say that you can create interesting things with the SigmaDSP connected to the Arduino once you know the limitations.

PS : I am working since a few months on a DIY project based on SigmaDSP+Arduino (but I can’t tell more for now, I do not want to have my idea being copied until it’s released). I will announce this in the Arduino forum when it will be ready

Hi everyone,

the Aida DSP project had grown, now we're supporting also ADAU144x so things are getting even more interesting :)

To answer to BenKissBox about difficulty of integration of Sigma DSP with Arduino, I should say that Aida DSP library for Arduino exists only for this purpose.

// You have low level functions like

void AIDA_SAFELOAD_WRITE_VALUE(uint8_t dspAddress, uint16_t address, boolean finish, float value);

// And high level functions like 

EQ2ndOrd(uint8_t dspAddress, uint16_t address, equalizer_t* equalizer);

// Where equalizer_t* equalizer is the structure containing all second order filter cell (biquad IIR)
// parameters like 

equalizer.f0 = 1000.0; // Cut off frequency 
equalizer.boost = 12; // dB boost 
equalizer.type = Lowpass; // Eq type selection: Lowpass, Bandpass, Highpass, Shelving, Peaking...and more
...
etc

so that it is rather simple to "talk" to the DSP and change its parameters from Arduino.

I always look for feedback and help expecially on testing audio projects and documentation, actually some guys are helping me some have bought aida dsp board some are using their own board ;)

You can find doc here however ;)