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

mixer_device timeout #115

Open
stubar opened this issue Jan 18, 2024 · 1 comment
Open

mixer_device timeout #115

stubar opened this issue Jan 18, 2024 · 1 comment

Comments

@stubar
Copy link

stubar commented Jan 18, 2024

Hi I'm in the process of writing a grid control app similar to touchable.

when trying to get the mixer device of the master track with this code


  // Establishes a connection with Live
  await ableton.start();

  const masterTrack = await ableton.song.get("master_track");
  const mixerDevice = await masterTrack.get("mixer_device");

I get the following error

Process exited with code 1
Uncaught TimeoutError Error: The command track(live_140638798970484).get_prop({"prop":"mixer_device"}) timed out after 2000 ms. Please make sure that Ableton is running and that you have the latest version of AbletonJS' MIDI script installed and renamed to "AbletonJS".

In the Ableton log I see

2024-01-18T13:03:24.190397: info: Python: WARNING:AbletonJS:190 - UDP tick is lagging, delta: 1387.0ms
2024-01-18T13:05:22.665538: info: Python: INFO:AbletonJS:665 - Setting client port: 52760
2024-01-18T13:05:22.715287: info: Python: INFO:AbletonJS:715 - Error result(34bad700-d17a-4b88-86dd-f56d1dcd03ff): TypeError: ('isinstance() arg 2 must be a class, type, or tuple of classes and types',)

I am running version 3.4.1. I've tried re-copying the midi-script folder using the package.json script.

@stubar
Copy link
Author

stubar commented Jan 24, 2024

I've managed to locate the source of my issue and done the following temporary workaround:

        def jsonReplace(o):
            try:
                if isinstance(o, (map, Live.Base.FloatVector, Live.Base.IntVector, Live.Base.ObjectVector, Live.Base.StringVector, Live.Base.Vector)):
                    return list(o)
            except Exception as e:
                return str(o)

in the Socket.py file. My Python isn't all that so I'm sure there's a better way of doing this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant