Collab-Hub is a server/client-based communication tool. Clients connect to the server into segmented namespaces. Please contact us to create a specific namespace for your institution, ensemble, or group.
- Namespaces— All clients within in a namespace can share data between each other. More specified routing is available based on your needs. Please see routing for details.
- Rooms — Clients can join rooms to aid to help coordinate sharing data (controls, events, or chat).
- Username — Clients can determine their own username. A generic username is assigned when first connecting.
Data — There are three main ways to share data.
- Control Data— Share data with values. Example: “Main Volume: 99”
- Event Data — Trigger an event. Example: “Start Performance”
- Chat — Send chat messages to other users
Routing — There are many ways to routing your data to suit your needs. There are two factors to routing control and event data: mode and target.
Mode — Modes are based on two conceptual models: publish and push.
- Publish: Clients sending data publish information about the data, which other clients can observe. Clients will see available data and choose to observe it. Observers receive all value updates when new data is sent. This is similar to a pub/sub model. The visibility of a published data is determined by its target value.
- Push: Clients sending data push that data to their targets. Data information will be sent to the target without further action by the target.
Target — Targets are the destinations for data. Their visibility to other clients is determined by the Mode.
- All: All clients within the namespace.
- Room name: All clients within a room.
- Client/Username: A specific client or username.
Combining Mode and Targets
- A publish all control will be available to be observed to all clients within a namespace.
- A push all control will have the data sent to all clients within a namespace.
- A publish <roomname> event will be available to all clients with room <roomname> to observe.
- A push <username> control will have the data be sent to the client/user with name <username>.