Day 3 -

Sept 14th

Stage 2 (Demo 3)

15:30 - 16:15

Sounds of Structure - Music Modelling with ADT's

Can you make music with Scala? The answer is yes, and I’ll show you how. As a former professional musician now re-purposed as a Scala developer, I have used functional programming fundamentals to model music and create a simple music sequencer.

The presentation will walk through how and why I made modelling decisions to represent musical properties and events, and I’ll construct and play a song from scratch using single-note samples of my voice.

The talk is aimed at Scala and FP beginners and/or any fans of digital music creation and production and is designed as a fun introduction to ADT usage in modelling real-life data.

Topics covered:

  • How I have chosen to model musical elements and properties.
  • How algebraic data types and structural recursion have been used to create a simple idiomatic music DSL.
  • Arranging and playing a simple monophonic musical sequence.
  • Composing and playing a whole song.

Paul Matthews


I’m currently a backend Scala developer at ClearScore with a focus on functional programming and with backend and frontend experience using Java, Typescript, Angular, React/React-Native, Linux, AWS Cloud, Terraform, IaC.

I completed a BSc in Computer Science at the Uni of Hertfordshire in 2020 with first class honours and prior to this have a background in the music industry as a signed recording artist, record producer and audio engineer with credits including number 1 chart positions and platinum and gold sales.

My final university dissertation project was a data mining driven hit song prediction application which, after years as a musician, I undertook to ultimately prove that music is magical and you can’t predict a hit song. The data collected however suggested differently and the final application was able to successfully classify some hit songs with a classification rate of 65% using a model trained on 80 one-hit wonders and their 80 accompanying follow-up commercial disappointments. I’m happy to discuss this at length anytime.



Join our conference

Subscribe and follow @ScalaDays on Twitter for the latest conference updates.