My notes about Jamulus, a software that allows you to play music with others online:
- Jamulus protocol study notes
- Proof-of-concept: Web based Jamulus client
- My equipments and setup
- KhongPangKhongKwan’s Jamulus introduction video (Thai)
- High-level explanation of how Jamulus achieves low-latency (Thai)
Tools
As the maintainer of MJTH, a community for online music jamming using Jamulus in Thailand, I created many userland Jamulus-related tools:
| Tool | Description |
|---|---|
| gojam | A Go implementation of Jamulus client, used for streaming the audio to web listeners and recording sessions |
| jamulus-lounge | Web-based interface to let people listen in to a Jamulus server. Requires gojam. |
| clipper | A tool that allows musicians to clip the last 10 minutes of the stream for replay via chat. Part of jamulus-lounge. |
| jamviz | Web-based interface for replaying the clipped stream. |
| jamulus-json-rpc-api-gateway | Exposes functionalities of Jamulus’s JSON-RPC over HTTP. |
| mjth-recman | Allows musicians to control multi-track recording via chat and upload the recordings to a server. Requires gojam and jamulus-json-rpc-api-gateway. |
| Jamulus Server List Archive Project | A realtime web-accessible data source and historical archive of public Jamulus servers since 2023-08-01. Used for creating the Jamulus servers in Thailand page. |
| Jamulus Usage Public Dataset | An archive of Jamulus usage data sourced from public servers (via Jamulus Server List Archive Project). Dataset is public and available for querying via BigQuery. Used for creating the Jamulus Thailand usage stats page. |
| jamulus-docker | A Docker image for running Jamulus server easily. |
Obsolete tools
I built these tools in the past but they are now obsolete and no longer used:
| Tool | Description |
|---|---|
| jamurust | A Rust implementation of Jamulus client, used for streaming the audio to web listeners. Obsolete; replaced by gojam. |
| rtcjam+webjam | A proof-of-concept web-based Jamulus client. |
| ez-jamulus-server | A Bash script to set up a Jamulus server easily on a fresh Linux server. Obsolete; The Jamulus project now provides an official repo setup script. |
| headless-jamulus-to-icecast-linux-streamer | Simple script to stream sound from Jamulus to an Icecast server. |
| jamcaster | A Docker container to broadcast Jamulus sound to an Icecast server. Obsolete; replaced by jamulus-lounge. |
| jamulus-discord-glue | Glue code to stream Jamulus sound to Discord. No longer used. |