ableton-js 3.4.2 → 3.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,8 +4,21 @@ All notable changes to this project will be documented in this file. Dates are d
4
4
 
5
5
  Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
6
6
 
7
+ #### [v3.4.4](https://github.com/leolabs/ableton.js/compare/v3.4.3...v3.4.4)
8
+
9
+ - :sparkles: Add the `tempo_follower_enabled` property [`8cf68c8`](https://github.com/leolabs/ableton.js/commit/8cf68c8e2a261cea6f8ebab8ec9e5db8a8c39195)
10
+
11
+ #### [v3.4.3](https://github.com/leolabs/ableton.js/compare/v3.4.2...v3.4.3)
12
+
13
+ > 16 March 2024
14
+
15
+ - :loud_sound: Improve error logging [`5c35106`](https://github.com/leolabs/ableton.js/commit/5c35106a2702fab9bc97ba377478cbc884041c93)
16
+ - :bug: Fix issues with converting iterables to arrays in Live 10 [`2af2f25`](https://github.com/leolabs/ableton.js/commit/2af2f25453edabbc2a685f7358aa491eb1f79cfc)
17
+
7
18
  #### [v3.4.2](https://github.com/leolabs/ableton.js/compare/v3.4.1...v3.4.2)
8
19
 
20
+ > 6 February 2024
21
+
9
22
  - :bug: Fix buffer size limit being too high on Windows [`0c6bc7d`](https://github.com/leolabs/ableton.js/commit/0c6bc7d4dbb6ff1972f210d6d4bc6a168e8d2ce1)
10
23
  - :bug: Mark `is_active` device property as read-only [`316f510`](https://github.com/leolabs/ableton.js/commit/316f51079e4fb7f407414485fd8b3cc47a0e9f1e)
11
24
 
@@ -78,7 +78,8 @@ class Interface(object):
78
78
  self.socket.send("error", "Function call failed: " + payload["name"] +
79
79
  " doesn't exist or isn't callable", uuid)
80
80
  except Exception as e:
81
- logger.error("Handler Error: " + str(e.args))
81
+ logger.error("Handler Error:")
82
+ logger.exception(e)
82
83
  self.socket.send("error", str(e.args[0]), uuid)
83
84
 
84
85
  def add_listener(self, ns, prop, eventId, nsid="Default"):
@@ -58,8 +58,8 @@ class Socket(object):
58
58
  logger.info("Stored server port: " + str(port))
59
59
  return port
60
60
  except Exception as e:
61
- logger.info(
62
- "Couldn't read stored server port: " + str(e.args))
61
+ logger.error("Couldn't read stored server port:")
62
+ logger.exception(e)
63
63
  return None
64
64
 
65
65
  def read_remote_port(self):
@@ -68,8 +68,7 @@ class Socket(object):
68
68
  try:
69
69
  os.stat(client_port_path)
70
70
  except Exception as e:
71
- self.log_error_once(
72
- "Couldn't stat remote port file: " + str(e.args))
71
+ self.log_error_once("Couldn't stat remote port file:")
73
72
  return
74
73
 
75
74
  try:
@@ -86,8 +85,7 @@ class Socket(object):
86
85
  if self._socket:
87
86
  self.send("connect", {"port": self._server_addr[1]})
88
87
  except Exception as e:
89
- self.log_error_once(
90
- "Couldn't read remote port file: " + str(e.args))
88
+ self.log_error_once("Couldn't read remote port file: " + str(e.args))
91
89
 
92
90
  def shutdown(self):
93
91
  logger.info("Shutting down...")
@@ -125,15 +123,14 @@ class Socket(object):
125
123
  with open(server_port_path, "w") as file:
126
124
  file.write(str(port))
127
125
  except Exception as e:
128
- self.log_error_once(
129
- "Couldn't save port in file: " + str(e.args))
126
+ self.log_error_once("Couldn't save port in file: " + str(e.args))
130
127
  raise e
131
128
 
132
129
  try:
133
130
  self.send("connect", {"port": self._server_addr[1]})
134
131
  except Exception as e:
135
- logger.info("Couldn't send connect to " +
136
- str(self._client_addr) + ": " + str(e.args))
132
+ logger.error("Couldn't send connect to " + str(self._client_addr) + ":")
133
+ logger.exception(e)
137
134
 
138
135
  self.show_message("Started server on port " + str(port))
139
136
 
@@ -144,8 +141,7 @@ class Socket(object):
144
141
  str(self._server_addr) + ': ' + \
145
142
  str(e.args) + ', trying again. ' + \
146
143
  'If this keeps happening, try restarting your computer.'
147
- self.log_error_once(msg + "(Client address: " +
148
- str(self._client_addr) + ")")
144
+ self.log_error_once(msg + " (Client address: " + str(self._client_addr) + ")")
149
145
  self.show_message(msg)
150
146
  t = Live.Base.Timer(
151
147
  callback=self.init_socket, interval=5000, repeat=False)
@@ -169,8 +165,11 @@ class Socket(object):
169
165
 
170
166
  def send(self, name, obj=None, uuid=None):
171
167
  def jsonReplace(o):
172
- if isinstance(o, (map, Live.Base.FloatVector, Live.Base.IntVector, Live.Base.ObjectVector, Live.Base.StringVector, Live.Base.Vector)):
168
+ try:
173
169
  return list(o)
170
+ except:
171
+ pass
172
+
174
173
  return str(o)
175
174
 
176
175
  data = None
@@ -180,12 +179,13 @@ class Socket(object):
180
179
  {"event": name, "data": obj, "uuid": uuid}, default=jsonReplace, ensure_ascii=False)
181
180
  self._sendto(data)
182
181
  except socket.error as e:
183
- logger.info("Socket error: " + str(e.args) + ", server: " + str(self._server_addr) +
184
- ", client: " + str(self._client_addr) + ", socket: " + str(self._socket))
185
- logger.info("Data:" + data)
182
+ logger.error("Socket error:")
183
+ logger.exception(e)
184
+ logger.error("Server: " + str(self._server_addr) + ", client: " + str(self._client_addr) + ", socket: " + str(self._socket))
185
+ logger.error("Data:" + data)
186
186
  except Exception as e:
187
- error = str(type(e).__name__) + ': ' + str(e.args)
188
- logger.info("Error " + name + "(" + str(uuid) + "): " + error)
187
+ logger.error("Error " + name + "(" + str(uuid) + "):")
188
+ logger.exception(e)
189
189
 
190
190
  def process(self):
191
191
  try:
@@ -204,9 +204,12 @@ class Socket(object):
204
204
  self.input_handler(payload)
205
205
  buffer = bytes()
206
206
  num_messages = 0
207
+
207
208
  except socket.error as e:
208
209
  if (e.errno != 35 and e.errno != 10035 and e.errno != 10054):
209
- logger.info("Socket error: " + str(e.args))
210
+ logger.error("Socket error:")
211
+ logger.exception(e)
210
212
  return
211
213
  except Exception as e:
212
- logger.info("Error while processing: " + str(e.args))
214
+ logger.error("Error processing request:")
215
+ logger.exception(e)
@@ -1 +1 @@
1
- version = "3.4.2"
1
+ version = "3.4.4"
package/ns/song.d.ts CHANGED
@@ -50,6 +50,7 @@ export interface GettableProperties {
50
50
  song_length: number;
51
51
  swing_amount: number;
52
52
  tempo: number;
53
+ tempo_follower_enabled: boolean;
53
54
  tracks: RawTrack[];
54
55
  visible_tracks: RawTrack[];
55
56
  }
@@ -99,6 +100,7 @@ export interface SettableProperties {
99
100
  song_length: number;
100
101
  swing_amount: number;
101
102
  tempo: number;
103
+ tempo_follower_enabled: boolean;
102
104
  visible_tracks: number;
103
105
  }
104
106
  export interface ObservableProperties {
@@ -139,6 +141,7 @@ export interface ObservableProperties {
139
141
  song_length: number;
140
142
  swing_amount: number;
141
143
  tempo: number;
144
+ tempo_follower_enabled: boolean;
142
145
  tracks: RawTrack[];
143
146
  }
144
147
  export interface SmpteTime {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ableton-js",
3
- "version": "3.4.2",
3
+ "version": "3.4.4",
4
4
  "description": "Control Ableton Live from Node",
5
5
  "main": "index.js",
6
6
  "author": "Leo Bernard <admin@leolabs.org>",