Author Topic: Audio Effects DSP Board  (Read 25479 times)

0 Members and 1 Guest are viewing this topic.

pruttelherrie

Re: Audio Effects DSP Board
« Reply #220 on: November 23, 2017, 04:22:06 PM »
Yep, one BNC which can be configured to be master or slave:
https://medias.audiofanzine.com/images/normal/behringer-ultragain-pro-8-digital-ada8000-995195.png

It might be that I'm completely misunderstanding this sync-thing though.

« Last Edit: November 23, 2017, 04:24:33 PM by pruttelherrie »

markseel

Re: Audio Effects DSP Board
« Reply #221 on: November 23, 2017, 04:35:56 PM »
OK good.  Both ADAT and SPDIF are designed such that some simple logic can be used to sense a run of bits (zero's or one's - can't remember which) that exceeds the same-bit run lengths in the encoded data bitstream.  This pulse can be used as a PLL sync input so that the PLL can lock on to it and multiply it in order to derive the master audio clock.  We'd still have to use a PLL/clock multiplier to derive the 12.288 or 24.576 MHz MCLK but we wouldn't need the additional logic to grab a pulse-train from the actual data bit stream.  XMOS already has code for clock recovery using the Cirrus Logic CS2000 family.

pruttelherrie

Re: Audio Effects DSP Board
« Reply #222 on: November 24, 2017, 03:08:36 AM »
I think I understand what you're saying.

If I were to go the codec + preamps route, are there any codecs (or even separate A/D's and D/A's) you recommend? Especially with regards to ease of interfacing (towards the FlexFX I/O, the analog part I can handle). Preferably as easy to solder as is possible! SMD is ok, as long as it's not tooooo small, the bigger the better. Through-hole would be awesome but I've accepted the fact that that's probably not going to be possible.

I also found out that Reaper sends out lots of info over OSC about the tracks etc, whenever you open a project or even switch tabs between projects. So the configuration of the FlexFX mixer could possibly be directed completely by Reaper, with a bit of smart setup of the tracks, names, etc.

markseel

Re: Audio Effects DSP Board
« Reply #223 on: November 25, 2017, 11:04:44 PM »
Yeah I have some ADC/DAC/CODEC favorites :-)  But any one will work as FLexFX supports I2S, LJ PCM, TDM, etc and if there's other I2S variants that need to be supported it's fairly easy for me to add that support and then update GitHub.

I don't like QFN parts since I put boards together by hand for hobby stuff - so I gravitate towards the leaded parts.

The AK4556 is low cost, simple to use, and has decent performance (44k1 to 192 kHz, TSSOP20, 103dB ADC and 106dB DAC dynamic range).  Really pretty good and also the latency is decent (18 samples for ADC, 21 samples for DAC).  No I2C/SPI control port therefore no volume control or other stuff but this keeps things really simple.

The AK4558 is a really nice upgrade (even lower latency, 108 dB dynamic range) but it's QFN.

The AK5386 ADC -- 192 kHz, 110dB dynamic range, TSSOP-16.  Only a handful of passive components needed.  No control port but simple, compact, and very quiet.  Moderately low latency of 16.5 samples.

The AK4420 DAC -- 192 kHz, 105 dB, TSSOP-16, single 5V supply, 19.3 sample latency, super easy to use.  Outputs are ground reference so this makes it even easier to use.

Those are my go to parts.

I've also use the TI PCM5102.  Also super easy to use and it even has a built in PLL that can derive its MCLK from the BCLK or WCLK signals if needed.  Ground referenced outputs, very high dynamic range, up to 384 kHz FS, and low latency.

Since FlexFX supports up to 32 channels and TDM one could use multichannel ADCs/DAC's.  The PCM1681 and AD1934 look interesting although I've never used them.

In all cases I prefer parts that have a HW control option and that don't require I2C or SPI just to keep things simple and to keep the FW agnostic of ADC/DAC/CODEC.  But FlexFX does support I2C so if you want to use part with I2C ports for filter selection, sample rate selection, volume control, etc you can easily do that.

pruttelherrie

Re: Audio Effects DSP Board
« Reply #224 on: November 27, 2017, 12:33:31 PM »
I sense an AKM fan here :)

I did a bit more googling into the datasheets of TI, Cirrus and Analog Devices stuff. For higher channel counts it quickly begins to slide towards impractical packages and/or really tiny leads. So for the short term ADAT seems for me the way to go. Or is there a way to multiplex I2S outputs into I8S (TDM) streams? I guess the ADC's need to be clocked in sync for that, one master and multiple slaves or so.

pruttelherrie

Re: Audio Effects DSP Board
« Reply #225 on: November 27, 2017, 12:38:35 PM »
Also, what I don't understand is that both devicemakers and interfacemakers only seem to make multichannel products where the number of outputs is *always* higher than the number of inputs. I mean, 6 in/20 out interfaces, who on earth is using that? I just don't understand the market here.

I do understand that outputs are cheaper on silicon than inputs, but has nobody told these guys that they need to listen to their customers? Or is the thinking "outputs are practically free so let's just put them in there so that we seem to be better than the competitors"???
« Last Edit: November 27, 2017, 03:42:47 PM by pruttelherrie »

markseel

Re: Audio Effects DSP Board
« Reply #226 on: November 27, 2017, 05:06:40 PM »
Or is there a way to multiplex I2S outputs into I8S (TDM) streams? I guess the ADC's need to be clocked in sync for that, one master and multiple slaves or so.
FlexFX supports 4 sets of I2S, I4S, or I8S input and output wires (four input wires, four output wires, each wire having 2, 4 or 8 channels) all synchronized to BCLK and WCLK.  For multichannel converters and/or multiple stereo converters there's a single set of MCLK, BCLK and WCLK.  For multi-channel converters not using TDM there's of course one SDIN or SDOUT for each pair of analog signals.  TDM lowers the SDIN/SDOUT wire count but finding lower pin-count (TSSOP-20 or 24) eight channel converters looks challenging.  Regardless of multi-channel solution (TDM, no TDM, one IC, multiple IC's) all devices share the clocks (MCLK, BCLK, WCLK) so that data channels and data signals (SDIN or SDOUT) clock edges are synced up.  Note that MCLK is generally used for the DAC/ADC converter's internal processing and I2S related port clock derivation whereas BCLK and WCLK are what SDIN/SDOUT are synced up to.  BCLK and WCLK are provided by FlexFX (FlexFX is the I2S/I4S/I8S clock master) therefore all converters must be used in slave mode.  So FlexFX provides BCLK and WCLK to converters and the master audio oscillator provides the (usually 24.576 Mhz or 22.5792 Mhz) MCLK to FlexFX as well a s all of the converters.
« Last Edit: November 28, 2017, 10:13:51 AM by markseel »

pruttelherrie

Re: Audio Effects DSP Board
« Reply #227 on: November 27, 2017, 06:10:43 PM »
TDM lowers the SDIN/SDOUT wire count but finding lower pin-count (TSSOP-20 or 24) eight channel converters looks challenging.
True, although I did find LQFP-48 packaged codecs, lead pitch 0.5mm is only slightly narrower than the 0.65mm of TSSOP ;)
[edit] for example the Cirrus Logic CS5368 (which is actually not a codec but only the ADC's) [/edit]

Quote
So FlexFX provides BCLK and MCLK to converters and the master audio oscillator provides the (usually 24.576 Mhz or 22.5792 Mhz) MCLK to FlexFX as well a s all of the converters.

So the FlexFX board doesn't provide a master clock, in your dev-IO-combo it's on the IO-board?
« Last Edit: November 27, 2017, 06:12:30 PM by pruttelherrie »

markseel

Re: Audio Effects DSP Board
« Reply #228 on: November 28, 2017, 10:24:38 AM »
There was a typo - corrected it reads: "So FlexFX provides BCLK and WCLK to converters and the master audio oscillator provides the (usually 24.576 Mhz or 22.5792 Mhz) MCLK to FlexFX as well as all of the converters."

"So the FlexFX board doesn't provide a master clock, in your dev-IO-combo it's on the IO-board?"

Correct.  FlexFX and the converters all receive MCLK from the master oscillator.  But, yes, there is a 24.576 MHz oscillator on the demo board that supplies the AK4556 and the FlexFX module with MCLK.  Like this:

Code: [Select]
Module              Demo Board
--------           -------------
   |                     |
   |<-----MCLK-----------+    24.576 Mhz oscillator on demo board (to CODEC and to Module)
   +------BCLK---------->|    To A4556 CODEC on demo board
   +------WCLK---------->|    To A4556 CODEC on demo board
   +------SDOUT[0:3]---->|    To A4556 CODEC (only SDOUT[0])
   |<-----SDIN[0:3]------+    From A4556 CODEC (only SDIN[0])
   |                     |



« Last Edit: November 28, 2017, 10:26:20 AM by markseel »

pruttelherrie

Re: Audio Effects DSP Board
« Reply #229 on: November 28, 2017, 02:22:29 PM »
Clear! Thanks!

markseel

Re: Audio Effects DSP Board
« Reply #230 on: November 28, 2017, 05:37:32 PM »
Here's another example.  From the FlexFX Github README:

Example Application #3 - Overdrive

Overdrive example demonstrating up/down sampling, anti-aliasing filters, and the use of look-up tables and Lagrange interpolation to create a simple preamp model. Up/down sampling by a factor of 2 brings the internal sampling rate to 384 kHz to help manage the aliasing of harmonics created from the nonlinear behavior of the preamp.

https://github.com/markseel/flexfx_kit/blob/master/README.md#example-application-3---overdrive

markseel

Re: Audio Effects DSP Board
« Reply #231 on: December 06, 2017, 09:39:42 PM »
Sorry for the board delays all.

The 50mil 2x5 ribbon cable as the interface between the XTAG and the board had issues.  Turns out that when using the high-speed debug features of XTAG2 the serial data was getting corrupt.  XMOS recommends LVDS when going over 10 cm or so and the ribbon cable and 2x5 connectors were a problem.

So I updated the board to incorporate the 100mil 2x10 header of the XTAG2 to eliminate the ribbon cable so that high-speed debug features work properly.  Now the XTAG2 just plugs into the board(s) directly.  Another delay but it's for the best :-)

I also added a board to the mix - the combo board.  It's the same as the small USB/XMOS digital board except that an audio interface (input buffers/filters, AK4420 DAC and AK5386 ADC) are added on the same board for convenience.

Both boards have the same pinout and dimensions except that the combo board is longer and has extra pins for analog input/output and separate ground/supply if desired. The ADC/DAC on the combo boards is hard-wired to the I2S interface and uses ADC0 and DAC0 signals leaving ADC1/2/3 and DAC1/2/3 available for external parts.  Boards should be back in a couple of weeks.


« Last Edit: December 06, 2017, 09:41:49 PM by markseel »