Gencaster is a non-linear audio streaming framework for real-time radiophonic experiences and live music.

The audio streams created through Gencaster have a low latency (about 150ms) and can be listened to in any modern browser, and can dynamically render audio content based on a given story graph that can react to user input such as name, time, GPS position, or even microphone streaming after permissions have been granted.

Gencaster consists mainly ofthe following services.

  • Caster sound is a service that handles all streaming and audio rendering functionality, using SuperCollider to generate audio and Janus to distribute audio to listeners via WebRTC

  • The backend manages the streams of caster-sound, written in Django. To communicate with Caster sound, it uses the OSC Server service.

  • The frontend allows users to listen to the streams of Caster sound and acts as a player. It is written in Vue.

  • The editor is a website in which the actions of a stream, called a Story Graph, can be created, edited and tweaked using Python or SuperCollider, and is also written in Vue.