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 correcly 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. In order to obtain that, its compiler, Zampogna, which is written in JavaScript, has been embedded in a web page, and it has been augmented for the production of JavaScript code. 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-elses blocks in Ciaramella while respecting the declarative and data flow paradigms. Additionally, the branches can have internal state/memory, which is a rare feature 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 of PIPES is its strict separation of roles, which is achieved through three specialized node types: orchestration, compilation, and execution. Each node type focuses exclusively on its designated task, ensuring a streamlined process. PIPES also includes features such as audio module abstraction and hot-swapping capabilities, enabling real-time adaptability. As a proof of concept, a PIPES network was implemented with a Ciaramella node.

PDF