Composing algorithmic (notated) music with Python and Abjad
|Countdown link||Open timer|
When people think of programming and music, electronic music would probably be the first thing that comes to mind. This talk aims to provide some insight into a lesser-known field -- composing traditionally notated music in Python with Abjad, an algorithmic composition software.
Although classical music has been moving towards a more algorithmic approach since the beginning of the 20th century with the emergence of serialism and later with spectral music, composers are not utilising technology fully to their advantage. Most notation software offers just a handful of functions for composers to manipulate their music, but often they are not enough for any elaborate composition process. Although there is a couple of algorithmic composition software, the notations generated are often not configurable.
Bridging the gap
Abjad offers a way to bridge the gap between the algorithmic composition process and music notation. Since Abjad is a Python module, users can utilise functions inside Abjad, built-in Python functions, as well as other Python modules such as NumPy. Abjad exposes the users to a huge possibility to implement their own composition process in Python. Abjad is also a wrapper of the LilyPond music engraving software, which means that it outputs LilyPond code, and can call LilyPond to typeset the music.
Okay, but what can Abjad actually do?
To illustrate what Abjad can do, I am planning to demonstrate some basic examples of creating music with Abjad. I am also planning to showcase some of the code behind my compositions.
Experience of the speaker
I am passionate about programming and maybe more so, music composition. Abjad enables me to indulge myself in both fields.
I have been an active contributor of Abjad and the maintainer of one of its extension package for more than half a year. I have also been using Abjad for my own compositions, having completed a solo piano piece and working on a solo flute piece. Being a user as well as a developer gives me a unique insight into the software, not just in terms of the software architecture, but also in terms of how to make Abjad more composer-friendly.
I am planning to implement more features on the extension package that I am maintaining while using it for my own composition.
Musician and composer Tsz Kiu Pang (he/him/they/them) was born and raised in Hong Kong and came to Australia in 2012. Being a musician and an electrical engineer, Pang often incorporates improvisation and computer programming in his music. Pang has performed throughout Australia including at the Melbourne International Jazz Festival and the Museum of Old and New Art. His most recent endeavour is using the open-source software Abjad to create complexly notated music algorithmically, with every note generated and notated by the computer. Pang is also collaborating with the authors of Abjad to improve and maintain the software for interested composers.