Re: MAN301 internal routing (Re: [PATCH] ALSA: dice: add stream format parameters for Weiss devices)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Takashi

Thanks for your inquiry. Concerning the routing it's one pretty simple routing mode.
I guess it's best if I send you the routing excerpt from our DICE firmware (for low & mid ratemodes, the high rates are similar but with optional dual-wire routing):

static HRESULT routeLowMid (void)

{

	// DAC main gets audio from Firewire

	dalSetRoute(eDAL_INTERFACE_1, TX_INS0_CH0, mute_DAC ? RX_MUTED_CH : RX_AVS1_CH0);

	dalSetRoute(eDAL_INTERFACE_1, TX_INS0_CH1, mute_DAC ? RX_MUTED_CH : RX_AVS1_CH1);

	// AES/EBU OUT XLR 1 gets audio from Firewire

	dalSetRoute(eDAL_INTERFACE_1, TX_AES0_CHL, mute_XLR ? RX_MUTED_CH : RX_AVS1_CH0);

	dalSetRoute(eDAL_INTERFACE_1, TX_AES0_CHR, mute_XLR ? RX_MUTED_CH : RX_AVS1_CH1);

	// AES/EBU OUT RCA 1 gets audio from Firewire

	dalSetRoute(eDAL_INTERFACE_1, TX_AES2_CHL, (mute_RCA|isDualWire) ? RX_MUTED_CH : RX_AVS1_CH0);

	dalSetRoute(eDAL_INTERFACE_1, TX_AES2_CHR, (mute_RCA|isDualWire) ? RX_MUTED_CH : RX_AVS1_CH1);

	aesDualTx_Right_Func(isDualWire?FALSE:TRUE);

#ifdef _BUILD_OLD_MAN202

	// AES/EBU OUT XLR 2 gets audio from Firewire

	dalSetRoute(eDAL_INTERFACE_1, TX_AES2_CHL, mute_XLR ? RX_MUTED_CH : RX_AVS1_CH0);

	dalSetRoute(eDAL_INTERFACE_1, TX_AES2_CHR, mute_XLR ? RX_MUTED_CH : RX_AVS1_CH1);

	// AES/EBU OUT RCA 2 gets audio from Firewire

	dalSetRoute(eDAL_INTERFACE_1, TX_AES3_CHL, mute_RCA ? RX_MUTED_CH : RX_AVS1_CH0);

	dalSetRoute(eDAL_INTERFACE_1, TX_AES3_CHR, mute_RCA ? RX_MUTED_CH : RX_AVS1_CH1);

#endif



	switch (inputSelect) {

	case INPUT_XLR:

		// Firewire IN gets audio from AES/EBU IN XLR

		dalSetRoute(eDAL_INTERFACE_1, TX_AVS1_CH0, RX_AES0_CHL);

		dalSetRoute(eDAL_INTERFACE_1, TX_AVS1_CH1, RX_AES0_CHR);

		break;

	case INPUT_RCA:

		// Firewire IN gets audio from AES/EBU IN RCA

		dalSetRoute(eDAL_INTERFACE_1, TX_AVS1_CH0, RX_AES1_CHL);

		dalSetRoute(eDAL_INTERFACE_1, TX_AVS1_CH1, RX_AES1_CHR);

		break;

#ifndef _BUILD_OLD_MAN202

	case INPUT_TOS:

		// Firewire IN gets audio from AES/EBU IN TOS

		dalSetRoute(eDAL_INTERFACE_1, TX_AVS1_CH0, RX_AES2_CHL);

		dalSetRoute(eDAL_INTERFACE_1, TX_AVS1_CH1, RX_AES2_CHR);

		break;

#endif

	default:

		// Firewire IN muted

		dalSetRoute(eDAL_INTERFACE_1, TX_AVS1_CH0, RX_MUTED_CH);

		dalSetRoute(eDAL_INTERFACE_1, TX_AVS1_CH1, RX_MUTED_CH);

		break;

	}

	return NO_ERROR;

}


In this the following parameters are set via the dedicated AV/C commands, that were previously mentioned:
* mute_DAC
* mute_XLR
* mute_RCA
* isDualWire
* inputSelect

Let us know if you have further questions.

Best regards,
Rolf Anderegg

On 28.02.24 00:54, Takashi Sakamoto wrote:
Hm. I'm sorry but it is still unclear that the destination of audio
signal in the IEEE 1394 isochronous packet arrived at your device
(precisely the source port in the router function of TCAT DICE chip).
It is Playback PCM channel in ALSA word, and depicted as
'stream-input-1/2' in my diagram for my convenience.

```
spdif-opt-input-1/2  ---+
spdif-coax-input-1/2 --(or)--> digital-input-1/2 -----------------> stream-output-1/2
aesebu-xlr-input-1/2 ---+             |
                                       v
stream-input-1/2 --------------------(or)--+----------------------> spdif-coax-output-1/2
                                             +----------------------> aesebu-xlr-output-1/2
                                             +--analog-output-1/2 --> analog-xlr-output-1/2
                                                        +-----------> analog-coax-output-1/2
```

I assume that the actual source selection of 'digital-input-1/2' is done
in the router function of DICE chip as well as the selection between
'digital-input-1/2' and 'stream-input-1/2'. The mixer function of the
chip is not used as I expected, thus the selection should exist as the
source of audio signals for the outputs. However, in the above description,
I cannot find such selection.

Or the device has a fixed route between 'stream-input-1/2' and
'analog-{xlr,coax}-output-1/2'? The user can not hear the audio signal
of opt/coax/xlr digital input ports in the analog outputs?


Thanks

Takashi Sakamoto



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux