Skip to content

RX failing to make connections with external Dante dvices #26

@reinerterig

Description

@reinerterig

Hi I've been chipping away at running inferno on my rpi4. I'm using an Monome Norns image built on raspbian 11 bullseye. Statime is sucesfully recieving clock from a grandmaster (Focusrite Red 8Pre) on my Dante network and TX is working fine. I'm able to send audio streams to the red 8 on my network just fine. but, trying to get RX working is less successful.

This is my current .asoundrc
`# Inferno ALSA Configuration for Norns

Two separate instances for TX (transmit) and RX (receive)

Required because alsa_in and alsa_out cannot share the same Inferno instance

=============================================================================

Dante TX - for sending audio TO the Dante network (used by alsa_out)

=============================================================================

pcm.dante_tx {
type plug
slave {
pcm {
type inferno
NAME "NornsTX"
DEVICE_ID "e45f01f4a4450001" # Unique device ID for TX
SAMPLE_RATE 48000
TX_CHANNELS 2 # We transmit 2 channels
RX_CHANNELS 0 # TX only - no receive channels
TX_LATENCY_NS 10000000 # 10ms latency
RX_LATENCY_NS 10000000
PROCESS_ID 42 # Unique process ID
ALT_PORT 6000 # Port range 6000-6003
}
}
}

=============================================================================

Dante RX - for receiving audio FROM the Dante network (used by alsa_in)

=============================================================================

pcm.dante_rx {
type plug
slave {
pcm {
type inferno
NAME "NornsRX"
DEVICE_ID "e45f01f4a4450099" # Different device ID for RX
SAMPLE_RATE 48000
TX_CHANNELS 0 # RX only - no transmit channels
RX_CHANNELS 2 # We receive 2 channels
TX_LATENCY_NS 10000000
RX_LATENCY_NS 10000000 # 10ms latency
PROCESS_ID 43 # Different process ID
ALT_PORT 6003 # Port range 6000-6003
}
}
}

=============================================================================

Control interfaces

=============================================================================

ctl.dante_tx {
type hw
card 1
}

ctl.dante_rx {
type hw
card 2
}`

when I start the RX channels with:
export INFERNO_CLOCK_PATH=/tmp/usrvclock/statime-clock alsa_in -d dante_rx -j dante_in -q 1 &

I can see it's recieving clock:
[2026-01-28T01:34:39.430057Z INFO inferno_aoip::state_storage] using state directory: /home/we/.local/state/inferno_aoip/e45f01f4a4450099 [2026-01-28T01:34:39.430393Z INFO inferno_aoip::device_server] clock path: Some("/tmp/usrvclock/statime-clock") [2026-01-28T01:34:39.430440Z INFO inferno_aoip::device_server] waiting for clock [2026-01-28T01:34:39.430508Z INFO inferno_aoip::device_server] clock ready [2026-01-28T01:34:39.430777Z INFO inferno_aoip::device_server] all common tasks spawned [2026-01-28T01:34:39.430991Z DEBUG asound_module_pcm_inferno] started receiver

And the device shows up in the controller, but connecting it to the Red 8 I get the following errors:
[2026-01-28T01:35:17.271946Z ERROR inferno_aoip::protocol::flows_control] server returned error: 1102000a000801000323 [2026-01-28T01:35:17.272014Z ERROR inferno_aoip::device_server::channels_subscriber] failed to request flow from 169.254.121.87:4455: Kind(InvalidData) [2026-01-28T01:35:21.485120Z INFO inferno_aoip::device_server::arc_server] disconnect requested: local channel 2 [2026-01-28T01:35:25.635888Z INFO inferno_aoip::device_server::arc_server] disconnect requested: local channel 1

However, if I also start the alsa_out TX I see both instances in controller and I'm able to establish a connection between the two inferno instances:
[2026-01-28T01:35:59.430840Z INFO inferno_aoip::device_server::arc_server] connection requested: 1 <- Some("TX 1") @ Some("NornsTX") [2026-01-28T01:35:59.431373Z DEBUG inferno_aoip::device_server::channels_subscriber] we need to subscribe (local channel indices): {0} [2026-01-28T01:35:59.431412Z DEBUG inferno_aoip::device_server::channels_subscriber] after dealiasing (local channel indices): {0} [2026-01-28T01:35:59.432534Z DEBUG inferno_aoip::mdns_client] resolving ["TX 1@NornsTX", "_netaudio-chan", "_udp", "local"] [2026-01-28T01:35:59.432958Z DEBUG inferno_aoip::device_server::channels_subscriber] Ok(AdvertisedChannel { addr: 169.254.191.72:6002, tx_channels_per_flow: 2, tx_channel_id: 1, bits_per_sample: 24, dbcp1: 4354, fpp_min: 2, fpp_max: 32, min_rx_latency_ns: 10000000, multicast: None })

I have tried going down the pipewire route ( as per your advice), but am having issues getting it to play nicely with Jack. as the Monome Norns ecosystem is handling all its internal connections with Jack, ideally, pipewire should just be a bridge between inferno and the native io. But I can't even establish a device with pipewire yet so, I'm working with alsa_in and alsa_out in the meantime.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions