tv2 / sisyfos-audio-controller

Intelligent Audio for Automation systems
Other
41 stars 15 forks source link

vMix? #285

Open stevespaw opened 10 months ago

stevespaw commented 10 months ago

@olzzon @alvancamp I am back to a project that I would love to use this. I See that it supports vMix :-) now! I have a use case for Mixbus (ardour) and another that is vMix (this is a big one). I am using docker. I do not see any setting for vMix. And I still can't seem to get a connection to Mixbus working. Here my run: docker run --volume /opt/sisyfos-audio-controller:/opt/sisyfos-audio-controller/storage -p 1176:1176 -p 5255:5255 -p 5255:5255/udp -p 3819:3819/udp --restart always olzzon/sisyfos-audio-controller:develop

image image

Any help to get this off of the ground would be appreciated! Thanks

stevespaw commented 10 months ago
image
stevespaw commented 10 months ago

OK Sorry I now used the (windows) docker commands and get the vMix settings, but when I make the connection, it crashes. steve@Shadow-Studio:~$ docker run --mount source=sisyfos-vol,target=/opt/sisyfos-audio-controller/storage -p 1176:1176 -p 5255:5255 tv2media/sisyfos-audio-controller:develop yarn run v1.22.19 $ cross-env NODE_ENV=production node server/dist/server [node-vmix] Instanciating TCP socket to vMix instance 192.168.2.104 [node-vmix] Received host 192.168.2.104 [node-vmix] Received options { port: 8099, debug: true } [node-vmix] Attempting to establish TCP socket connection to vMix instance 192.168.2.104:8099 [node-vmix] Connected to vMix instance via TCP socket 192.168.2.104 8099 [node-vmix] Sending message to vMix instance via socket XML

[node-vmix] Sending message to vMix instance via socket FUNCTION SUBSCRIBE TALLY

/opt/sisyfos-audio-controller/server/dist/server/src/utils/mixerConnections/VMixMixerConnection.js:137 const { inputGain, muteOn, pflOn, pgmOn, voOn } = store_1.state.faders[0].fader[assignedFaderIndex]; ^

TypeError: Cannot destructure property 'inputGain' of 'store_1.state.faders[0].fader[assignedFaderIndex]' as it is undefined. at /opt/sisyfos-audio-controller/server/dist/server/src/utils/mixerConnections/VMixMixerConnection.js:137:25 at Array.forEach () at /opt/sisyfos-audio-controller/server/dist/server/src/utils/mixerConnections/VMixMixerConnection.js:121:26 at /opt/sisyfos-audio-controller/node_modules/node-vmix/dist/modules/connection-tcp.js:291:21 at Array.forEach () at ConnectionTCP.emitXmlMessage (/opt/sisyfos-audio-controller/node_modules/node-vmix/dist/modules/connection-tcp.js:290:27) at ConnectionTCP._processBufferXMLmessage (/opt/sisyfos-audio-controller/node_modules/node-vmix/dist/modules/connection-tcp.js:584:14) at ConnectionTCP._processBuffer (/opt/sisyfos-audio-controller/node_modules/node-vmix/dist/modules/connection-tcp.js:206:29) at Socket. (/opt/sisyfos-audio-controller/node_modules/node-vmix/dist/modules/connection-tcp.js:494:18) at Socket.emit (node:events:513:28)

Node.js v18.16.1 error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

stevespaw commented 10 months ago

BTW docker on Windows WSL2 if it matters. If vMix is closed, sisyfos starts fine, but as soon as vMix starts this crash happens.

olzzon commented 10 months ago

Hi @stevespaw I'm not using vMix protocol myself, i guess it's running if you don't have any connection to vMix. It looks like it receives a channel from vMix that is not available in Sisyfos. And as the reference is not optional it gives an error. I think that @PeterC89 are using it? so maybe he knows something, there was an issue regards having more Sisyfos faders than vMix, maybe it's also the other way around, when vMix has more channels than Sisyfos?. Maybe @mint-dewit knows something?

best regards Kasper

stevespaw commented 10 months ago

Thanks for the reply Kasper @olzzon ! If @PeterC89 or @mint-dewit could give me an idea that would be great. I am now running it in linux docker to make sure no issues. I have made a simple 4 input project and selected 4 faders in vMix. I get the same crash as above as soon as it connects.

olzzon commented 10 months ago

@stevespaw It's related to the doesChannelExists, it looks like it is taken for given that all channels in Sisyfos has a fader assigned to it. So maybe a workaround that could work would be to assign all vMix channels to a fader (route 1:1) But as i don't have acces to a vMix i can't test this.

To fix the issue in the code either "this.doesChannelExists" check should be enhanced to also check whether it's assigned to a fader, or a second check "if (!state.faders[0].fader[assignedFaderIndex])" should be added like in this example:

                if (!this.doesChannelExists(input.number - 1)) {
                    return
                }

                const { outputLevel, fadeActive } =
                    state.channels[0].chMixerConnection[this.mixerIndex]
                        .channel[input.number - 1]
                const assignedFaderIndex = this.getAssignedFaderIndex(input.number - 1)
                if (!state.faders[0].fader[assignedFaderIndex]) {
                    return
                }
                const { inputGain, muteOn, pflOn, pgmOn, voOn } =
                    state.faders[0].fader[assignedFaderIndex]
olzzon commented 10 months ago

@stevespaw You could also try and run the nrkno version: https://github.com/nrkno/sofie-sisyfos-audio-controller/pkgs/container/sofie-sisyfos-audio-controller

As this is from prior to the last refactor (that might have broken the vMix protocol) And feel free to give feed back if this works, so we can fix it in the TV2 version :)

stevespaw commented 10 months ago

Still no luck with the nkrno version. I have tried every combination of faders and setting that I can think of. It still crashes when I launch vMix: Done in 49.25s. yarn run v1.22.18 $ cross-env NODE_ENV=production node server/dist/server ERR Error: connect ECONNREFUSED 172.30.0.103:8099 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1157:16) ERR Error: connect ECONNREFUSED 172.30.0.103:8099 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1157:16) /opt/sisyfos-audio-controller/server/dist/server/src/utils/mixerConnections/VMixMixerConnection.js:125 const { inputGain, muteOn, pflOn, pgmOn, voOn } = store_1.state.faders[0].fader[assignedFader]; ^ TypeError: Cannot destructure property 'inputGain' of 'store_1.state.faders[0].fader[assignedFader]' as it is undefined. at /opt/sisyfos-audio-controller/server/dist/server/src/utils/mixerConnections/VMixMixerConnection.js:125:25 at Array.forEach () at /opt/sisyfos-audio-controller/server/dist/server/src/utils/mixerConnections/VMixMixerConnection.js:113:26 at /opt/sisyfos-audio-controller/node_modules/node-vmix/dist/modules/connection-tcp.js:291:21 at Array.forEach () at ConnectionTCP.emitXmlMessage (/opt/sisyfos-audio-controller/node_modules/node-vmix/dist/modules/connection-tcp.js:290:27) at ConnectionTCP._processBufferXMLmessage (/opt/sisyfos-audio-controller/node_modules/node-vmix/dist/modules/connection-tcp.js:584:14) at ConnectionTCP._processBuffer (/opt/sisyfos-audio-controller/node_modules/node-vmix/dist/modules/connection-tcp.js:206:29) at Socket. (/opt/sisyfos-audio-controller/node_modules/node-vmix/dist/modules/connection-tcp.js:494:18) at Socket.emit (node:events:526:28) info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. error Command failed with exit code 1.

stevespaw commented 10 months ago

docker pull ghcr.io/nrkno/sofie-sisyfos-audio-controller:master docker volume create sisyfos-vol sudo docker run --mount source=sisyfos-vol,target=/opt/sisyfos-audio-controller/storage --network="host" ghcr.io/nrkno/sofie-sisyfos-audio-controller:master

This is what I ran BTW.