Online / 6 & 7 February 2021


Programming Digital Audio Server (DAS) backend with Raku

JUCE+Raku as the backend for Linux driven web audio services

Musicians, producers and composers use digital audio workstations (DAW) in daily work. You've probably seen beautiful photos from recording studios: a sound engineer is sitting in front of several monitors with multi track recording application windows and dialogs?! This is the DAW.

But what's about to run DAS (Digital Audio Server): the server instance with DAW benefits + multi client access from web, compatibility with popular cloud services, FOSS and Raku-driven backend.

In this lecture we will consider DAS backend as a JRP pipeline — JUCE + RAKU + PHEIX, focus on each component and demonstrate Raku as the tool for unusual daily programming tasks.

When we talk about sound processing on the remote server or cloud, we assume the set of various web audio services: AI composers, recognizers (stylistic classifiers, plagiarism scanners, audio content reviewers), co-creativity, etc... Each of these services bases on headless processing and mixing audio backend. Actually this is a Digital Audio Server (similar to a DAW), providing multitrack recording, mixing and processing in real time via API.

The fundamental differences between DAS and DAW are: Linux platform, no GUI and the TCP/IP stack as the only data transport. In this paradigm we can define DAS software as Linux + headless audio backend.

Frontend provides visualization of processes on the backend, works in the context of web browser on client workstation and interacts with the backend via, for example, REST-API.

This talk defines the DAS headless audio backend as a JRP pipeline —  JUCE + RAKU + PHEIX.

The JUCE framework has the large set of the tools and features required for audio processing. It is one of the most well-documented, actively evolved and powerful audio frameworks with the Linux support.

The PHEIX content management system is used to interact with the frontend. It is currently the only CMS with Ethereum Blockchain native support. For the audio industry, in terms of copyright protection, this is definitely a must-have solution — since all metadata passing through the Digital Audio Server can be stored in a distributed ledger (both private and public, for example, the Görli network) and used for copyright disputes in future.

PHEIX is written in the RAKU language: the most promising and at the same time underrated programming language. In JRP concept — RAKU is the glue for the DAS backend components on the one hand, and the high-level adapter for the JUCE application on the other.

In the practical part of this lecture, we will consider the sample web audio service for frequency analysis and audio content visualization. The example demonstrates methods for creating and deploying a JUCE application as a shared library on a Linux platform. We will pass the step-by-step dev process of the RAKU application-level module with a JUCE bindings, make an integration into PHEIX and try it all from the simple frontend.

This lecture primarily aimed at architects and programmers of web audio services, JUCE community members with Linux background, and RAKU enthusiasts who are involved in digital audio processing.


Konstantin Nakhov