Scientific Publications

Paolo Marrone, Stefano D'Angelo, Federico Fontana, Gennaro Costagliola, Gabriele Puppis

Ciaramella: A Synchronous Data Flow Programming Language For Audio DSP

in Sound and Music Computing Conference, 2022

Ciaramella is a new audio DSP programming language, featuring a fully declarative syntax and the synchronous data flow computational model. We developed a compiler, Zampogna, which translates Ciaramella code to C++ and MATLAB. We demonstrate that our solution allows to naturally represent and correctly schedule highly interdependent DSP systems such as Wave Digital Filters.

PDF

Paolo Marrone

A Web Playground for Ciaramella

in Colloqui di Informatica Musicale, 2022

We implemented a web playground for coding in Ciaramella, compiling and instantly generating working Web Audio plugin prototypes. To make that possible, the compiler, Zampogna, which is written in JavaScript, was embedded in a web page and extended to emit JavaScript output. We developed a simple graphical user interface targeting both domain experts and newcomers.

PDF

Paolo Marrone, Stefano D'Angelo, Federico Fontana

Introducing Stateful Conditional Branching in Ciaramella

in Sound and Music Computing Conference, 2023

Mixing control and data flow comes with both theoretical and practical problems. We found a solution to implement conditional blocks in the SDF model, and we designed a syntax to express if-then-else blocks in Ciaramella while respecting the declarative and data-flow paradigms. Additionally, the branches can have internal state and memory, which is rare in this kind of language.

PDF

Paolo Marrone, Stefano D'Angelo, Federico Fontana

PIPES: A Networked Rapid Development Protocol for Sound Applications

in Proceedings of the 27th International Conference on Digital Audio Effects (DAFx24), Guildford, Surrey, UK, September 3-7, 2024

PIPES is an experimental, networked, and distributed model designed for rapid development, compilation, and deployment of audio applications. A key feature is its strict separation of roles through three specialized node types: orchestration, compilation, and execution. Each node focuses on its designated task, enabling a streamlined process. PIPES also includes audio module abstraction and hot-swapping features, enabling real-time adaptability. As a proof of concept, a PIPES network was implemented with a Ciaramella node.

PDF