freeDSP-aurora - DSP with 8 I/Os, USB Audio, S/P-DIF, ADAT, Bluetooth and Wifi contro

Checked it. Everything ist working fine on GitHub. Just click on "Clone or download".

AddOnC: I am currently busy with testing the AES3 io and making the GUI nice for it. Actually there is a problem with the AES3 that I don't understand yet: When I make a loopback with a cable it works, but when I connect it to the AES3 input of a DCX2496 the DCX does not accept the AES3 stream.

Raphael

Thanks for the heads-up! I'm so used to seeing source on GH that it never occurred to me that binary thingies like PDFs might play differently. Oops.

The 4 FIR setup looks useful indeed...
 
So the manual says:
Additionally the development environment SigmaStudio can be used. The programming model of SigmaStudio is function-block based – comparable to other graphical programming languages like PureData or Max/MSP. Many prebuilt blocks (e.g., filters, compressors, effects, or logic) can be placed in the signal path via drag and drop. If the included libraries do not have the functions needed, low-level blocks, such as multipliers and delays, can be wired together to create custom DSP plugins. For more information please refer to the Analog Devices website (SigmaStudio(R) | Analog Devices).

For a lark I had a look at the Sigma Studio link; that puppy's got algorithms a-plenty. Shoot, a fella could have a pretty good weekend in Vegas with all that stuff.
 
Last edited:
So, I warned Raphael I was working on this: I plan to build a tool to generate the whole plugin (or most of it) from the SigmaStudio export. I have to be disappoint: It's still a long way getting there. This is merely a prototype - but still maybe of some limited utility for some people.



The current iteration can generate the plugin.ini for the 8channel and 4FIR plugins, so if you're adapting one of these, you don't have to manually copy the addresses from SigmaStudio to that file.
This is still fairly limited. If the plugin's structure differs, the whole program will probably explode (or produce garbage). Also, Crossovers (like in the 7.1 plugin) are hard to automatically detect, so that's not supported either (they will show up as a bunch of HP/LP).



The dsp.fw is assembled as well, so you don't need to build sigma2aurora (and hence no QtCreator required). There are no limitations here, I think.



So, the biggest caveat: You still need to write your own dsp.html to actually control the plugin. Or at least adapt the existing file, so you still need to have a pretty good idea how the whole thing works. The whole plan is to eventually do that automatically as well, but it's a really long way...



Because this should be usable for non-programmers, I added a simple GUI and build a single, self-contained Windows Exe-file. I'm afrad the GUI is ugly (1999 says hello). But well, better than nothing I guess. And I think I can improve it, but not tonight (it's 1 am here and I wanted to get the prototype out tonight).

Here is the link: Release v0.1-alpha * archi/aurora-tool * GitHub

Instructions:
1. Download
2. Unpack
3. Run aurora-tool.exe
4. Select the params-File from your SigmaStudio Export
5. Select the folder where to put the aurora plugin
6. Hit the Build button
7. Wonder what to do with dsp.fw and plugin.ini because you don't have the necessary dsp.html webinterface for it ;-)



The whole thing is written in Perl (I was too lazy to do it in C++), but since it's possible to build a self-contained Exe you don't need to have an idea what I mean with "Perl" ;-)

Anyhow, it's late, sleep tight :)


P.S.: If things are difficult to understand, I am *really* sleepy ;-) But I wanted to get this out because I don't think I can work on it the next few days.
 
Last edited:
Ah, I can't edit anymore. I patched it to use the systems native file picker, feels much better now. The latest release can be found here: Releases * archi/aurora-tool * GitHub (in about 15 minutes, 0.1.1-alpha will have the better file picker).


Thanks so much for the contribution! I've already been using it on my end and it's definitely much faster!
 
Where is the doc for controlling ADC/DAC sample rates? And can they be different from the DSP sample rate?

I have a tool for generating minimum phase FIRs from their linear phase counterparts, and I'm somewhat curious about whether the lack of pre-ringing might be audible if I sample analog at 192 kHz, down-convert to 48 kHz, then resample back up to 192 before hitting the DACs.
 
I’ve discovered an interesting behavior of Aurora that appears to be related to WiFi operation. As soon as the access point is opened on Aurora the ESP32 starts drawing HUGE current spikes every 100ms (> 500mA at minimum). This 10Hz pulse frequency is creating a lot of low frequency harmonics that are severely limiting the output noise levels.

Below is a probing of the current consumption of Aurora showing the offending spikes. Note that this is with an additional 1,400 uF of bulk capacitance added, so the effects of the current spikes are actually rater muted.

Looking at D/A/D Loopback performance in REW, the noise apparent, and lowering the signal-to-noise (S/N) performance of Aurora from the expected loopback performance of 112dB S/N to only 83dB S/N (was even worse before adding the bulk capacitance).

Interestingly, this primarily seems to be affecting the DAC, rather than the ADC. As feeding the ADC stage with a muted signal generator produces 108dB S/N, much closer to the targeted 112dB.

I’ve not been able to diagnose this issue much further than looking at the serial monitor and narrowing it down to the ESP32 radios, as it appears immediately after “AP Open.” The pulsing then continues for the entire duration of operation.
 

Attachments

  • FullSizeRender.jpg
    FullSizeRender.jpg
    134.5 KB · Views: 247
  • Aurora Loopback Noise.jpg
    Aurora Loopback Noise.jpg
    740.2 KB · Views: 240
  • HDMI -> Aurora Noise.jpg
    HDMI -> Aurora Noise.jpg
    226.8 KB · Views: 243