Difference between revisions of "SuperDirt API"
(Created page with "For the curious, this is what an OSC trigger message from TidalCycles to SuperDirt looks like, as of Tidal version 1.7.x and probably later. This is a message sent from the...") |
|||
Line 1: | Line 1: | ||
For the curious, this is what an OSC trigger message from TidalCycles to SuperDirt looks like, as of Tidal version 1.7.x and probably later. | For the curious, this is what an OSC trigger message from TidalCycles to SuperDirt looks like, as of Tidal version 1.7.x and probably later. | ||
− | + | Lets consider this pattern: | |
+ | ``` | ||
+ | sound "bd" # speed 2 | ||
+ | ``` | ||
+ | This is the kind of OSC message it generates: | ||
``` | ``` | ||
Bundle | Bundle |
Latest revision as of 23:04, 22 February 2021
For the curious, this is what an OSC trigger message from TidalCycles to SuperDirt looks like, as of Tidal version 1.7.x and probably later.
Lets consider this pattern: ``` sound "bd" # speed 2 ``` This is the kind of OSC message it generates: ``` Bundle
Timetag: Feb 22, 2021 21:54:04.960054397 UTC Size: 92 bytes Message: /dirt/play ,sfsfsfsisssf Header Path: /dirt/play Format: ,sfsfsfsisssf String: cps Float: 0.4 String: cycle Float: 40549 String: delta Float: 2.5 String: orbit Int32: 0 String: s String: bd String: speed Float: 2
```
It consists of a single message, wrapped in a bundle, which provides the timestamp for when the event should be triggered. Because the OSC target for superdirt has `oSchedule` set to `Pre BundleStamp`, messages will be sent in bursts, ahead of time, and it's up to the receiver (such as superdirt) to schedule them accurately.
The message inside the bundle has the path `/dirt/play`, and contains a variable number of name-value pairs. You can see the `s bd` and "speed 2" pairs, but Tidal adds a number of additional ones.. The current `cps` tempo, the position of the event in cycles (since Tidal started), the `delta` or duration of the event in seconds, and the `orbit` number.