Randomly Generated Reinassance Canon

This simple web app generates a Renaissance-like melody that is imitated by a second voice a 5th below, which is then imitated by a third voice an octave above.

The inspiration for this came when I came across Peter Schubert's videos on this topic. Basically, in order for this to work, the melody may start at any point of the scale, but every time you will move to the next note you only have a few choices. In this case, since we have 2 additional voices, we may only move down a 5th, down a 3rd, stay on the same note, or go up a 4th, and we may only repeat the same note up to 2 times.

References, inspirations, and other resources: