News:

SMF for DIYStompboxes.com!

Main Menu

Audio Effects DSP Board

Started by markseel, June 13, 2016, 11:53:46 AM

Previous topic - Next topic

markseel

#180
Here's some specs ...

FlexFX DSP Board

1 - Uses the XEF232 32-core processor
2 - 2000 MIPs, four 500 MHz tiles each with single-cycle 64-bit MAC
3 - USB powered or external power via jumper
4 - 17-pin 0.1" header for 5V, ground, I2C SDA/SCL, UART TX/RX, I2S MCLK/BCLK/WCLK, 4 I2S SDIN and 4 I2S SDOUT pins (up to 32x32 channels in/out using I8S TDM)
5 - Contains processor, 1V switching supply, 3.3V LDO, oscillator, power/reset supervisor, and USB jack

FlexFX Software Kit

1 - USB Audio Class 2.0, 2x2 channels in/out, up to channels 32/32 in/out
2 - USB MIDI
3 - 15 DSP threads (to execute your custom code) with 100 MIPs each
4 - Handles routing of MIDI and audio between USB, I2S, and DSP threads
5 - DSP support functions for 64-bit fixed point, FIR and IIR filters
6 - I2C and UART interfaces
7 - I2S interface, up to 768 kHz sample rate (stereo), up to 8 TDM channels per SDIN/SDOUT pin (48 kHz)
8 - Input to output total group delay (i.e. latency) of 11 samples

FlexFX Demo Board

1 - Header for 8 10-bit ADC inputs, stereo audio in and out, pushbutton/foot-switch and LED
2 - AK4420 DAC, 105dB dynamic range, up to 192 kHz Fs, 19.3 sample group delay
3 - AK5386 ADC, 110dB dynamic range, up to 192 kHz Fs, 29.4 sample group delay
4 - Guitar input buffer, mono pseudo-differential or single-ended stereo
5 - Two AD7995 four-input I2S 10-bit ADC's
6 - One M24M02 2Mbit (256 Kbyte) I2C EEPROM
7 - Powered from 5V (on board 3.3V LDO)

FlexFX Cabsim Example

1 - Stereo IR processing at 48 kHz, USB audio input and output at 48 kHz
2 - Mono guitar input and stereo line-level output (using the demo board)
3 - Supports IR lengths of up to 4500 samples (93.75 msec)
4 - IR's can be loaded via USB to DSP threads or burned to EEPROM
5 - IR's can be loaded from EEPROM to DSP threads
6 - Pot 1 selects the IR pair (left and right) to load from EERPOM
7 - Pot 2 adjusts output volume (uses digital volume via truncation/dithering)
8 - Pot 3 adjusts USB audio and Cabsim output mix/blend
9 - Python script for loading IR's in WAVE file format over USB

bardoik

Quote from: mhelin on May 12, 2017, 12:51:04 PM
There are plenty of those three dollar nRF51822 boards available, the one I linked above doesn't seem to have integrated antenna. Wonder which of those is the best design. Some other ones have the antenna on the PCB but not so many I/O's, probably just some serial interface.

This one comes from Hong Kong meaning you will get it faster, and it has plenty of pins and the antenna:
http://www.ebay.com/itm/5Pcs-Low-Power-Consumption-BLE4-0-Bluetooth-L-2-4-GHz-Wireless-Module-NRF51822-/272488822710

This is cheaper but has only few IO pins.
http://www.ebay.com/itm/5Pcs-Module-Ttl-Nrf51822-04-Ble4-0-3-3V-Wireless-Bluetooth-Low-Power-Consumpti-X/232323375871


I think that the first have better design
knunqi torter !! cnndyan caxikner

markseel

#182
I also have this board almost ready to go.  It's much simpler so I'll make these without using a KickStarter to get production going.  If the next board rev checks out OK then they should be ready to ship in low volumes within perhaps 4 weeks.



MiniFX DSP Board (1.4" x 1.0")

1 - Uses the XUF216 32-core processor
2 - 1000 MIPs, two 500 MHz tiles each with single-cycle 64-bit MAC
3 - USB powered or external power via zero-ohm resister placement/removal
4 - 2x9-pin 0.1" header for 5V, ground, I2C SDA/SCL, UART TX/RX, I2S MCLK/BCLK/WCLK, 4 I2S SDIN and 4 I2S SDOUT pins (up to 32x32 channels in/out using I8S TDM)
5 - Contains processor, 1V switching supply, 3.3V LDO, oscillator, power/reset supervisor, and USB jack

The MiniFX and the FlexFX boards have the same features and both use the same development kit and JTAG hardware.  They also have the same signals brought out to the pins (UART, I2C, I2S, GND, 5V).

The MiniFX has five 100-MIP cores for DSP while the FlexFX has fifteen 100-MIP cores for DSP.  The MiniFX is still really powerful for its size and can perform 64 msec mono or 32 msec stereo IR processing/convolution at 48 kHz.

cliffsp8

That's a nice surprise  8)

Will you be making the FlexFX demo board available with it?

Cliff

markseel

Yeah I'm going to update the demo board to accept both boards.

markseel

Still finalizing the smaller FlexFX board but I did update the Github repo for the SDK.

https://github.com/markseel/flexfx_kit

Check out the README for an overview of FlexFX and a couple of example apps (including a cabsim example). 
Comments/suggestions welcome :-)

pruttelherrie

Looks like Santa's early this year  :icon_biggrin:

Is it possible to have the MiniFX pre-flashed so the JTAG board is not needed and one can start flashing via USB rightaway?

markseel

Yes - boards will be pre-programmed with FW that supports firmware update via USB MIDI and that passes audio with no DSP.

MetalGuy

#188
As an end user of a product like this who doesn't know any coding (and I doesn't want to know) I'm interested how easy I would be able to load several IR's and do 3 to 5 effects in a row?
Also maybe at the expense of some functionality can this board be made to play longer IR's like 500msec for example?

markseel

Each 100 MIP core can do perhaps 13 msec if IR using FIR convolution.  So the small board can support around 32 msec of stereo IR and 64 msec of mono IR (at 48 kHz sample rate).  The large board would up those figures by x3 ... so maybe 96 msec and 192 msec respectively.  We couldn't get 500 msec without resorting to a different convolution approach (i.e. frequency domain).


markseel

I added SPDIF output and ADAT output support to the FlexFX SDK (48 kHz Fs only for now).  I'm curious; anyone considering using these or willing to help test?

MetalGuy

I could be interested as an end user in getting one that can do longer IR's and if it comes with some user friendly software.

markseel

#192
These boards are intended to support DIY'ers and folks who want to learn DSP and/or make their own products.  I'll provide boards, example code, scripts, and support but that's about it as far as this kit goes.

You may want to consider the AMT Pangaea CP-16M although it's only 20.5 msec of mono IR and seems expensive at $75.

Or just get the Digitech CabDryVR pedal (Stereo 44.1 kHz but no mention of IR turncation/length *anywhare*  :icon_eek:).  Is the name of that pedal really lame or is it just me?  :icon_lol:  I don't think you can load your own IR's though - not really sure.

Keep in mind that even the AxeFX normal-res IR length is 20 msec.  Hi-res is 40 and ultra-res is 170 msec.  So 64 msec mono and 32 msec for stereo on a $50 or so FlexFx board is doing pretty good.

I'll have a Cabsim/IR pedal with a nice user interface released under the BitStream Audio name in the future but it would be a final product and not really a dev kit ... and therefore the price would reflect that I suppose.

markseel

#193
Fractal Audio has fantastic documentation on their effects.  Here's info in IR's:

https://www.google.com/search?q=wiki+fractal+audio+impulse+responses&oq=wiki+fractal+audio+impulse+responses

MetalGuy

Thanks for the info. I've researched all that thoroughly and I have the AMT CP-16 module which does mono in - stereo out.
However I was wondering why even expensive products like AXE or Torpedo don't do more than 20 msec while Lodigy's EPSi does up to 1.5sec. Below is a gutshot of the EPSi, maybe you can give us some comments how it's done.

DSP - ADSP21357
RAM - 48LC2M32B2



markseel

#195
Good point and question MetalGuy.  It comes down to the intention of convolution and the method by which it's performed.

For convolution applied to close-mic'd cab sim the reverberation times are generally short - on the order of 20msec (small cab, close mic) to perhaps 150 msec (big cab, open back?) but it depends on the cab/speaker being used.  For convolution applied to modeling room dynamics or performing convolution-based reverb modeling (of spring reverb, plate reverb, room reverb) the IR will be much longer - perhaps seconds.

There's two fundamental ways to perform convolution.

The direct method is just the application of time-domain convolution (like an FIR) whereas the frequency domain method is the application of FFT's.  The direct method is very straight-forward to implement and is suitable for the shorter IR's (cab sims) but it becomes too CPU intensive at long IR lengths.

The frequency domain methods are more complicated to code but due to the complexity growth rate of time domain convolution for longer IR's they're the only way to achieve long convolution with reasonable hardware. A downside is that the use of frequency domain convolution implies block-level processing due to the application of FFT's - and block processing adds latency.  But ... there's lots of papers on low or zero latency FFT convolution.

https://www.google.com/search?q=fft+convolution+latency&oq=fft+convolution+latency

The EPSi by Logidy is a beast and Olivier (the dude who owns Logidy and who is a DSP and Analog Devices expert) could comment on the frequency domain approach with authority but I'd guess that the low/zero-latency approaches outlined in these papers was used.  There's enough RAM in the EPSi for well over 5 seconds of 48kHz sample delay so the question becomes whether or not a DSP/CPU has the power to implement the required overlapped FFT algorithms to accomplish some reverb duration or IR convolution length of interest.

I'm not sure what an XMOS tile can do as far as processing bandwidth for overlapped frequency domain convolution but it does have enough RAM for just over 1 second of reverb or IR length at 48 kHz.  I used the time-domain approach for my cabsim / IR processor and the CPU/DSP power is the limiting factor there.  Maybe I should look into the other method?  :)

I don't know how AxeFX performs convolution but I'd guess that for the 20ms and 40ms lengths it uses direct convolution (time domain) and then uses frequency domain or a combination of the two for the 170 msec.  As the AxeFX wiki states there's typically not much IR energy beyond 100 msec and often not even beyond 20 or 40 msec in the context of cab sim and speaker sim applications.  So whether or not you need longer IR support (over 100 msec) will depend on the cab being simulated.  And whether or not you need really long IR support (100's of msec up to seconds) will depend on what your trying to model (cab-sim vs room dynamics vs reverberation modeling). 

So FlexFX is intended to perform IR's on cab/speaker responses.  AxeFX 20/40 msec ... same.  AxeFX 150 msec?  ... Cab and speaker sim I suppose (most commercial cab sim IR's are over 150 msec even though there's almost always negligible energy beyond 80 or 100 msec).  The EPSi would be used to simulate reverb systems and room/hall acoustics and far-mic'd cabs in various environments.

Hope that helps!


MetalGuy

Thanks for your detailed explanation! It was interesting for me to learn more about this.

cliffsp8

Re SPDIF and ADAT, I connect an 8 channel mic pre unit to an RME interface using ADAT.

I hadn't considered using DSP with ADAT but I'm happy to take part in testing if it will help. I use optical cables to connect between the two units.

The RME also has SPDIF on RCA connector. Will yours want to be clock master or slave?

Cliff

markseel

Thanks for the offer cliffsp8.  I was thinking some folks may want to use the multi-channel USB interface to bridge to SPDIF or 8-channel ADAT.  FlexFX has to be the clock master unless I add a PLL to recover the master audio clock from the WCLK - that's not hard to do though and could be added to the demo board that has the socket for the FlexFX module.  So if you're up to that I'll send you a module for free :-)  Hmm to actually test this I'd have to make a board with proper coax/optical interfaces.  Will have to look into that so these features may take a while to implement.  But I do think the USB/SPDIF/ADAT bridging may be interesting.  BTW I've also worked with XMOS AVB (i.e. mutli-channel time synchronized audio over ethernet) so that may also be a feature set addition someday.  Then one could bridge mutli-channel USB audio to AVB to ADAT or SPDIF, or make AVB peripherals and also do some DSP.

pruttelherrie

I also own a 8-channel mic pre/line out (so 8 in/8 out) and am willing to test for you. I'm able to design and etch (or order in case of double sided designs) my own (optical interface) boards, but I need help with the MiniFX firmware part so I would be very grateful if you're going to handle that part.

I don't need a module for free, happily willing to buy one from you :D