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