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