Graph-based Polyphonic Multitrack Music Generation

Emanuele Cosenza, Andrea Valenti, Davide Bacciu
7/27/2023
cs.SDcs.LGeess.AS

No official code found. Best implementation: EmanueleCosenza/polyphemus (21 stars, MIT, last commit 2023-10-13).

Abstract

Graphs can be leveraged to model polyphonic multitrack symbolic music, where notes, chords and entire sections may be linked at different levels of the musical hierarchy by tonal and rhythmic relationships. Nonetheless, there is a lack of works that consider graph representations in the context of deep learning systems for music generation. This paper bridges this gap by introducing a novel graph representation for music and a deep Variational Autoencoder that generates the structure and the content of musical graphs separately, one after the other, with a hierarchical architecture that matches the structural priors of music. By separating the structure and content of musical graphs, it is possible to condition generation by specifying which instruments are played at certain times. This opens the door to a new form of human-computer interaction in the context of music co-creation. After training the model on existing MIDI datasets, the experiments show that the model is able to generate appealing short and long musical sequences and to realistically interpolate between them, producing music that is tonally and rhythmically consistent. Finally, the visualization of the embeddings shows that the model is able to organize its latent space in accordance with known musical concepts.

View on arXivView PDF

Code Implementations(1)

MIT

A graph-based deep MIDI music generator. Official repository of the paper "Graph-based Polyphonic Multitrack Music Generation".

214Shell, PythonMay 20, 20233 years agoMIT

Similar Papers

Cite this paper

@article{cosenza2023graphbased,
  title  = {Graph-based Polyphonic Multitrack Music Generation},
  author = {Emanuele Cosenza and Andrea Valenti and Davide Bacciu},
  year   = {2023},
  eprint = {2307.14928},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2307.14928v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2307.14928.svg)](https://codeofpaper.com/paper/2307.14928)

Discussion