Session
FOSDEM 2021 Schedule
Perl and Raku Programming

Programming Digital Audio Server (DAS) backend with Raku

JUCE+Raku as the backend for Linux driven web audio services
D.perl
Konstantin Nakhov
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.

Additional information

Type devroom

More sessions

2/6/21
Perl and Raku Programming
D.perl
A brief introduction to the 2021 virtual FOSDEM devroom, talk overview, code of conduct and Community Affairs Team. Please ask any questions after the introduction - there will be 10 minutes for discussion. TPF Code of Conduct applies to our devroom
2/6/21
Perl and Raku Programming
Elizabeth Mattijsen
D.perl
Set operators are often seen as a way to handle (semi-)complex mathematical issues, the only exists in Set objects. But set operators are so much more! This presentation will show you how to make use of set operators in your day-to-day code, making your code more concise, better readable and better maintainable.
2/6/21
Perl and Raku Programming
Curtis Poe
D.perl
I plan to bring modern OO to the Perl core. Modern enough that it leapfrogs the capabilities of the OO systems of many other dynamic languages. I’ve been stealing ideas from Stevan Little, Damian Conway, and anyone else foolish enough to leave their ideas lying around. I have no pride. Sawyer’s expressed interest and it's likely it will go into the Perl core, though with the upcoming Perl governance changes, the timeline is unclear. I’m not going to beat around the bush: writing ...
2/6/21
Perl and Raku Programming
Nigel Hamilton
D.perl
The TPF is passionate about helping our software communities flourish. This is an update from a legal and marketing perspective on the communities' brands and some suggested next steps to help them flourish.
2/6/21
Perl and Raku Programming
Curtis Poe
D.perl
Raku is an amazing programming language, but many examples online are very complex and can be hard to follow. This talk highlights some amazing features of Raku, but assumes zero knowledge of the language.
2/6/21
Perl and Raku Programming
Nigel Hamilton
D.perl
Spending a short time working as a barrister opened my eyes to a profession that is hundreds of years old. In comparison to the legal profession, the computing profession has barely got started! This talk is a mash up of when these two worlds collide. As professional Perl and Raku programmers are there any cool hacks we can borrow from the arcane world of barristers? Which practices could help power Perl and Raku for the next hundred years?
2/6/21
Perl and Raku Programming
Paul Evans
D.perl
When Perl gained the ability to support custom keywords provided by modules it started down the path that CPAN modules would experiment with new language ideas. Already a number of such modules exist, and it is likely this idea will continue to develop. What new ideas might turn up in the next few years, and will any of them evolve to become parts of the actual core language?