Skip to content

Commit 00a2d4c

Browse files
authored
Merge pull request #8 from msitarzewski/mission-statement
README mission statement glow-up
2 parents 321a2a2 + e4c20dc commit 00a2d4c

File tree

2 files changed

+34
-16
lines changed

2 files changed

+34
-16
lines changed

README.md

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,24 @@
1-
[![CI](https://github.com/msitarzewski/openstudio/actions/workflows/ci.yml/badge.svg)](https://github.com/msitarzewski/openstudio/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) ![Node 18+](https://img.shields.io/badge/node-18%2B-brightgreen) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/msitarzewski/openstudio/pulls)
1+
[![CI](https://github.com/msitarzewski/openstudio/actions/workflows/ci.yml/badge.svg)](https://github.com/msitarzewski/openstudio/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) ![Node 18+](https://img.shields.io/badge/node-18%2B-brightgreen) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/msitarzewski/openstudio/pulls) [![Sponsor](https://img.shields.io/badge/Sponsor-%E2%9D%A4-pink?logo=github)](https://github.com/sponsors/msitarzewski)
2+
3+
<div align="center">
4+
<img src="docs/screenshots/studio.png" alt="OpenStudio broadcast interface" width="720">
5+
</div>
26

37
# OpenStudio
48

5-
> Live radio studio in your browser. No accounts. No cloud. 50KB.
9+
> Your voice. Your frequency. No permission required.
610
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.
822

923
---
1024

@@ -34,7 +48,7 @@ One command. One process. One port.
3448

3549
```
3650
┌─────────┐ WebRTC Mesh ┌─────────┐
37-
│ Host A │◄────────────────►│ Host B
51+
Host │◄────────────────►│ Caller
3852
└────┬────┘ └────┬────┘
3953
│ ┌─────────┐ │
4054
└──────────│Signaling│────────┘
@@ -53,29 +67,29 @@ One command. One process. One port.
5367
└─────────────┘
5468
```
5569

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.
5771

5872
## Features
5973

6074
- **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
6781
- **Safari compatible** — WebSocket streaming fallback
6882

6983
## Try It
7084

7185
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**
7387
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)
7589
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
7791

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.
7993

8094
## Architecture
8195

@@ -116,12 +130,16 @@ PRs welcome! Please read the existing code before contributing — the codebase
116130
4. Push to the branch
117131
5. Open a Pull Request
118132

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+
119137
## License
120138

121139
[MIT](LICENSE) — use it however you want.
122140

123141
---
124142

125143
<div align="center">
126-
<strong>Own your voice. Control your broadcast.</strong>
144+
<em>talk hard.</em>
127145
</div>

docs/screenshots/studio.png

861 KB
Loading

0 commit comments

Comments
 (0)