My Profile Photo

Coding in Clave


My place to talk about programming and music


About me

My name is Vincenzo Moreno Luna, and I am a backend engineer based in London, UK. Throughout my career, I have been working mainly with Java technologies and, at the end of 2019, I started a new journey with Scala and functional programming.
I am the author of Scala Music, a library to work with music using the Scala programming language.
Apart from coding, I am passionate about Cuban music: I love to dance salsa and I play with my violin in the Orquesta Estelar.

This website is my place to talk about coding and Cuban music while learning both subjects. My goal is to apply this knowledge to algorithmic composition.

If you like the topics in this blog and would like to have a chat, feel free to contact me on Linkedin.

  1. Conga Drums

    In the previous post, I briefly shared with you my recent findings on the clave. The clave is at the core of the relationships between the instruments of a salsa ensemble, as their rhythm patterns are structured around it. The rhythm section instruments in a salsa ensemble include: percussion timbales congas drumset bells bongos hand percussion bass tres guitar strings piano …


  2. The Clave

    If you are here because you are interested in algorithmic composition, but you are not really into Afro-Cuban music, then chances are that you don’t have a clue about what the Clave is. If that’s the case, then this is the post you were waiting for: it will give you a basic understanding of the Clave. Let’s start! …


  3. L-Systems

    In 1968, a Hungarian botanist named Aristid Lindenmayer developed a grammar-based system to model the growth patterns of plants. A Lindenmayer system, or L-System, can be used to model the morphology of a variety of organisms and to generate self-similar fractal patterns. As described by Benoit Mandelbrot, a fractal is “a rough or fragmented geometric shape that can be split into parts, each of which is (at least approximately) a reduced-size copy of the whole”. …


  4. Tail Recursion

    One of the concepts I have always found most fascinating in programming is the idea of recursive functions. After all, defining a function in terms of itself is an elegant solution. Although recursion can be inefficient in terms of memory usage, there is a simple trick for making recursive code more efficient: tail recursion. Today we will have a look at what it is, how we can use it, and why we should use it. …


  5. Hello World!

    I’m super excited to start writing here! I have spent the last week creating the logo, tuning the template of this website, setting the analytics, and fixing minor technical issues. Everything was quite new to me, so it took some time to figure out how to put all the pieces together. Now it’s ready! I am ready! Are you ready? …