Freies Soundboard nun mit Broadcast-Funktionalität

Vor einigen Jahren hatte ich ein Soundboard entwickelt, welches ich vor allem für Pen & Paper-Rollenspiele benutzt habe. In Zeiten einer weltweiten Pandemie wäre es ziemlich unverantwortlich sich für ein solches Pen & Paper zusammen in einen Raum zu sitzen. Aus diesem Grund habe ich mein Soundboard um eine Broadcast-Funktionalität erweitert. Damit kann der Gamemaster die Master-Komponente nutzen, während die Spieler die Broadcast-Variante benutzen.

Das neue Soundboard; nun mit einer Remote-Komponente

Technisch läuft die Kommunikation der einzelnen Clients mit der Master-Komponente über einen Websocket-Server der in PHP implementiert wurde. Wenn der Gamemaster einen Clip abspielt, wird dieser bei den Spielern ebenfalls abgespielt. Jeder Spieler kann die Gesamtlautstärke individuell einstellen, während der Gamemaster die relative Lautstärke der Clips zueinander einstellen kann.

Zur Nutzung des Soundboard müssen die Soundclips in den assets-Ordner kopiert werden und dazu eine passende boards.json-Datei geschrieben werden. Ein Beispiel dieser Datei befindet sich im Repository. Anschließend kann das Soundboard im Browser genutzt werden. Soundclips können einzeln oder in einer Schleife abgespielt werden. Für jeden Clip lässt sich daneben die Lautstärke einzeln regeln. Auch das Abspielen von mehreren Clips parallel ist kein Problem. Zu finden ist das Soundboard auf GitHub. Lizenziert ist es unter der AGPL in der Version 3 und somit freie Software.

Websocket Server für .NET/Mono

Möchte man mit Websockets unter .NET/Mono arbeiten, so sollte man sich die entsprechenden Biblitoheken anschauen. Dabei gibt es die Auswahl zwischen einigen Bibliotheken:

Bei den jeweiligen Bibliotheken muss man darauf achten, das die gewählte Bibliothek den entsprechenden Websocket Standard (den es mittlerweile in 17 Revisionen gibt) unterstützt. Ansonsten funktionieren die Bibliotheken im großen und ganzen ähnlich, so das es sicherlich auch eine Geschmacksfrage ist für welche Bibliothek man sich entscheidet.

Weitere Informationen gibt es unter:
http://tools.ietf.org/html/rfc6455
http://de.wikipedia.org/wiki/WebSockets
http://en.wikipedia.org/wiki/WebSocket