Bach 2.0

This is part of my research in the field of Deep Learning. We employ a 3-layer GRU Recurrent Neural Network and, based on the assumption that musical units are equivalent to words in Natural Language Processing, we train our network on a manually-transcribed database, originally composed by Johann Sebastian Bach. For the internal representation, we used NoteWorthy Composer’s NWCTXT format. The visualization below was generated using Stephen Malinowski’s excellent application, Music Animation Machine.

The full project (including the data set in NWCTXT file format) is available on GitHub.

One can find below a detailed description of the data we used for training our network:

Suite II for solo cello in D minor BWV 1008: Prelude, Allemande, Courante, Sarabande, Menuett, Gigue
Partita in A minor for solo flute BWV 1013: Courante
Suite in E minor for lute BWV 996: Courante, Sarabande
Suite in A minor for lute BWV 995: Gigue
Sonatas and partitas for solo violin:
Sonata I in G minor: Siciliano, Presto
Partita I in B minor: Corrente, Double, Sarabande
Sonata II in A minor: Andante
Partita II in D minor: Courante, Sarabande, Gigue, Chaconne

All compositions have been transposed in G minor.