Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to use audiomixer API #6

Open
ethan-ou opened this issue Jun 9, 2021 · 15 comments
Open

Unable to use audiomixer API #6

ethan-ou opened this issue Jun 9, 2021 · 15 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@ethan-ou
Copy link

ethan-ou commented Jun 9, 2021

After connecting to an ATEM and successfully switching video sources, I'm finding I'm unable to control any audio sources, including volume, enable and disable etc.

Some example code I'm using for the audio mixer:

import PyATEMMax
import time
switcher = PyATEMMax.ATEMMax()
switcher.connect("192.168.8.172")
switcher.waitForConnection(infinite=False)

switcher.setAudioMixerInputMixOption(switcher.atem.audioSources.mic1, switcher.atem.audioMixerInputMixOptions.on) # Fails to turn on microphone
switcher.setAudioMixerInputVolume(switcher.atem.audioSources.mic1, 3.0)
print("Mic 1 Volume 1:", switcher.audioMixer.input["mic1"].volume) # Prints 0, when should be 3

time.sleep(1)

switcher.setAudioMixerInputMixOption(switcher.atem.audioSources.mic1, switcher.atem.audioMixerInputMixOptions.off) # Fails to turn off microphone
switcher.setAudioMixerInputVolume(switcher.atem.audioSources.mic1, 0.0)
print("Mic 1 Volume 2:", switcher.audioMixer.input["mic1"].volume) # Prints 0

When viewing the ATEM software control, I can also verify none of the values are changing as expected.

Let me know if I've written the code incorrectly or whether this is an internal bug.

@clvLabs
Copy link
Owner

clvLabs commented Jun 21, 2021

Please add the following lines before your `switcher.connect()' , rerun the test and post its output:

switcher.setLogLevel(logging.DEBUG)
switcher.setSocketLogLevel(logging.DEBUG)

I'll try to see what's happening thru the logs.

Thank you!

@ethan-ou
Copy link
Author

Here's the output:

Received UNKNOWN command: [_FAC]
Received UNKNOWN command: [_FEC]
Received UNKNOWN command: [AiVM]
Received UNKNOWN command: [TcLk]
Received UNKNOWN command: [TCCc]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KACk]
Received UNKNOWN command: [KACC]
UNKNOWN ATEMKeyFrames 0 - processing [KKFP]
UNKNOWN ATEMKeyFrames 0 - processing [KKFP]
UNKNOWN ATEMMediaPlayerSourceTypes 0 - processing [MPCE]
Received UNKNOWN command: [CapA]
Received UNKNOWN command: [FMPP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FMTl]
Received UNKNOWN command: [FAMP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [MOCP]
Received UNKNOWN command: [AMLP]
Received UNKNOWN command: [RMSu]
Received UNKNOWN command: [RTMS]
Received UNKNOWN command: [RTMR]
Received UNKNOWN command: [RMRD]
Received UNKNOWN command: [SRSU]
Received UNKNOWN command: [STAB]
Received UNKNOWN command: [StRS]
Received UNKNOWN command: [SRST]
Received UNKNOWN command: [SRSD]
Received UNKNOWN command: [SRSS]
Received UNKNOWN command: [SAth]
Received UNKNOWN command: [SLow]
Received UNKNOWN command: [NIfT]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FMTl]
Received UNKNOWN command: [FAMP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [MOCP]
Received UNKNOWN command: [AMLP]
Received UNKNOWN command: [RMSu]
Received UNKNOWN command: [RTMS]
Received UNKNOWN command: [RTMR]
Received UNKNOWN command: [RMRD]
Received UNKNOWN command: [SRSU]
Received UNKNOWN command: [STAB]
Received UNKNOWN command: [StRS]
Received UNKNOWN command: [SRST]
Received UNKNOWN command: [SRSD]
Received UNKNOWN command: [SRSS]
Received UNKNOWN command: [SAth]
Received UNKNOWN command: [SLow]
Received UNKNOWN command: [NIfT]
Mic 1 Volume 1: 0
Mic 1 Volume 2: 0

@clvLabs
Copy link
Owner

clvLabs commented Sep 13, 2021

Hi ethan-ou,

I'm sorry I have to guess my answer, because I don't have any switcher at hand to test my answers. But anyway, I'll try.

First of all, the source code looks good at first sight.

Looking at the program log you sent, these lines worried me:

UNKNOWN ATEMKeyFrames 0 - processing [KKFP]
UNKNOWN ATEMMediaPlayerSourceTypes 0 - processing [MPCE]

Taking a look at the code, I see that neither ATEMKeyFrames nor ATEMMediaPlayerSourceTypes have any options associated with the 0 value:

class ATEMKeyFrames(ATEMConstantList):
    """KeyFrame list"""

    a = ATEMConstant('a', 1)
    b = ATEMConstant('b', 2)
    full = ATEMConstant('full', 3)
    runToInfinite = ATEMConstant('runToInfinite', 4)


class ATEMMediaPlayerSourceTypes(ATEMConstantList):
    """MediaPlayerSourceType list"""

    still = ATEMConstant('still', 1)
    clip = ATEMConstant('clip', 2)

This makes me think your hardware may have a firmware version greater than 7.5.0 and that may be a problem with this library (see https://clvlabs.github.io/PyATEMMax/about/atem-version/)

Besides, there's a lot of

Received UNKNOWN command: [xxxx]

which again makes me think of the firmware version issue.

After all these Received UNKNOWN command messages, I can see your log outputs:

Mic 1 Volume 1: 0
Mic 1 Volume 2: 0

... but I was expecting to find Sending buffer [xxx] messages in the log containing the hex strings of the sent data.
That's why I asked to add the logLevel code:

switcher.setLogLevel(logging.DEBUG)
switcher.setSocketLogLevel(logging.DEBUG)

The resulting log will be veeeery long, but it will include every transaction between your PC and the switcher, and that can give us some clues.

@clvLabs
Copy link
Owner

clvLabs commented Feb 14, 2022

Hi there!

Just borrowed a switcher a few days ago, I'm doing some testing.

I've tried the code you sent on your first post and it yielded different results in my case:

Mic 1 Volume 1: 0.0
Mic 1 Volume 2: 2.9999943210899693

This is strange at first sight anyway, seems that it's been inverted.
Checking the code again, I saw that the issue was checking for the value just after sending the change request. When you call setAudioMixerInputVolume(), a request message is sent to the switcher and the value in switcher.audioMixer.input["mic1"].volume is not updated until the switcher's response is received.
Adding a couple sleep() instructions fixed the issue:

#!/usr/bin/python3

import PyATEMMax
import time
switcher = PyATEMMax.ATEMMax()
switcher.connect("192.168.1.111")
switcher.waitForConnection(infinite=False)

switcher.setAudioMixerInputMixOption(switcher.atem.audioSources.mic1, switcher.atem.audioMixerInputMixOptions.on) # Fails to turn on microphone
switcher.setAudioMixerInputVolume(switcher.atem.audioSources.mic1, 3.0)
time.sleep(0.05) # NEW sleep() !!
print("Mic 1 Volume 1:", switcher.audioMixer.input["mic1"].volume) # Prints 0, when should be 3

time.sleep(1)

switcher.setAudioMixerInputMixOption(switcher.atem.audioSources.mic1, switcher.atem.audioMixerInputMixOptions.off) # Fails to turn off microphone
switcher.setAudioMixerInputVolume(switcher.atem.audioSources.mic1, 0.0)
time.sleep(0.05) # NEW sleep() !!
print("Mic 1 Volume 2:", switcher.audioMixer.input["mic1"].volume) # Prints 0

switcher.disconnect()

Now the result looks as expected:

Mic 1 Volume 1: 2.9999943210899693
Mic 1 Volume 2: 0.0

While checking the response time I wrote a little script that changes the volume and the on/off option for mic1 repeated times, waits for the values to change, calculates the elapsed time and shows the values before and after the change:

#!/usr/bin/python3
import PyATEMMax
import time

SWITCHER_IP = "192.168.1.111"
MIC_NAME = "mic1"
WAIT_FOR_CHANGE = True

switcher = PyATEMMax.ATEMMax()
switcher.connect(SWITCHER_IP)
switcher.waitForConnection()

microphone = switcher.audioMixer.input[MIC_NAME]
audio_source = switcher.atem.audioSources.mic1


def change_volume_and_wait(volume, mic_on):
    mix_option = switcher.atem.audioMixerInputMixOptions.on if mic_on else switcher.atem.audioMixerInputMixOptions.off

    print(f"---[ Turning {MIC_NAME} {mix_option}, volume: {volume} ]----------------------")
    print(f"BEFORE: mixOption: {microphone.mixOption}, volume: {microphone.volume}")
    print(f"Setting mix_option to: {mix_option}")
    switcher.setAudioMixerInputMixOption(audio_source, mix_option)
    print(f"Changing volume to: {volume}")
    switcher.setAudioMixerInputVolume(switcher.atem.audioSources.mic1, volume)

    # Wait for volume change to take effect
    wait_start = time.time()
    if WAIT_FOR_CHANGE:
        while abs(microphone.volume - volume) > 0.001:
            time.sleep(0.001)

    elapsed = time.time() - wait_start
    print(f"AFTER : mixOption: {microphone.mixOption}, volume: {microphone.volume}, took {elapsed:4.3f}s")
    print()

for volume in range(3):
    change_volume_and_wait(volume, True)

for volume in range(3, 0, -1):
    change_volume_and_wait(volume, False)

switcher.disconnect()

The output:

---[ Turning mic1 on, volume: 0 ]----------------------
BEFORE: mixOption: off, volume: 0.0
Setting mix_option to: on
Changing volume to: 0
AFTER : mixOption: off, volume: 0.0, took 0.000s

---[ Turning mic1 on, volume: 1 ]----------------------
BEFORE: mixOption: off, volume: 0.0
Setting mix_option to: on
Changing volume to: 1
AFTER : mixOption: on, volume: 0.999928958055971, took 0.040s

---[ Turning mic1 on, volume: 2 ]----------------------
BEFORE: mixOption: on, volume: 0.999928958055971
Setting mix_option to: on
Changing volume to: 2
AFTER : mixOption: on, volume: 1.9999014823585968, took 0.041s

---[ Turning mic1 off, volume: 3 ]----------------------
BEFORE: mixOption: on, volume: 1.9999014823585968
Setting mix_option to: off
Changing volume to: 3
AFTER : mixOption: off, volume: 2.9999943210899693, took 0.041s

---[ Turning mic1 off, volume: 2 ]----------------------
BEFORE: mixOption: off, volume: 2.9999943210899693
Setting mix_option to: off
Changing volume to: 2
AFTER : mixOption: off, volume: 1.9999014823585968, took 0.041s

---[ Turning mic1 off, volume: 1 ]----------------------
BEFORE: mixOption: off, volume: 1.9999014823585968
Setting mix_option to: off
Changing volume to: 1
AFTER : mixOption: off, volume: 0.999928958055971, took 0.041s

You can see the value update takes an average of 0.041s in my case, and also it seems that microphone is swiched on/off correctly in my case.

Can you try this script in your setup and send me the output please ?

@68040
Copy link

68040 commented Mar 6, 2022

Same problem here.

#!/usr/bin/python3

import PyATEMMax
import logging
import time
switcher = PyATEMMax.ATEMMax()
switcher.setLogLevel(logging.DEBUG)
switcher.setSocketLogLevel(logging.DEBUG)
switcher.connect("192.168.xxx.xxx")
switcher.waitForConnection(infinite=False)

switcher.setAudioMixerInputMixOption(switcher.atem.audioSources.mic1, switcher.atem.audioMixerInputMixOptions.on) # Fails to turn on microphone
switcher.setAudioMixerInputVolume(switcher.atem.audioSources.mic1, 3.0)
time.sleep(0.05) # NEW sleep() !!
print("Mic 1 Volume 1:", switcher.audioMixer.input["mic1"].volume) # Prints 0, when should be 3

time.sleep(1)

switcher.setAudioMixerInputMixOption(switcher.atem.audioSources.mic1, switcher.atem.audioMixerInputMixOptions.off) # Fails to turn off microphone
switcher.setAudioMixerInputVolume(switcher.atem.audioSources.mic1, 0.0)
time.sleep(0.05) # NEW sleep() !!
print("Mic 1 Volume 2:", switcher.audioMixer.input["mic1"].volume) # Prints 0

switcher.disconnect()

The result incl. DEBUG logging is:

Received UNKNOWN command: [_FAC]
Received UNKNOWN command: [_FEC]
UNKNOWN ATEMVideoModeFormats 26 - processing [VidM]
Received UNKNOWN command: [AiVM]
Received UNKNOWN command: [TcLk]
Received UNKNOWN command: [TCCc]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KACk]
Received UNKNOWN command: [KACC]
Received UNKNOWN command: [CapA]
Received UNKNOWN command: [FMPP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FMTl]
Received UNKNOWN command: [FAMP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [MOCP]
Received UNKNOWN command: [AMLP]
UNKNOWN lens feature (2)
UNKNOWN camera feature (16)
UNKNOWN camera feature (13)
UNKNOWN chip feature (3)
UNKNOWN lens feature (2)
UNKNOWN camera feature (16)
UNKNOWN camera feature (13)
UNKNOWN chip feature (3)
UNKNOWN lens feature (2)
UNKNOWN camera feature (16)
UNKNOWN camera feature (13)
UNKNOWN chip feature (3)
UNKNOWN lens feature (2)
UNKNOWN camera feature (16)
UNKNOWN camera feature (13)
UNKNOWN chip feature (3)
UNKNOWN lens feature (1)
Received UNKNOWN command: [NIfT]
UNKNOWN chip feature (3)
UNKNOWN lens feature (1)
Received UNKNOWN command: [NIfT]
Mic 1 Volume 1: 0
Mic 1 Volume 2: 0

@68040
Copy link

68040 commented Mar 6, 2022

This testing code

#!/usr/bin/python3
import PyATEMMax
import time

SWITCHER_IP = "192.168.xxx.xxx"
MIC_NAME = "mic1"
WAIT_FOR_CHANGE = True

switcher = PyATEMMax.ATEMMax()
switcher.connect(SWITCHER_IP)
switcher.waitForConnection()

microphone = switcher.audioMixer.input[MIC_NAME]
audio_source = switcher.atem.audioSources.mic1


def change_volume_and_wait(volume, mic_on):
    mix_option = switcher.atem.audioMixerInputMixOptions.on if mic_on else switcher.atem.audioMixerInputMixOptions.off

    print(f"---[ Turning {MIC_NAME} {mix_option}, volume: {volume} ]----------------------")
    print(f"BEFORE: mixOption: {microphone.mixOption}, volume: {microphone.volume}")
    print(f"Setting mix_option to: {mix_option}")
    switcher.setAudioMixerInputMixOption(audio_source, mix_option)
    print(f"Changing volume to: {volume}")
    switcher.setAudioMixerInputVolume(switcher.atem.audioSources.mic1, volume)

    # Wait for volume change to take effect
    wait_start = time.time()
    if WAIT_FOR_CHANGE:
        while abs(microphone.volume - volume) > 0.001:
            time.sleep(0.001)

    elapsed = time.time() - wait_start
    print(f"AFTER : mixOption: {microphone.mixOption}, volume: {microphone.volume}, took {elapsed:4.3f}s")
    print()

for volume in range(3):
    change_volume_and_wait(volume, True)

for volume in range(3, 0, -1):
    change_volume_and_wait(volume, False)

switcher.disconnect()

Doesn't stop:

---[ Turning mic1 on, volume: 0 ]----------------------
BEFORE: mixOption: , volume: 0
Setting mix_option to: on
Changing volume to: 0
AFTER : mixOption: , volume: 0, took 0.000s

---[ Turning mic1 on, volume: 1 ]----------------------
BEFORE: mixOption: , volume: 0
Setting mix_option to: on
Changing volume to: 1

@clvLabs
Copy link
Owner

clvLabs commented Mar 18, 2022

Hi @NoodleBB , thanks for the feedback.

I'm feeling even more suspicious about a protocol/firmware version issue.

I just ran this code:

import PyATEMMax
import logging

SWITCHER_IP = "192.168.1.111"

switcher = PyATEMMax.ATEMMax()
switcher.setLogLevel(logging.DEBUG)
print(f"Connecting to {SWITCHER_IP}")
switcher.connect(SWITCHER_IP)
switcher.waitForConnection()
print("Connected")

version_str = f"{switcher.protocolVersion.major}.{switcher.protocolVersion.minor}"
print(f"Switcher protocol version: {version_str}")

switcher.disconnect()

and got this result:

$ python3 version-check.py
Connecting to 192.168.1.111
Connected
Switcher protocol version: 2.27

Seems I'm working with a 2.27 protocol version switcher.
Can you please run the sample code and send the output ?

Thanks in advance!

@68040
Copy link

68040 commented Mar 22, 2022

Hello @clvLabs

My results with 3 different ATEM Models.

ATEM Mini: 2.30
ATEM Mini Pro ISO: 2.30
ATEM Mini Extreme ISO: prog. hangs

ATEM Mini Pro ISO:

Connecting to 192.168.xx.xx
Received UNKNOWN command: [_FAC]
Received UNKNOWN command: [_FEC]
UNKNOWN ATEMVideoModeFormats 27 - processing [VidM]
Received UNKNOWN command: [AiVM]
Received UNKNOWN command: [TcLk]
Received UNKNOWN command: [TCCc]
Wrong value for ATEMVideoSources: [9001] (<class 'int'>) - processing [InPr]
Wrong value for ATEMVideoSources: [9101] (<class 'int'>) - processing [InPr]
Wrong value for ATEMVideoSources: [9102] (<class 'int'>) - processing [InPr]
Wrong value for ATEMVideoSources: [9103] (<class 'int'>) - processing [InPr]
UNKNOWN ATEMMultiViewerLayouts 12 - processing [MvPr]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KACk]
Received UNKNOWN command: [KACC]
Received UNKNOWN command: [CapA]
Received UNKNOWN command: [FMPP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FMTl]
Received UNKNOWN command: [FAMP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [MOCP]
Received UNKNOWN command: [AMLP]
Wrong value for ATEMVideoSources: [9001] (<class 'int'>) - processing [TlSr]
Received UNKNOWN command: [RMSu]
Received UNKNOWN command: [RTMS]
Received UNKNOWN command: [RTMR]
Received UNKNOWN command: [RMRD]
Received UNKNOWN command: [ISOi]
Received UNKNOWN command: [SRSU]
Received UNKNOWN command: [STAB]
Received UNKNOWN command: [StRS]
Received UNKNOWN command: [SRST]
Received UNKNOWN command: [SRSD]
Received UNKNOWN command: [SRSS]
Received UNKNOWN command: [SAth]
Received UNKNOWN command: [SLow]
Received UNKNOWN command: [SwVr]
Received UNKNOWN command: [NIfT]
Received UNKNOWN command: [AMLP]
Wrong value for ATEMVideoSources: [9001] (<class 'int'>) - processing [TlSr]
Received UNKNOWN command: [RMSu]
Received UNKNOWN command: [RTMS]
Received UNKNOWN command: [RTMR]
Received UNKNOWN command: [RMRD]
Received UNKNOWN command: [ISOi]
Received UNKNOWN command: [SRSU]
Received UNKNOWN command: [STAB]
Received UNKNOWN command: [StRS]
Received UNKNOWN command: [SRST]
Received UNKNOWN command: [SRSD]
Received UNKNOWN command: [SRSS]
Received UNKNOWN command: [SAth]
Received UNKNOWN command: [SLow]
Received UNKNOWN command: [SwVr]
Received UNKNOWN command: [NIfT]
Connected
Switcher protocol version: 2.30

@68040
Copy link

68040 commented Mar 22, 2022

ATEM Mini:

Connecting to 192.168.xx.xx
Received UNKNOWN command: [_FAC]
Received UNKNOWN command: [_FEC]
UNKNOWN ATEMVideoModeFormats 26 - processing [VidM]
Received UNKNOWN command: [AiVM]
Received UNKNOWN command: [TcLk]
Received UNKNOWN command: [TCCc]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KACk]
Received UNKNOWN command: [KACC]
Received UNKNOWN command: [CapA]
Received UNKNOWN command: [FMPP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FMTl]
Received UNKNOWN command: [FAMP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [MOCP]
Received UNKNOWN command: [AMLP]
Received UNKNOWN command: [NIfT]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [MOCP]
Received UNKNOWN command: [AMLP]
Received UNKNOWN command: [NIfT]
Connected
Switcher protocol version: 2.30

@68040
Copy link

68040 commented Mar 22, 2022

ATEM Mini Extreme ISO + Pocket Cinema Camera 4K

Connecting to 192.168.xxx.xxx
Received UNKNOWN command: [_FAC]
Received UNKNOWN command: [_FEC]
Received UNKNOWN command: [_FMH]
UNKNOWN ATEMVideoModeFormats 27 - processing [VidM]
Received UNKNOWN command: [AiVM]
Received UNKNOWN command: [TcLk]
Received UNKNOWN command: [TCCc]
Wrong value for ATEMVideoSources: [9001] (<class 'int'>) - processing [InPr]
Wrong value for ATEMVideoSources: [11002] (<class 'int'>) - processing [InPr]
Wrong value for ATEMVideoSources: [9101] (<class 'int'>) - processing [InPr]
Wrong value for ATEMVideoSources: [9102] (<class 'int'>) - processing [InPr]
Wrong value for ATEMVideoSources: [9103] (<class 'int'>) - processing [InPr]
UNKNOWN ATEMMultiViewerLayouts 12 - processing [MvPr]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [SaMw]
UNKNOWN ATEMWindows 10 - processing [MvIn]
Received UNKNOWN command: [SaMw]
UNKNOWN ATEMWindows 11 - processing [MvIn]
Received UNKNOWN command: [SaMw]
UNKNOWN ATEMWindows 12 - processing [MvIn]
Received UNKNOWN command: [SaMw]
UNKNOWN ATEMWindows 13 - processing [MvIn]
Received UNKNOWN command: [SaMw]
UNKNOWN ATEMWindows 14 - processing [MvIn]
Received UNKNOWN command: [SaMw]
UNKNOWN ATEMWindows 15 - processing [MvIn]
Received UNKNOWN command: [SaMw]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KACk]
Received UNKNOWN command: [KACC]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KACk]
Received UNKNOWN command: [KACC]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KACk]
Received UNKNOWN command: [KACC]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KBfT]
Received UNKNOWN command: [KACk]
Received UNKNOWN command: [KACC]
Received UNKNOWN command: [CapA]
Wrong value for ATEMVideoSources: [145] (<class 'int'>) - processing [SSrc]
Received UNKNOWN command: [FMPP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FMTl]
Received UNKNOWN command: [FAMP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [MOCP]
Received UNKNOWN command: [AMLP]
Received UNKNOWN command: [FMHP]
Received UNKNOWN command: [FAMS]
Wrong value for ATEMVideoSources: [9001] (<class 'int'>) - processing [TlSr]
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN lens feature (1)
UNKNOWN lens feature (1)
Received UNKNOWN command: [RMSu]
Received UNKNOWN command: [RTMS]
Received UNKNOWN command: [RTMR]
Received UNKNOWN command: [RMRD]
Received UNKNOWN command: [ISOi]
Received UNKNOWN command: [SRSU]
Received UNKNOWN command: [STAB]
Received UNKNOWN command: [StRS]
Received UNKNOWN command: [SRST]
Received UNKNOWN command: [SRSD]
Received UNKNOWN command: [SRSS]
Received UNKNOWN command: [SAth]
Received UNKNOWN command: [SLow]
Received UNKNOWN command: [NIfT]
Received UNKNOWN command: [CapA]
Wrong value for ATEMVideoSources: [145] (<class 'int'>) - processing [SSrc]
Received UNKNOWN command: [FMPP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FMTl]
Received UNKNOWN command: [FAMP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [MOCP]
Received UNKNOWN command: [AMLP]
Received UNKNOWN command: [FMHP]
Received UNKNOWN command: [FAMS]
Wrong value for ATEMVideoSources: [9001] (<class 'int'>) - processing [TlSr]
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN lens feature (1)
UNKNOWN lens feature (1)
Received UNKNOWN command: [RMSu]
Received UNKNOWN command: [RTMS]
Received UNKNOWN command: [RTMR]
Received UNKNOWN command: [RMRD]
Received UNKNOWN command: [ISOi]
Received UNKNOWN command: [SRSU]
Received UNKNOWN command: [STAB]
Received UNKNOWN command: [StRS]
Received UNKNOWN command: [SRST]
Received UNKNOWN command: [SRSD]
Received UNKNOWN command: [SRSS]
Received UNKNOWN command: [SAth]
Received UNKNOWN command: [SLow]
Received UNKNOWN command: [NIfT]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FAIP]
Received UNKNOWN command: [FIEP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FASP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AEBP]
Received UNKNOWN command: [AIXP]
Received UNKNOWN command: [AICP]
Received UNKNOWN command: [AILP]
Received UNKNOWN command: [FMTl]
Received UNKNOWN command: [FAMP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [AMBP]
Received UNKNOWN command: [MOCP]
Received UNKNOWN command: [AMLP]
Received UNKNOWN command: [FMHP]
Received UNKNOWN command: [FAMS]
Wrong value for ATEMVideoSources: [9001] (<class 'int'>) - processing [TlSr]
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (13)
UNKNOWN lens feature (2)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN lens feature (1)
UNKNOWN lens feature (1)
Received UNKNOWN command: [RMSu]
Received UNKNOWN command: [RTMS]
Received UNKNOWN command: [RTMR]
Received UNKNOWN command: [RMRD]
Received UNKNOWN command: [ISOi]
Received UNKNOWN command: [SRSU]
Received UNKNOWN command: [STAB]
Received UNKNOWN command: [StRS]
Received UNKNOWN command: [SRST]
Received UNKNOWN command: [SRSD]
Received UNKNOWN command: [SRSS]
Received UNKNOWN command: [SAth]
Received UNKNOWN command: [SLow]
Received UNKNOWN command: [NIfT]
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN camera feature (16)
UNKNOWN chip feature (3)
UNKNOWN lens feature (1)
UNKNOWN lens feature (1)
Received UNKNOWN command: [RMSu]
Received UNKNOWN command: [RTMS]
Received UNKNOWN command: [RTMR]
Received UNKNOWN command: [RMRD]
Received UNKNOWN command: [ISOi]
Received UNKNOWN command: [SRSU]
Received UNKNOWN command: [STAB]
Received UNKNOWN command: [StRS]
Received UNKNOWN command: [SRST]
Received UNKNOWN command: [SRSD]
Received UNKNOWN command: [SRSS]
Received UNKNOWN command: [SAth]
Received UNKNOWN command: [SLow]
Received UNKNOWN command: [NIfT]
^CTraceback (most recent call last):
  File "/root/version-check.py", line 11, in <module>
    switcher.waitForConnection()
  File "/usr/local/lib/python3.9/dist-packages/PyATEMMax/ATEMConnectionManager.py", line 612, in waitForConnection
    time.sleep(0.01)
KeyboardInterrupt
^CException ignored in: <module 'threading' from '/usr/lib/python3.9/threading.py'>
Traceback (most recent call last):
  File "/usr/lib/python3.9/threading.py", line 1428, in _shutdown
    lock.acquire()
KeyboardInterrupt: 

I stopped the execution after some minutes.

Rem.: I always had to break it twice.

@clvLabs
Copy link
Owner

clvLabs commented Aug 15, 2022

Unfortunately it seems to be a protocol/product version issue.
I've received other reports of this part of the API working in some switchers and not in some others.
As the protocol is not documented, I can't do much about this... (sorry)
Closing the issue

@clvLabs clvLabs closed this as completed Aug 15, 2022
@clvLabs clvLabs added the wontfix This will not be worked on label Aug 15, 2022
@clvLabs
Copy link
Owner

clvLabs commented Aug 30, 2022

After a conversation with one of the users of the library I think I should reopen this issue.

The fact that I don't have the hardware to test and I cannot dedicate the time for the reverse engineering required to close this issue should not mean the issue gets closed with a wontfix.

I will remove the wontfix tag, reopen the issue and add a new help-wanted tag. Maybe someone with the necessary skills and resources can help with this.

@clvLabs clvLabs reopened this Aug 30, 2022
@clvLabs clvLabs added help wanted Extra attention is needed enhancement New feature or request and removed wontfix This will not be worked on labels Aug 30, 2022
@chocbic172
Copy link

I've opened PR #36 which contains basic functionality for the new Fairlight Mixer.
I'm still quite new to this library so I imagine it'll need some pretty heavy review.
I'm aiming to make this feature complete in the near future, but the basic functionality should cover the majority of use cases for the time being.

@someag
Copy link

someag commented Jul 6, 2023

chocbic172
Imported your files. No errors in the process, but also no function on the ATEM Mini Pro.

@chocbic172
Copy link

@someag admittedly it's been a while since I wrote this so it's likely something might have broken.

Could you let me know a) the firmware of the ATEM Mini Pro you're using, and b) the specific function calls that aren't working for you?

Can you still interact with the switcher in other ways (i.e. changing video)?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

5 participants