#roctoolkit — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #roctoolkit, aggregated by home.social.
-
A few minor releases for this autumn:
Roc VAD 0.0.3 (streaming virtual device for macOS) 👉 https://github.com/roc-streaming/roc-vad/releases/tag/v0.0.3
roc-pulse 0.0.8 (#PulseAudio modules) 👉 https://github.com/roc-streaming/roc-pulse/releases/tag/v0.0.8
Signal Estimator 0.1.0 (latency measuremens) 👉 https://github.com/gavv/signal-estimator/releases/tag/v0.1.0
libASPL 3.1.1 (audio server plugins for macOS) 👉 https://github.com/gavv/libASPL/releases/tag/v3.1.1
#roctoolkit #signalestimator #libASPL #audioprogramming #macosaudio
-
immer man nicht einfach Pulse nutzt. #pulseaudio kann zwar auch nativ Netzwerk, ist aber eher nervig in der Bedienung und unzuverlässig. Über nc hats durch Buffer unschön viel Delay. Hab nun #ROCToolkit https://roc-streaming.org/ gefunden. Kann sich das Audio von Pulse(monitor) greifen und per RTP mit wenig Latenz auf andere Geräte rausjagen. Leider fehlt in der Doku etwas Quickstart, aber überschaubar komplex und bisher keine Probleme mit gehabt.
-
Roc Toolkit 0.4 is out!
Highlights:
- finish RTCP & XR support, 2-way report exchange
- latency tuning on sender instead of receiver (when receiver is more CPU-constrained)
- audio file backends using libsndfile and dr_wav (when external dependencies are limited)
- virtual devices for macOS!
- bug-fixes
- portability: Ubuntu 24.04, macOS 14, OpenWrt/MIPS, Debian GNU/HurdTutorial:
https://gavv.net/articles/roc-0.4/Changelog:
https://roc-streaming.org/toolkit/docs/development/changelog.html#version-0-4-0-jun-14-2024 -
roc-go (go bindings for roc-toolkit streaming library) updated to 0.3.0
-
Micro-release: roc-pulse 0.0.6
https://github.com/roc-streaming/roc-pulse/releases/tag/v0.0.6
-
Tagged roc-pulse 0.0.5:
https://github.com/roc-streaming/roc-pulse/releases/tag/v0.0.5It now supports full set of sender and receiver options
(same as in roc-send and roc-recv tools).It is now possible to configure local and network encoding and change
various latency parameters. See README for details. -
I'm happy to announce the first version of Roc VAD, a virtual audio device for macOS that can stream to/from #PulseAudio, #PipeWire, Android, and others.
Link:
https://github.com/roc-streaming/roc-vadIt also provides a gRPC interface with full control of the driver, which allows reusing driver in other projects.
-
#roctoolkit 0.3 is out!
Highlights:
- minimizing latency
- running on weaker CPUs
- major improvements in C APIOverview blog post: https://gavv.net/articles/roc-0.3/
Changelog: https://roc-streaming.org/toolkit/docs/development/changelog.html#version-0-3-0-nov-22-2023
-
Tagged #roctoolkit 0.2.6.
This release just fixes the incompatibility of #debian packages with various ubuntu and debian versions, as reported on matrix. Now packages are installable on debian bullseye and later, and ubuntu 20.04 and later, and this is being tested on CI.
https://github.com/roc-streaming/roc-toolkit/releases/tag/v0.2.6
-
This October was productive for #roctoolkit.
New cool features include a lock-free PRNG and buffer overflow protection in memory pools. Also, some good refactoring was carried out.
Thanks to everyone who submitted patches!
-
#roctoolkit got support for new "speexdec" resampler, that combines speex for fixed rate convertion and decimation/expansion for dynamic part needed to compensate clock drift.
https://github.com/roc-streaming/roc-toolkit/pull/595
It works surprisingly fine. The decimation affects only 5-20 samples/second. When base rates are equal, it's VERY cheap. And it follows scaling factor with better precision than speex.
This resampler can be used as a fallback for CPU-constrained environments.
-
#roctoolkit is happy to meet hacktoberfest!
We have cool (I think so) tasks with networking, algorithms, real-time audio, tests, benchmarks, scripts.. You're welcome!
Project: https://github.com/roc-streaming/roc-toolkit
Issues: https://github.com/roc-streaming/roc-toolkit/labels/help%20wanted
Guide: https://roc-streaming.org/toolkit/docs/development/contribution_guidelines.html -
Two C API improvements recently landed develop branch of #roctoolkit
🔹 Removing slots on the fly.
"Slots" represent connected peers, so this is useful when peers enter and leave session dynamically.
🔹 New packet encoder/decoder API, similar to sender/receiver, but networkless.
You push raw frames and get encoded packets, or vice versa, and you deliver packets by yourself. This allows using roc with third-party transports like libjuice and libdatachannel.
-
Recently spent some time optimizing #roctoolkit latency over Ethernet.
So far, achieved 7ms for transport + 12ms for two USB sound cards.
This is the photo of my test bench for measurements.
Legend: R1, R2 - #raspberrypi; S0, S1, S2 - sound cards; L1, L3 - jack cables; L2 - ethernet cable.
Roc runs on R1 and R2 and streams sound from S1 to S2.
On PC, I run #signalestimator that writes sound to S0 output, reads it back from S0 input, and measures latency.
-
[1/3]
I had a lot of fun last weekend, adding surround sound support to #roctoolkit, with conversion between surround layouts (downmixing and upmixing).
(E.g. if network layout is surround 7.1, but sound card is 5.1, it's automatically downmixed)
Learned lots of new! I first discovered remixing algorithm from #pulseaudio [1], but ended up using downmixing tables from dolby [2][3].
Also added support for large multitrack channel sets up to 1024 channels.
-
Published #roctoolkit 0.2.5 (bug-fix release)
https://github.com/roc-streaming/roc-toolkit/releases/tag/v0.2.5
-
#roctoolkit 0.2.4 is out (minor release)
Highlights:
- support PulseAudio input devices
- support macOS universal binaries and deployment targets
- fix numerous bugs discovered via Go and Java bindings
- fix numerous build issueshttps://github.com/roc-streaming/roc-toolkit/releases/tag/v0.2.4
-
Received new #sbc for #roctoolkit test stand: OpenEmbed SOM9331 with MIPS32 and OpenWrt.
I know that people are running roc on mips, but never tried it by myself. Now I can include it to release regression testing 🤖
-
We're looking for contributors for recently released Go bindings for #roctoolkit!
👉 https://github.com/roc-streaming/roc-go
Roc is an #opensource real-time audio streaming library. https://roc-streaming.org/
On github, you will find issues for adding tests, documentation, and minor features. We're always glad to meet new people in the project 🙂
-
Roc tutorial update: https://gavv.net/articles/roc-tutorial-0.2/
Added instructions on how to use PipeWire with Roc if you can't use PPA.
-
This little cable hell is my test bench for #roctoolkit regression testing
-
How to install #roctoolkit from package manager (#ubuntu, #debian, #fedora, #archlinux)
https://roc-streaming.org/toolkit/docs/building/user_cookbook.html#linux-from-packages
-
Released #roctoolkit 0.2.3 with prebuilt #debian packages
Highlights:
- bug fixes
- debian and rpm packages
- began work on adding encryptionhttps://github.com/roc-streaming/roc-toolkit/releases/tag/v0.2.3
-
First release of Go bindings for #roctoolkit: https://github.com/roc-streaming/roc-go
-
What's new in #roctoolkit 0.2: https://gavv.net/articles/roc-0.2/
Highlights:
- polishing API
- bindings for Go and Java
- android support
- initial RTCP support
- preparations for adding RTSP