Skip to content

can't set arbitrary number of channels for JACK clients any more after update to 0.18 (Jack + Pipewire) #1259

Description

@the-drunk-coder

Hi,

I had CPAL running on 0.15 for a long time. There, it was possible to run the JACK client with an arbitrary number of channels by setting the channels field of the StreamConfig.

After updating to 0.18.1, that doesn't seem to be possible anymore, as the default device with JACK + Pipewire seems to probe the maximum channels available for available (physical) sound cards, and sets that as max_channels for the default device, so opening a stream with a StreamConfig that requests more than that fails.

When trying to start with more channels than available, starting the output stream fails.

This breaks scenarios where the goal isn't to connect a client directly to the sound card. For example, I frequently use my application to produce Higher-Order Ambisonics, i.e. 16 or 24 channels, and route that into an external decoder, and route that to the output of my physical sound card.

With 0.15, that was no problem, but it seems like I can't do that anymore with 0.18, unless of course there's some way to override the devices' max_channel field that I missed ...

Esp. in JACK + Pipewire scenarios the limitation seems kinda arbitrary, as you can route anything anywhere ...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions