docs(roadmap): surround 5.1/7.1 is shipped, not planned
ci / web (push) Successful in 43s
ci / docs-site (push) Successful in 1m10s
decky / build-publish (push) Successful in 27s
apple / swift (push) Successful in 4m20s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 39s
ci / bench (push) Successful in 6m53s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 9s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 6m0s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 1m30s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 6m56s
android / android (push) Successful in 12m10s
docker / deploy-docs (push) Successful in 23s
arch / build-publish (push) Successful in 14m55s
deb / build-publish (push) Successful in 16m5s
rpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Successful in 12m59s
rpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Successful in 14m24s
ci / rust (push) Successful in 23m13s
apple / screenshots (push) Successful in 19m9s
ci / web (push) Successful in 43s
ci / docs-site (push) Successful in 1m10s
decky / build-publish (push) Successful in 27s
apple / swift (push) Successful in 4m20s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 39s
ci / bench (push) Successful in 6m53s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 9s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 6m0s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 1m30s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 6m56s
android / android (push) Successful in 12m10s
docker / deploy-docs (push) Successful in 23s
arch / build-publish (push) Successful in 14m55s
deb / build-publish (push) Successful in 16m5s
rpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Successful in 12m59s
rpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Successful in 14m24s
ci / rust (push) Successful in 23m13s
apple / screenshots (push) Successful in 19m9s
5.1 and 7.1 surround now works end to end (host encodes multichannel via multistream Opus; native clients render >2 channels via AudioDec::Surround). Move it to Shipped + the at-a-glance table, and narrow the Planned entry to the genuinely-future object-based spatial audio work. Corrects the stale 'every path is stereo end to end / no client renders it yet' claim. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -25,6 +25,7 @@ see [Status & Progress](/docs/status).
|
||||
| Concurrent sessions (shared desktop) | ✅ |
|
||||
| Network speed test + bitrate | ✅ |
|
||||
| HDR / 10-bit streaming | ✅ Windows host · ⛔ Linux host |
|
||||
| Surround audio (5.1 / 7.1) | ✅ |
|
||||
| Sub-frame pipelining (latency) | 🔭 |
|
||||
|
||||
## ✅ Shipped
|
||||
@@ -48,6 +49,8 @@ see [Status & Progress](/docs/status).
|
||||
mid-stream resolution renegotiation, a cross-machine clock-skew handshake, a 1 Gbps+ data plane,
|
||||
an in-app network speed test that informs the bitrate picker, and **automatic adaptive bitrate**
|
||||
(the encoder re-targets mid-stream when bitrate is set to Automatic).
|
||||
- **Surround sound** — 5.1 and 7.1 end to end: the host encodes multichannel via multistream Opus and
|
||||
the native clients render more than two channels, with clean, synchronous stereo where the path is stereo.
|
||||
|
||||
## 🟡 In progress
|
||||
|
||||
@@ -66,15 +69,12 @@ see [Status & Progress](/docs/status).
|
||||
an available host profile (likely behind a second per-user auth layer); on connect to an idle host,
|
||||
the user lands in *their own* desktop/session, signed in, without touching the host. Turns one box
|
||||
into a personal, profile-aware streaming target for a household.
|
||||
- **Surround & spatial audio.** Today every path is stereo end to end (the Linux host already encodes
|
||||
5.1/7.1 via multistream Opus, but no client renders it yet). Near term: carry a **7.1 channel bed** —
|
||||
multichannel capture, surround Opus on every host, and clients that render more than two channels
|
||||
(macOS can then spatialize the bed to head-tracked AirPods audio). The moonshot is **object-based
|
||||
spatial audio**: native-Windows Atmos/DTS:X object capture is blocked by a closed renderer API, but
|
||||
**Proton already routes game audio objects through Wine's `ISpatialAudioClient`** — where it currently
|
||||
*discards* the dynamic/height objects and their 3D positions. Finishing that rendering would give
|
||||
every Proton gamer real spatial sound, and tunnelling the objects + positions to the client would let
|
||||
punktfunk spatialize them *on the client* — head-tracked remote Atmos-style audio that no streaming
|
||||
- **Object-based spatial audio.** With 5.1/7.1 surround shipped, the frontier is object-based sound.
|
||||
Capturing game audio objects on native Windows is blocked by a closed renderer API, but **Proton
|
||||
already routes them through Wine's `ISpatialAudioClient`** — where it currently *discards* the
|
||||
dynamic/height objects and their 3D positions. Finishing that rendering would give every Proton gamer
|
||||
real spatial sound, and tunnelling the objects + positions to the client would let punktfunk spatialize
|
||||
them *on the client* — head-tracked remote spatial audio (to AirPods and the like) that no streaming
|
||||
stack does today.
|
||||
- **Sub-frame pipelining.** Overlap encode and transmit within a single frame (a direct NVENC slice
|
||||
path) — the next big latency lever at high resolutions.
|
||||
|
||||
Reference in New Issue
Block a user