update docs for route changes

This commit is contained in:
Joel Wetzell
2026-03-04 21:50:01 -06:00
parent 02522a52b5
commit 44a60b0d1a
10 changed files with 67 additions and 17 deletions
+3 -4
View File
@@ -4,11 +4,10 @@ sidebar:
order: 3
---
Routes take the messages coming from a module and push them out another module. The message can be optionally "processed" with any number of processor steps.
Routes take the messages coming from a module and push them through a list of [processors](/concepts/processors). Having no processors is valid but serves no real purpose and is basically a no-op.
## YAML Definition
- **input**: the id of the [module](/concepts/modules) that will provide messages to this route
- **processors**: (optional) array of [processors](/concepts/processors) that will be called in order and the result of the previous will be fed to the next processor.
- if at any point the output of a processor is `nil` the entire route will be terminated (subject to change to support output `nil` values?)
- an error in a processor step will also result in the route being terminated
- **output**: the id of the [module](/concepts/modules) that will consume messages from the route
- if at any point the output of a processor is `nil` the entire route will be terminated (subject to change to support passing through `nil` values?)
- an error in a processor step will result in the individual route being terminated
+4 -2
View File
@@ -24,9 +24,11 @@ routes:
processors:
- type: osc.message.create
params:
address: "/cue/{{.To}}/go"
address: "/cue/{{.Payload.To}}/go"
- type: osc.message.encode
output: udp
- type: router.output
params:
module: udp
`
<Code code={example} title="config.yaml" lang="yaml"/>
+4 -2
View File
@@ -25,9 +25,11 @@ routes:
processors:
- type: osc.message.create # create OSC message
params:
address: "{{.URL.Path}}" # template the address from the incoming message
address: "{{.Payload.URL.Path}}" # template the address from the incoming message
- type: osc.message.encode # turn OSC message into bytes
output: udp
- type: router.output # output to the udp module
params:
module: udp
`
<Code code={example} title="config.yaml" lang="yaml"/>
+1 -1
View File
@@ -10,7 +10,7 @@ import { Aside } from '@astrojs/starlight/components';
This module is not currently included in the pre-compiled binaries for [showbridge](https://github.com/jwetzell/showbridge-go/releases/latest)
</Aside>
The `midi.input` module connects to a midi device (or virtual device) and emits MIDI messages that come in on that port. This module does not output any message and so using it as an `output` of a [route](/concepts/routes) would be pointless.
The `midi.input` module connects to a midi device (or virtual device) and emits MIDI messages that come in on that port. This module does not support output.
- **type**: `midi.input`
- **params**:
@@ -0,0 +1,17 @@
---
title: Router Output
sidebar:
order: 1
---
The `router.output` processor takes any payload and outputs to the specified module.
- **type**: `router.output`
- **params**:
- **module**: the id of the [module](/concepts/modules) to output to.
### Example
Output to the `osc-out` module.
```
- type: router.output
params:
module: osc-out
```
@@ -1,8 +0,0 @@
---
title: Dictionary
---
- **router**: throughout documentation I will use the term router to refer to configured/running instance of showbridge
- **modules**: modules are configured instances that can produce or consume message like a TCP server or a UDP client
- **routes**: routes take messages coming from a module (input), do some optional processing and send that message to a module (output)
- **processors**: processors process messages, the processors are localized to the route the processor is a part of. Examples of processors or turning bytes into an OSC message or parsing a string into an integer
@@ -0,0 +1,18 @@
---
title: Dictionary
---
- **router**: throughout documentation I will use the term router to refer to a configured/running instance of showbridge
- **modules**: modules are configured instances that can produce or consume message like a TCP server or a UDP client
- **routes**: routes take messages coming from a module (input), pass the
- **processors**: processors process messages, this can be anything such as:
- [decoding bytes into a string](/processors/string/decode)
- [creating random numbers](/processors/int/random)
- [filtering OSC message](/processors/osc/message/filter)
- [running custom JavaScript snippets](/processors/script/js)
import { Aside } from '@astrojs/starlight/components';
<Aside type="note">
Router output is also handled by [a processor](/processors/router/output)!
</Aside>
+5
View File
@@ -13,6 +13,7 @@ showbridge is a kind of re-imagining of [OSCulator](https://osculator.net/) take
- UDP
- client
- server
- multicast client
- TCP
- client
- server
@@ -20,8 +21,12 @@ showbridge is a kind of re-imagining of [OSCulator](https://osculator.net/) take
- client
- [NATS](https://nats.io/)
- client
- server
- [PosiStageNet](https://posistage.net/)
- client
- [SIP](https://datatracker.ietf.org/doc/html/rfc3261)
- call server
- [DTMF](https://en.wikipedia.org/wiki/DTMF_signaling) server
- MIDI
- input (not included in pre-built binaries yet)
- output (not included in pre-built binaries yet)