{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://showbridge.io/processors.schema.json", "title": "Processors", "description": "showbridge processors array", "type": "array", "items": { "oneOf": [ { "type": "object", "title": "Decode ArtNet Packet", "properties": { "type": { "type": "string", "const": "artnet.packet.decode" } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "title": "Encode ArtNet Packet", "properties": { "type": { "type": "string", "const": "artnet.packet.encode" } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "title": "Filter ArtNet Packet", "properties": { "type": { "type": "string", "const": "artnet.packet.filter" }, "params": { "type": "object", "properties": { "opCode": { "type": "integer" } }, "required": ["opCode"], "additionalProperties": false } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Debug Log", "properties": { "type": { "type": "string", "const": "debug.log" } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "title": "Filter by Expr expression", "properties": { "type": { "type": "string", "const": "filter.expr" }, "params": { "type": "object", "properties": { "expression": { "type": "string" } }, "required": ["expression"], "additionalProperties": false } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Parse Float", "properties": { "type": { "type": "string", "const": "float.parse" }, "params": { "type": "object", "properties": { "bitSize": { "type": "integer", "enum": [32, 64], "default": 64 } }, "additionalProperties": false } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "title": "Create FreeD", "properties": { "type": { "type": "string", "const": "freed.create" }, "params": { "type": "object", "properties": { "id": { "type": "string" }, "pan": { "type": "string" }, "tilt": { "type": "string" }, "roll": { "type": "string" }, "posX": { "type": "string" }, "posY": { "type": "string" }, "posZ": { "type": "string" }, "zoom": { "type": "string" }, "focus": { "type": "string" } }, "required": [ "id", "pan", "tilt", "roll", "posX", "posY", "posZ", "zoom", "focus" ], "additionalProperties": false } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Decode FreeD", "properties": { "type": { "type": "string", "const": "freed.decode" } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "title": "Encode FreeD", "properties": { "type": { "type": "string", "const": "freed.encode" } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "title": "Create HTTP Request", "properties": { "type": { "type": "string", "const": "http.request.create" }, "params": { "type": "object", "properties": { "method": { "type": "string", "enum": ["GET", "POST"] }, "url": { "type": "string" } }, "required": ["method", "url"], "additionalProperties": false } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Filter HTTP Request", "properties": { "type": { "type": "string", "const": "http.request.filter" }, "params": { "type": "object", "properties": { "path": { "type": "string" }, "method": { "type": "string", "enum": ["GET", "POST"] } }, "required": ["path"], "additionalProperties": false } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Create HTTP Response", "properties": { "type": { "type": "string", "const": "http.response.create" }, "params": { "type": "object", "properties": { "status": { "type": "integer" }, "body": { "type": "string" } }, "required": ["status", "body"], "additionalProperties": false } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Parse Int", "properties": { "type": { "type": "string", "const": "int.parse" }, "params": { "type": "object", "properties": { "base": { "type": "integer", "enum": [0,2, 8, 10, 16], "default": 10 }, "bitSize": { "type": "integer", "enum": [0, 8, 16, 32, 64], "default": 64 } }, "additionalProperties": false } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "title": "Random Int", "properties": { "type": { "type": "string", "const": "int.random" }, "params": { "type": "object", "properties": { "min": { "type": "integer" }, "max": { "type": "integer" } }, "required": ["min", "max"], "additionalProperties": false } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Decode JSON", "properties": { "type": { "type": "string", "const": "json.decode" } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "title": "Encode JSON", "properties": { "type": { "type": "string", "const": "json.encode" } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "title": "Create MIDI Message", "properties": { "type": { "type": "string", "const": "midi.message.create" }, "params": { "type": "object", "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": ["NoteOn", "noteon", "note_on"] }, "channel": { "type": "string" }, "note": { "type": "string" }, "velocity": { "type": "string" } }, "required": ["type", "channel", "note", "velocity"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "enum": ["NoteOff", "noteoff", "note_off"] }, "channel": { "type": "string" }, "note": { "type": "string" }, "velocity": { "type": "string" } }, "required": ["type", "channel", "note", "velocity"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "enum": ["ControlChange", "controlchange", "control_change"] }, "channel": { "type": "string" }, "control": { "type": "string" }, "value": { "type": "string" } }, "required": ["type", "channel", "control", "value"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "enum": ["ProgramChange", "programchange", "program_change"] }, "channel": { "type": "string" }, "program": { "type": "string" } }, "required": ["type", "channel", "program"], "additionalProperties": false } ] } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Decode MIDI Message", "properties": { "type": { "type": "string", "const": "midi.message.decode" } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "title": "Encode MIDI Message", "properties": { "type": { "type": "string", "const": "midi.message.encode" } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "title": "Filter MIDI Message", "properties": { "type": { "type": "string", "const": "midi.message.filter" }, "params": { "type": "object", "properties": { "type": { "type": "string", "enum": ["NoteOn", "NoteOff", "ControlChange", "ProgramChange"] } }, "required": ["type"], "additionalProperties": false } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Unpack MIDI Message", "properties": { "type": { "type": "string", "const": "midi.message.unpack" } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "title": "Create MQTT Message", "properties": { "type": { "type": "string", "const": "mqtt.message.create" }, "params": { "type": "object", "properties": { "topic": { "type": "string" }, "qos": { "type": "number" }, "retained": { "type": "boolean" }, "payload": { "type": "string" } }, "required": ["topic", "qos", "retained", "payload"], "additionalProperties": false } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Encode MQTT Message", "properties": { "type": { "type": "string", "const": "mqtt.message.encode" } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "title": "Create NATS Message", "properties": { "type": { "type": "string", "const": "nats.message.create" }, "params": { "type": "object", "properties": { "subject": { "type": "string" }, "payload": { "type": "string" } }, "required": ["subject", "payload"], "additionalProperties": false } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Create OSC Message", "properties": { "type": { "type": "string", "const": "osc.message.create" }, "params": { "type": "object", "properties": { "address": { "type": "string" }, "args": { "type": "array", "items": { "type": "string" } }, "types": { "type": "string" } }, "required": ["address"], "additionalProperties": false } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Decode OSC Message", "properties": { "type": { "type": "string", "const": "osc.message.decode" } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "title": "Encode OSC Message", "properties": { "type": { "type": "string", "const": "osc.message.encode" } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "title": "Filter OSC Message", "properties": { "type": { "type": "string", "const": "osc.message.filter" }, "params": { "type": "object", "properties": { "address": { "type": "string" } }, "required": ["address"], "additionalProperties": false } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Router Output", "properties": { "type": { "type": "string", "const": "router.output" }, "params": { "type": "object", "properties": { "module": { "type": "string", "description": "ID of module to send output to" } }, "required": ["module"] } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Evaluate Expr expression", "properties": { "type": { "type": "string", "const": "script.expr" }, "params": { "type": "object", "properties": { "expression": { "type": "string" } }, "required": ["expression"], "additionalProperties": false } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Run JavaScript", "properties": { "type": { "type": "string", "const": "script.js" }, "params": { "type": "object", "properties": { "program": { "type": "string" } }, "required": ["program"], "additionalProperties": false } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Run WASM Plugin", "properties": { "type": { "type": "string", "const": "script.wasm" }, "params": { "type": "object", "properties": { "path": { "type": "string" }, "function": { "type": "string", "default": "process" }, "enableWasi": { "type": "boolean", "default": false } }, "required": ["path"], "additionalProperties": false } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Create String", "properties": { "type": { "type": "string", "const": "string.create" }, "params": { "type": "object", "properties": { "template": { "type": "string" } }, "required": ["template"] } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Decode String", "properties": { "type": { "type": "string", "const": "string.decode" } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "title": "Encode String", "properties": { "type": { "type": "string", "const": "string.encode" } }, "required": ["type"], "additionalProperties": false }, { "type": "object", "title": "Filter String", "properties": { "type": { "type": "string", "const": "string.filter" }, "params": { "type": "object", "properties": { "pattern": { "type": "string" } }, "required": ["pattern"], "additionalProperties": false } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Split String", "properties": { "type": { "type": "string", "const": "string.split" }, "params": { "type": "object", "properties": { "separator": { "type": "string" } }, "required": ["separator"] } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Get Struct Field", "properties": { "type": { "type": "string", "const": "struct.field.get" }, "params": { "type": "object", "properties": { "name": { "type": "string" } }, "required": ["name"] } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Get Struct Method", "properties": { "type": { "type": "string", "const": "struct.method.get" }, "params": { "type": "object", "properties": { "name": { "type": "string" } }, "required": ["name"] } }, "required": ["type", "params"], "additionalProperties": false }, { "type": "object", "title": "Sleep", "properties": { "type": { "type": "string", "const": "time.sleep" }, "params": { "type": "object", "properties": { "duration": { "type": "integer" } }, "required": ["duration"] } }, "required": ["type", "params"], "additionalProperties": false } ] } }