• Source composition: rethinking how sources hand over to each other

    fallback, switch, rotate and random all do the same thing: at any moment they pick one of their sources and stream it. Picking is the easy part. The hard part — and the one that has generated more mailing list threads than anything else in Liquidsoap — is what happens between two sources, when one stops being streamed and another takes over. [Read More]
  • Liquidsoap 2.4.5: A Deep Dive into Streaming Performance

    Liquidsoap 2.4.5 is out! This is a maintenance release in the 2.4.x series, bringing a handful of bug fixes, a couple of small new features, and, most importantly, a focused round of performance work that cuts CPU usage by 10-25% across the board on real workloads. [Read More]
  • How to Build Optional Modules with Dune

    Many dune-based projects have optional dependencies: a library that is only built when a particular system package is present, a set of executables that only make sense when an optional backend is available, etc.. In such situtions, how do you structure the build so that those components are silently skipped during normal development, while still failing loudly when someone explicitly tries to install a package that cannot be satisfied? [Read More]