diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 59 |
1 files changed, 58 insertions, 1 deletions
@@ -165,7 +165,64 @@ output to the same channel again. ### The `osc` backend -TBD +This backend will allow read and write access to the Open Sound Control protocol, +spoken primarily by visual interface tools and hardware such as TouchOSC. + +#### Global configuration + +This backend does not take any global configuration. + +#### Instance configuration + +| Option | Example value | Default value | Description | +|---------------|-----------------------|-----------------------|-----------------------| +| `root` | `/my/osc/path` | none | An OSC path prefix to be prepended to all channels | +| `bind` | `:: 8000` | none | The host and port to listen on | +| `dest` | `10.11.12.13 8001` | none | Remote address to send OSC data to. Setting this enables the instance for output | + +Note that specifying an instance root speeds up matching, as packets not matching +it are ignored early in processing. + +#### Channel specification + +A channel may be any valid OSC path, to which the instance root will be prepended if +set. Multi-value controls (such as X-Y pads) are supported by appending `:n` to the path, +where `n` is the parameter index, with the first (and default) one being `0`. + +Example mapping: +``` +osc1./1/xy1:0 > osc2./1/fader1 +``` + +Note that any multi-value channel that is to be output will need to be set up in the instance +configuration (not yet implemented). + +#### Value ranges + +OSC allows controls to have individual value ranges and supports different parameter types. +The following types are currently supported by the MIDImonster: + +* `i`: 32-bit signed integer +* `f`: 32-bit IEEE floating point +* `h`: 64-bit signed integer +* `d`: 64-bit double precision floating point + +For each type, there is a default value range which will be assumed if the channel is not otherwise +configured using the instance configuration. Values out of a channels range will be clipped. + +The default ranges are: + +* `i`: `0` to `255` +* `f`: `0.0` to `1.0` +* `h`: `0` to `1024` +* `d`: `0.0` to `1.0` + +#### Known bugs / problems + +Output is not yet implemented for this backend. + +Channels which are to be output require individual configuration to set their types and limits, +as do input channels presenting a custom value range. ## Building |