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