ableton-js
Advanced tools
Comparing version 1.5.0 to 1.6.0
{ | ||
"name": "ableton-js", | ||
"version": "1.5.0", | ||
"version": "1.6.0", | ||
"description": "Control Ableton Live from Node", | ||
@@ -27,2 +27,3 @@ "main": "index.js", | ||
"@types/node-uuid": "^0.0.28", | ||
"@types/semver": "^7.1.0", | ||
"@types/uuid": "^3.4.6", | ||
@@ -35,4 +36,5 @@ "jest": "^24.8.0", | ||
"dependencies": { | ||
"semver": "^7.1.3", | ||
"uuid": "^3.3.3" | ||
} | ||
} |
@@ -5,17 +5,20 @@ # Ableton.js | ||
Ableton.js lets you control your instance or instances of Ableton using Node.js. It | ||
tries to cover as many functions as possible. | ||
Ableton.js lets you control your instance or instances of Ableton using Node.js. | ||
It tries to cover as many functions as possible. | ||
This package is still a work-in-progress. My goal is to expose all of [Ableton's MIDI | ||
Remote Script](https://julienbayle.studio/PythonLiveAPI_documentation/Live10.0.2.xml) functions to TypeScript. If you'd like to contribute, please feel free to do so. | ||
This package is still a work-in-progress. My goal is to expose all of | ||
[Ableton's MIDI Remote Script](https://julienbayle.studio/PythonLiveAPI_documentation/Live10.0.2.xml) | ||
functions to TypeScript. If you'd like to contribute, please feel free to do so. | ||
## Prerequisites | ||
To use this library, you'll need to install and activate the MIDI Remote Script in | ||
Ableton.js. To do that, copy the `midi-script` folder of this repo to Ableton's | ||
Remote Scripts folder. If you prefer, you can rename it to something like `AbletonJS` | ||
for better identification. The MIDI Remote Scripts folder is usually located at: | ||
To use this library, you'll need to install and activate the MIDI Remote Script | ||
in Ableton.js. To do that, copy the `midi-script` folder of this repo to | ||
Ableton's Remote Scripts folder. If you prefer, you can rename it to something | ||
like `AbletonJS` for better identification. The MIDI Remote Scripts folder is | ||
usually located at: | ||
- **Windows:** {path to Ableton}\Resources\MIDI\Remote Scripts | ||
- **macOS:** /Applications/Ableton Live {version}/Contents/App-Resources/MIDI Remote Scripts | ||
- **macOS:** /Applications/Ableton Live {version}/Contents/App-Resources/MIDI | ||
Remote Scripts | ||
@@ -26,5 +29,5 @@ After starting Ableton Live, add the script to your list of control surfaces: | ||
If you've forked this project on macOS, you can also use yarn to do that for you. | ||
Running `yarn ableton:start` will copy the `midi-script` folder, open Ableton and | ||
show a stream of log messages until you kill it. | ||
If you've forked this project on macOS, you can also use yarn to do that for | ||
you. Running `yarn ableton:start` will copy the `midi-script` folder, open | ||
Ableton and show a stream of log messages until you kill it. | ||
@@ -34,3 +37,4 @@ ## Using Ableton.js | ||
This library exposes an `Ableton` class which lets you control the entire | ||
application. You can instanciate it once and use TS to explore available features. | ||
application. You can instantiate it once and use TS to explore available | ||
features. | ||
@@ -58,4 +62,4 @@ Example: | ||
Ableton.js uses UDP to communicate with the MIDI Script. Each message is a JSON | ||
object containing required data and a UUID so request and response can be associated | ||
with each other. | ||
object containing required data and a UUID so request and response can be | ||
associated with each other. | ||
@@ -88,3 +92,4 @@ ### Commands | ||
To attach an event listener to a specific property, the client sends a command object: | ||
To attach an event listener to a specific property, the client sends a command | ||
object: | ||
@@ -125,9 +130,9 @@ ```js | ||
Note that for some values, this event is emitted multiple times per second. 20-30 | ||
updates per second are not unusual. | ||
Note that for some values, this event is emitted multiple times per second. | ||
20-30 updates per second are not unusual. | ||
### Connection Events | ||
The MIDI Script sends events when it starts and when it shuts down. | ||
These look like this: | ||
The MIDI Script sends events when it starts and when it shuts down. These look | ||
like this: | ||
@@ -142,6 +147,18 @@ ```js | ||
When you open a new Project in Ableton, the script will shut down and start again. | ||
When you open a new Project in Ableton, the script will shut down and start | ||
again. | ||
When Ableton.js receives a disconnect event, it clears all current event listeners | ||
and pending commands. It is usually a good idea to attach all event listeners and | ||
get properties each time the `connect` event is emitted. | ||
When Ableton.js receives a disconnect event, it clears all current event | ||
listeners and pending commands. It is usually a good idea to attach all event | ||
listeners and get properties each time the `connect` event is emitted. | ||
### Findings | ||
In this section, I'll note interesting pieces of information related to | ||
Ableton's Python framework that I stumble upon during the development of this | ||
library. | ||
- It seems like Ableton's listener to `output_meter_level` doesn't quite work as | ||
well as expected, hanging every few 100ms. Listening to `output_meter_left` or | ||
`output_meter_right` works better. See | ||
[Issue #4](https://github.com/leolabs/ableton-js/issues/4) |
147055
51
3426
158
2
9
2
+ Addedsemver@^7.1.3
+ Addedsemver@7.7.1(transitive)