Digigram audio device

Hi. I have CasparCG 2.4.0 server in Windows 11. I also have a Digigram VX442HR soundcard (4 xlr balanced inputs and 4 xlr balanced outputs). This card ouputs are seen is Windows as CHA (Digigram VX442HR) and CHB (Digigram VX442HR). The thing is that I want to configure Caspar for making sound output of channel 1 (screen consumer) through CHA and sound of channel 2 through CHB.

My config file reduced only to 1 channel (to try) is:

<?xml version="1.0" encoding="utf-8"?>

<configuration>
    <paths>
          ...
    </paths>
    <lock-clear-phrase>secret</lock-clear-phrase>
    <log-level>debug</log-level>
    <audio>
        <channels>2</channels>
        <samplerate>48000</samplerate>
        <buffer-depth>512</buffer-depth>
    </audio>
    <channels>
        <channel>
            <video-mode>720p5000</video-mode>
            <consumers>
                <screen />
                <system-audio />
            </consumers>
            <audio>
                <audio-default>CHA (Digigram VX442HR)</audio-default>
            </audio>
        </channel>
    </channels>       
    <controllers>
        <tcp>
            <port>5250</port>
            <protocol>AMCP</protocol>
        </tcp>
    </controllers>
</configuration>

No matter what i change in this config file. the sound always goes through the default windows sound card. I have tried many things but I cannot make it work as I want.
If I set the Digigram card as default in Windows, then it works.

Anyone has experience using dedicated audio cards? Thanks in advance

I don’t know where you got that

<audio>
                <audio-default>CHA (Digigram VX442HR)</audio-default>
            </audio>

in your config file from, it is not even close to valid syntax.

An example of the correct syntax can be found further down the config file server/src/shell/casparcg.config at master · CasparCG/server · GitHub. Copy that to the active portion of the config file (not inside of a channel) and set the correct value

Thanks Julusian. After so many tries and changes my config was not good (ChatGPT gave me a bad config, maybe for old versions). Now I can see several openAl devices:

[2025-01-02 14:34:24.367] [info]    ------- OpenAL Device List -----
[2025-01-02 14:34:24.367] [info]    OpenAL Soft on Altavoces (High Definition Audio Device)
[2025-01-02 14:34:24.367] [info]    OpenAL Soft on CHA (Digigram VX442HR)
[2025-01-02 14:34:24.367] [info]    OpenAL Soft on Altavoces (2- Blackmagic DeckLink Duo 2 (2) Audio)
[2025-01-02 14:34:24.367] [info]    OpenAL Soft on Altavoces (2- Blackmagic DeckLink Duo 2 (3) Audio)
[2025-01-02 14:34:24.367] [info]    OpenAL Soft on Altavoces (2- Blackmagic DeckLink Duo 2 (1) Audio)
[2025-01-02 14:34:24.367] [info]    OpenAL Soft on Altavoces (2- Blackmagic DeckLink Duo 2 (4) Audio)
[2025-01-02 14:34:24.367] [info]    OpenAL Soft on CHB (Digigram VX442HR)
[2025-01-02 14:34:24.367] [info]    ------ OpenAL Devices List done -----

Now I can define one of these devices as default in the global section and works ok. But is it possible to define different device for each channel?

The tag inside doesn’t seem to have this option:

<system-audio>
                <channel-layout>stereo [mono|stereo|matrix]</channel-layout> <-- The channel-layout for the audio from the default Windows or Linux soundcard -->
                <latency>200 [0..]</latency> <-- Configurable latency, some use this to try and sync system-audio with the video from another output -->
            </system-audio>

Thanks again

ChatGPT gave me a bad config, maybe for old versions

Nope, that was never the config syntax for this, changing the output device has only been supported for about 18 months. ChatGPT is hallucinating again.

But is it possible to define different device for each channel?

No. That has not been implemented by anyone yet

ChatGPT never gives you a good config. It only pretends to know anything about CasparCG. AFAIK There has never be any version where that <audio> node would have worked.

I see… AI still has a lot of room for improvement then, hahaha.

At this point, I have several options:

  1. Use a de-embedder for each channel to extract analog audio outputs (my last resort). I forgot to mention that I’m using the BM Decklink Duo 2.
  2. Run multiple server instances (one per channel), each with a different default audio device.
  3. Use additional software (like VB Audio Cable), set it as the default audio device, and then route the sound to each Digigram device based on the channel (e.g., CH1 & CH2 to one device, and CH3 & CH4 to another). Not sure if this is possible.
  4. Wait for a future version that implements this functionality.
  5. Any other?

Do you have any advice based on your experience? Thank you very much!

  1. That is what I would do. This will keep better sync too, the system audio consumer can drift out of sync to the decklink outputs.
  2. No comments from me
  3. CasparCG will only do a stereo to the system audio, so this wouldnt work
  4. This is unlikely to happen soon, unless someone contributes it. As far as I’m aware, the ‘big’ users do 1 to get their audio, so there hasn’t been a demand for implementing this. Being able to change it at all from using the system default was a contribution the other year.

Ok. Thank you very much for your help.