In this article I would like to present a minimal implementation of a music data type and everything that is needed to turn that into audible sound from an Elm application.
We will see how to transcribe an existing composition - an excerpt from Chick Corea's Children's Songs No. 6 - and listen to the result right here, embedded in this article.
From a music data type to performance
My colleague Jonas recently pointed out the presentation Making Algorithmic Music by Donya Quick to me. Donya Quick shows how she uses the Haskell library Euterpea to produce algorithmic music.
It got me really excited about the idea of porting this to Elm and to be able to use this in web applications.
In the following we will see the core data types and algorithms from Euterpea ported to Elm. To focus on the core concepts the implementation is stripped down to the minimum that is required to transcribe and perform an existing polyphonic piece of music (for a single instrument).