How to Implement Single Input Connection with Various Sample Rates


I have viewed the following thread :

I have also been examining SigmaStudio and the blocks with parameters that can be set. The help file assists in some instances, but does not go into detail. Some blocks can have their sample rate set and others cannot.

The problem is that I wish to pursue a crossover project as per my other post, but the datasheet for the ADAU1467 and help files etc., does not provide the answers.

For the active crossover, there is a delay to be implemented for the low pass, and midrange signals to compensate for the differences in driver sound origin points. The delays can only be in multiples of milliseconds or samples.

The input to the active crossover will be a Toslink or Coaxial connection with receiver which outputs LRCLK, BCLK, and WCLK for stereo signals. So I will use the input stream as opposed to the SPDIF (which is not fully AES compliant as stated in the literature).

The input to the active crossover will be multiple dataword lengths (16bit, 24bit) and sample rates (44.1kHz, 48kHz, 96kHz, 192kHz).

Since delays are required and the input can be a multitude of data word lengths and sample rates, how do you achieve automated processing. That is :

  1. If the input data rates are varying, do I have to implement the ASRC block to convert any incoming data rate to the system sample rate which I will set to 192kHz or 384kHz ???
  2. Will the ASRC automatically detect the sample rate of the incoming data using the BCLK signal and convert {44.1/48/96/192k}kHz to {192/384}kHz depending on how I set the system sample rate ???
  3. Do I have to then set each delay for the requisite number of samples to achieve the relevant micro-second delays for each filter path ???
  4. Can I use the SPDIF connection on the ADAU1467 (does not seem to be in the SigmaStudio) and are the three previous points the same – I have to use an ASRC to convert to the system sample rate ???
  5. Is there any way of setting the processing to the incoming data stream sample rate (44.1/48/96/192k) without the ASRC such that there are multiple paths through the system. That is, for 44.1kHz there is one path with delay set to the relevant number of sample periods for 44.1kHz, and another path for 48kHz with the delay set accordingly, and so on ???, and the system automatically switches processing between the 4 paths (44.1, 48, 96, 192).

For a previous project I used the Cirrus CS8416 receiver – and could read the data registers to determine the sample rate of the connection. I could then use this information as required.

Is there any mechanism either to use the ADAU1467 internal registers to obtain this information with logic control in the DSP core to select specific paths as per item 5 above ???

Or would such logic only be possible with an external micro-controller interfacing to the DSP GPIO pins to select the relevant paths ???

Apologies for the long request – but I did not want to start down a specific design approach if the solution is not achievable.

Thanks and regards,


  • Hello Richard,

    I am not able to answer in too much detail right now. I would like to start a dialog.

    If you will be running the DSP at a single sample rate then it will make things much easier. The ASRCs will automatically convert the sample rates. It will track the difference with the sample rates and will adjust to drifts in sample rates but if the rate changes too quickly then it will lose lock and recalculate and relock. So the ASRCs work very well for what you need.

    Since the DSP internal core rate will remain the same then you can keep the delay settings the same to adjust to the speaker drivers and cabinets.

    You can read the ASRC ratio register and that will tell you what the incoming sample rate is but I don't think you will need to do it.

    The fastest you should run the core is at a 192kHz sample rate. You can make the core run at 384kHz but you will have very few instructions and there will be a limitation with the ASRC range of sample rates. Basically it will roughly only convert sampling rates with a max 8:1 ratio. So you will not be able to go from 44.1kHz to 384kHz. At 192kHz core sample rate you will be fine.

    Dave T

Reply Children
No Data