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 ...
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
channelsfield of theStreamConfig.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_channelsfor the default device, so opening a stream with aStreamConfigthat 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_channelfield that I missed ...Esp. in JACK + Pipewire scenarios the limitation seems kinda arbitrary, as you can route anything anywhere ...