Fantasia on Artificial Chorales

This is a collection of pieces that came out of my experiments with the Coconet convolutional neural network model, and later with the TonicNet JSB-Fakes GRU network.

Recent work:

Dances based on Synthetic Chorales Created by TonicNet

Finger Piano, Balloon Drums, Ernie Ball Super Slinky Guitar strings


Finger Piano

TonicNet JSB-Fakes

Large String Orchestra

The Star Spangled Banner

flute, oboe, clarinet, french horn, bassoon, piccolo, english horn, Bach trumpet, contra bassoon


Ach Gott, vom Himmel sieh darein (O God Look Down)

Zithers, Kalimbas, Balloon Drums, Springs


O Haupt voll Blut und Wunden (O Sacred Head Now Wounded)

Pianos:



Other instruments

Wachet doch, erwacht, ihr Schläfer (Wake up, wake up Sleepers)


Liebster Jesu, wir sind hier (Dearest Jesus)

Schmücke dich, o liebe Seele (Deck thyself, my soul, with gladness)


All but one originated as a Bach chorale. They are reprocessed by the coconet deep learning model. I split the chorale up into 32 1/16th note segments, which is what the model was built to handle. I zero’d out one of the voices, and had the model remake that voice to create a four voice chorale similar to the Bach. Then I did it again, masking a different voice each time. I ended up with lots of 16 voices chorales.

First, I searched for generated chorales that the highest pitch entropy using the muspy framework. Muspy is a library that reads a variety of musical structures, and includes many functions that help convert music files to other formats. It also includes a set of metrics that measure a variety of qualities of the music. In my case, I searched the 100 16 voice chorales for those that had the most entropy, or the least. I basically listened to most of them and picked ones with interesting harmonies.

Next, I looked for parts of the longer chorale that had interesting segments. This was done using a measure of pitches outside the root scale, but on small subsets of the chorale. I stretched the most interesting segments by up to 8-10 times their original length. This was done in order to linger on the leading tones, suspensions, and other Bach tricks to add suspense and interest.

Next, I arpeggiated the entire chorale using a mask, not unlike the deep learning technique of convolution, but in my case just masking parts of notes, so that it created an arpeggio effect. I added octave modifications to batches of notes in a row, to extend the range higher on the keyboard.

Finally, I rendered the chorale using Csound and my microtonal slide Bosendorfer in George Secor’s Victorian Rational Well Temperament. I added a convolution with an impulse response file from Teatro Alcorcon in Madrid from Angelo Farina. I think they sound sweet.

Here’s what the first few measure look like of “O Sacred Head Now Wounded”:

More:
Early use of the model and algorithms:
O Sacred Head Now Wounded


Wachet doch, erwacht, ihr Schläfer (Wake up, wake up Sleepers)






Liebster Jesu, wir sind hier (Dearest Jesus)







Schmücke dich, o liebe Seele (Deck thyself, my soul, with gladness)