Skip to content
View dfilaretti's full-sized avatar
  • Italy

Block or report dfilaretti

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
dfilaretti/README.md

πŸ‘‹ About

I'm a software engineer, former academic and electronic music producer.

Although in the last couple of years my main focus have been on music technology and audio programming (C++/JUCE), I also have a keen interest in functional programming (with hands-on experience in languages such as Haskell and Clojure) and extensive research experience in the field of formal methods and programming language theory. I've been recently learning Rust and I hope to be able to work more with it in the future.

For more details, please see my CV and LinkedIn profile.

πŸ§‘β€πŸ’» Stuff I'm working on

Sweeper

Co-author & Lead developer
2024-Present

An audio FX plugin designed in collaboration with acclaimed trance producer Steve Allen. It should be the first of a series of releases.

More info soon πŸ”₯





img2ASCII

Author
2025-Present

As I've been learning Rust during the last couple of months, I decided to get some practice by building this fun little project that converts image files to ASCII art.

One of the goals was also to familiarize with functional programming techniques in Rust (e.g. I didn't use any for loop to iterate through the image pixels, but relied on iterators facilities; also tried not to use mutable variables)

Check out the README!



🌱 Stuff I'm learning

Rust

As a C++ developer with some familiarity with functional programming languages such as Haskell, Rust definitely caught my attention.

I love Rust's memory safety (coming from C++, it's a big thing!), modern and smooth tooling experience and those language features (expression-oriented, algebraic data types, iterators, immutability by default etc.) that makes it feel a bit more like a functional language while still giving you all the power and performance of C++ (and the ability to work on audio plugins, which is pretty much exclusive domain of C++!)

To get started with the language I am...

  • reading the official Rust Book
  • completing the Rustlings exercises
  • as a little, fun project, developing a small CLI app to convert images to ASCII art (repo)



🎧 Past projects (audio / music technology)

Loopcloud

Developer
2020-2024

Since 2020, I contributed to the development of the Loopcloud desktop app and its companion audio plugin (which syncs the app to the user's DAW for a more integrated experience).

I delivered several new major features (such as collections, MIDI support and an onboarding interactive tutorial), and an extensive UI rework, in addition to countless bug fixes and workflow improvements.





TATAT

Lead developer
2021-2022

TATAT is a MIDI plugin designed for 3 main purposes: to create always-changing sequences, to quickly sketch and store music ideas, to add unexpected events to fixed patterns.







Solid State Logic (SSL)

Developer
2016-2017

I had the privilege of working at legendary SSL headquarters in Oxford.

During my tenure there I helped develop and maintain the software powering Solid State Logic’s high-end digital consoles in both the Broadcast (System T) and Live (L200, L350 etc.) product families (C#).



Uplift Arpeggio

Author
2020-Present

A Max4Live device I built for helping me quickly come up with lead patterns when writing trance. It started as a 2020 lockdown project but it's still receiving updates!



Free plugins bundle

Author
2018

A bunch of free audio plugins I wrote while learning JUCE.



πŸ–₯️ Past projects (misc)

Yapster

Clojure Developer (full-stack)
2019 - 2020

Helped developing Yapster - a messaging app for the workplace; contributing new features across both frontend and backend as well as bug-fixes (Clojure/ClojureScript).

I really enjoyed learning and working with the Clojure programming language!




K-Framework (Haskell backend)

Developer
2018

According to its official docs,

"K is a rewrite-based executable semantic framework in which programming languages, type systems and formal analysis tools can be defined using configurations and rules"

I loved using K as the foundational framework for my research work as a PhD student,
and I was privileged, a couple of years later, to be able to contribute back to its community (as well as practicing some Haskell!)



Solidity to IELE compiler

Developer
2018

IELE is an improvement on the Ethereum blockchain virtual machine. It was created after the KEVM project demonstrated that a K formal specification of EVM could automatically generate a VM comparable in performance to hand-crafted implementations.

I helped developing the Solidity to IELE compiler.




DIMMAND

Lead Developer
2016 - 2017

Lead the development of DIMMAND, a cross-platform digital solution for detecting literacy difficulties & strengths in children.



πŸ§ͺ Research & publications

I hold a PhD in Computing from Imperial College London, where I worked in the field of programming language theory and formal methods.

My thesis was about the formalisation of the PHP programming language and the development of a static analysis tool derived from the formal semamtics (see below).

Here are the main research projects and publications I worked on during the years.

Projects

K-PHP (Executable formal semantics of PHP)

Lead Developer / PhD Student
2018

KPHP is a formal specification of the PHP programming language written in the K-Framework, together with a prototype bug finding tool based on the theory of abstract interpretation and derived directly from the formal semantics.

JCCert / JSRef (Certified Javascript)

Developer / PhD Student
2018

JSCert is a mechanised specification of JavaScript, written in the Coq proof assistant. JSRef is a reference interpreter for JavaScript in OCaml, which has been proved correct with respect to JSCert and tested with the Test 262 test suite.

Publications

2019

2018

2016

2014

2011

Popular repositories Loading

  1. WeirdDrums WeirdDrums Public

    Open Source Drum Synth plugin

    C++ 19 3

  2. waveshaper-demo waveshaper-demo Public

    A parametric waveshaper plugin

    C++ 9

  3. bitcrusher-demo-2 bitcrusher-demo-2 Public

    simple bitcrusher plugin written in JUCE

    C++ 7 1

  4. uplift-arpeggio uplift-arpeggio Public

    arpeggiator/sequencer for Uplifting Trance-y stuff

    Max 5

  5. KPHP KPHP Public

    An Executable Formal Semantics for PHP 5

    PHP 3 2

  6. stereowidth-demo stereowidth-demo Public

    A simple mid-side processing plugin

    C++ 2