You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> Live radio studio in your browser. No accounts. No cloud. 50KB.
9
+
> Your voice. Your frequency. No permission required.
6
10
7
-
[Try the Live Demo](https://openstudio.zerologic.com) · [Report Bug](https://github.com/msitarzewski/openstudio/issues)
11
+
[Try the Live Demo](https://openstudio.zerologic.com) · [Report Bug](https://github.com/msitarzewski/openstudio/issues) · [Sponsor](https://github.com/sponsors/msitarzewski)
12
+
13
+
---
14
+
15
+
Somewhere right now, a community radio host is calculating whether they can afford another month of their streaming platform. A podcast collective just lost their entire archive because a service shut down. An independent voice got silenced — not by censorship, but by a credit card expiration.
16
+
17
+
OpenStudio exists because broadcasting should not require permission. No account creation. No monthly invoice. No terms of service between you and your audience. You clone a repo, you start broadcasting. Your station runs on your hardware. Your audio never touches a server you don't control.
18
+
19
+
This is a broadcast studio built the way radio was meant to work — direct, unmediated, yours. Vanilla JavaScript. Web Audio API. No framework, no build step, no dependency you didn't choose. Self-host it on a Raspberry Pi, a $5 VPS, a closet server at the back of your hackerspace. The entire client is under 50KB. If you can run Node, you can run a station — rent free.
20
+
21
+
Connect guests over WebRTC mesh. Mix-minus gives every participant broadcast-quality monitoring — the same technique used in professional studios, now running in a browser tab. Stream to unlimited listeners through Icecast. Record every voice on its own track for post-production. No platform stands between your signal and the world.
8
22
9
23
---
10
24
@@ -34,7 +48,7 @@ One command. One process. One port.
34
48
35
49
```
36
50
┌─────────┐ WebRTC Mesh ┌─────────┐
37
-
│ Host A │◄────────────────►│ Host B │
51
+
│ Host │◄────────────────►│ Caller │
38
52
└────┬────┘ └────┬────┘
39
53
│ ┌─────────┐ │
40
54
└──────────│Signaling│────────┘
@@ -53,29 +67,29 @@ One command. One process. One port.
53
67
└─────────────┘
54
68
```
55
69
56
-
Each participant gets a personalized audio mix that excludes their own voice — no echo, no feedback, broadcast-quality audio in the browser.
70
+
Mix-minus is a broadcast engineering standard — each participant hears everyone except themselves. No echo, no feedback. Professional studios have done this with hardware for decades. OpenStudio does it in the browser with the Web Audio API.
57
71
58
72
## Features
59
73
60
74
-**WebRTC mesh** — peer-to-peer audio, no media server
61
-
-**Mix-minus** — each caller hears everyone except themselves
62
-
-**Per-participant controls** — individual gain, mute, level meters
63
-
-**Multi-track recording** — per-participant WAV + program mix
64
-
-**Icecast streaming** — broadcast to unlimited listeners
65
-
-**Role-based access** — host, ops, guest with permission controls
66
-
-**Zero dependencies** — vanilla JS, Web Audio API, no framework
75
+
-**Mix-minus monitoring** — broadcast-standard audio routing, in the browser
76
+
-**Per-participant controls** — individual gain, mute, live level meters
77
+
-**Multi-track recording** — per-voice WAV tracks + program mix for post-production
78
+
-**Icecast streaming** — broadcast to unlimited listeners, no audience cap
79
+
-**Role-based access** — host, engineer, caller with scoped permissions
80
+
-**Zero dependencies** — vanilla JS, Web Audio API, no framework, no build step
1. Open **[openstudio.zerologic.com](https://openstudio.zerologic.com)**
72
-
2. Enter a station name and click **Start Session**
86
+
2. Enter a station name and click **Start Broadcast**
73
87
3. Allow microphone access when prompted
74
-
4. Share the invite URL with a friend (or open it in a second browser tab)
88
+
4. Share the invite URL with a co-host (or open it in a second browser tab)
75
89
5. Talk — you'll hear each other with zero echo thanks to mix-minus
76
-
6. Hit **Record** to capture per-participant tracks, then **Download** when done
90
+
6. Hit **Record** to capture per-voice tracks, then **Download** when done
77
91
78
-
Rooms auto-expire after 15 minutes on the demo. Self-host for unlimited sessions.
92
+
Broadcasts auto-expire after 15 minutes on the demo. Self-host for unlimited airtime.
79
93
80
94
## Architecture
81
95
@@ -116,12 +130,16 @@ PRs welcome! Please read the existing code before contributing — the codebase
116
130
4. Push to the branch
117
131
5. Open a Pull Request
118
132
133
+
## Sponsor
134
+
135
+
OpenStudio is free, open-source, and built by independent developers. If it's useful to you, [sponsor the project on GitHub](https://github.com/sponsors/msitarzewski) to keep it that way.
136
+
119
137
## License
120
138
121
139
[MIT](LICENSE) — use it however you want.
122
140
123
141
---
124
142
125
143
<divalign="center">
126
-
<strong>Own your voice. Control your broadcast.</strong>
0 commit comments