Docker is a virtualization software which allows to specify the runtime of a service through code. This helps to make the installation, deployment and management of Gencaster easier.
Connects an entry node door with an exit node door.
The story graph engine traverses the Story Graph and manages any script cell executions and allocations.
- Story Graph#
A graph is a key component of Gencaster and is used to define the score of a story within Gencaster. A graph stores the content, metadata and code statements which will control and influence the stream of the listener. Each Graph consists of multiple nodes which are connected through edges.
- Node door#
The entering and exiting of a node is managed through node doors. Each node has at least an default exit door, but can also have multiple exit nodes. Additionally, each node also has an entry door which enforces the flow such that an exit door can be only connected to an input door of a node.
Also see the node door tutorial for further information.
Used as a replacement for Jack within Gencaster, which manages the piping of the scsynth output to Janus. Gencaster used to rely on Jack but the virtualization performance was very bad, which Pipewire fixed.
- Script cell#
A script cell wrap code statements, see Script cell.
sclang is the programming language of the SuperCollider framework. Within Gencaster it is used to control the content of the stream.
scsyth is the synthesis enginge of SuperCollider and is responsible to generate sounds on the Gencaster stream.
A stream combines a listener with a Stream Point and a Story Graph. There can be multiple listeners on a stream, determined by the Stream Assignment Policy. If the listener count becomes 0, the stream will be closed and the stream point will be available for the next listener.
- Stream Assignment Policy#
- Stream Point#
- Streaming Point#
- Stream Variable#
Stream variable allow to attach information on a stream.
A stream variable is always a string. Even if a stream variable has been set to a number or boolean value through a Python cell, the stream variable will be a string in the next script cell.
WebRTC is the streaming technology which is used by Gencaster. It is supported by all major browsers and allows to distribute media in real time and in high quality. The actually used WebRTC server is Janus.